Unity基础知识 - Know These Before 2D Creation(一) - 视觉设计

版权声明: https://blog.csdn.net/Ha1f_Awake/article/details/84567649

主要内容

2D游戏开发流程

1. 设置2D环境

2. 设计背景装饰

3. 设计角色活动的前景空间

4. 设计角色

5. 设置摄像机跟踪角色

6. 完善玩法细节

2D模式

精灵类型

精灵渲染器

精灵编辑器

排列层


 

2D Game Development Walkthrough

2D游戏开发流程

1. 设置2D环境

首先,制作2D项目需要先讲工作环境设为2D。设定方式有两种:

  1. 在建立新项目时在下拉菜单Set up defaults of ”选定“2D”
  2. 开发中Edit/Project Settings/Editor中调整Default Behavior Mode

设置后导入的新图片素材,其材质类型会默认为sprite,而不是texture,场景视图(the scene view)也会预设为2D。在2D模式中会采用完全的正视图视角来呈现2D游戏,同时隐藏右上角的Gizmo(小辅助工具)

 

 

2. 设计背景装饰

1)在Photoshop中勾勒关卡雏形,然后把每个图层做出来。

2)输出这些图层成为新的Sprite类型导入到Unity即在图层的Inspector窗口中将Texture Type设为Sprite

3)为了呈现出背景的视差,可以把背景元素放在Background Sorting Layer命名为Background)中。

通过Edit/Project Settings/Tags & Layers打开Sorting Layers创建层并调整层的位置。当所有背景元素指定到这一层后(Sorting Layer),我们可以在精灵渲染器(Sprite Renderer件)的图层给它们排序Order in Layer

*需要注意的是,在Sorting Layers中,Layer的编号越大,显示的位置越靠前,所以前景层应该设定在背景层下面

为什么呢?因为渲染顺序是从编号0的Layer开始,先被渲染,就先铺在下面一层了。

下面给一个建议的层次排序

设置好后,可以在Layer中把Background锁定,这样就不用担心在编辑前景元素时动到背景元素。

 

4)由于背景元素仅用于装饰,不需要其他组件,所以可以把它们放在一个空对象中,并在空对象中放入命名为Background Parallax的脚本来处理视差

 

 

3. 设计角色活动的前景空间

每一个前景元素都需要碰撞体Collider来让角色与其发生接触。Unity提供的多边形碰撞体Polygon Collider可以根据图片外形自动产生多边形碰撞体,而且用户可以通过增加、移动或删除节点来调整碰撞体的外形。

注意:为了区别出哪些前景元素可以行走,需要再创建一个Ground层(不是Sorting Layer),并将这些前景元素放入。

 

 

4. 设计角色

1)Animation是一个以图表化的动画工具,可以在Photoshop里绘制每一个节点的图。

2)因为角色的身体部分分开会更方便设计动画,所以要在Photoshop中将身体部分独立设计,好让Unity在输入时容易拆散。

3)将拆散的身体部分放入建好的Character Sorting Layer中,然后改变z轴的深度来改变显示的前后顺序。(也可以在Sprite Renderer中改变Order In Layer的参数)

4)把这些图片都放入一个有控制脚本、碰撞体、物理设定等等的对象中,角色设定好后就可以到Animation窗口中设计每一节点的图画,建立待机Idle、跑Run、跳Jump、射击Shoot和死亡Death等的动画。

5)因为不是驱动3D骨架,所以在组件Animator中取消勾选Root Motion。如果动画要和物理行为相互作用,可以勾选Animate Physics

6)使用Animator控制动画动态的最大好处是可以调整动画速度来搭配物理速度,不需要作额外的判定。

7)要让角色移动,需要Ridbody 2D组件。同时我们也要根据输入的水平值是大于0或小于0来判断角色的面向方向。(翻转函数了解一下)在Unity中,按左键会传回-1,按右键会传回+1

 

 

5. 设置摄像机跟踪角色

mainCamera(主相机)中添加CameraFollow脚本。(详情参照B站视频av3246302 10:23

 

6. 完善玩法细节

av3246302这个视频要反复地看,反复地思考。


 

2D Mode

2D模式

1)在2D模式下,只用移动工具W就可以移动、旋转或放缩游戏对象。如果放缩时按住shift键,对象可以任意变换大小。如果在旋转时按住shift键,对象会15度一转。

 

2)精灵(sprite)被渲染的顺序由它的sprite renderer(精灵渲染器)及所在的sorting layer(排列层)决定。


 

The Sprite Type

精灵类型

1)在Assets中选择图片素材点击,然后在Inspector窗口中调整属性。

  1. Texture Type设置为Sprite(设为2D工作模式时默认为sprite类型)
  2. Sprite Mode可以设置为SingleMultiple。当图片作为单一素材使用时,设置为Single;而当图片中包含多种素材,例如角色身体的各部分时,设置为Multiple
  3. Pixels To Units决定了素材导入后的比例,定义了图片像素与unity世界坐标系的比例。
  4. 当素材的Sprite Mode设置为Single时,可在Pivot设置素材的轴心。在下拉菜单中选择Custom可以自定义轴心,(x,y)(0.5,0.5)时,相当于轴心在图片中心。
  5. 当设置为Multiple时,Pivot不可设置。素材群中的各个素材要在Sprite Editor中编辑。
  6. 其他选项不需要改动。

2)图片素材成功以Sprite类型导入后,Project窗口中的图片素材窗口将会更新。一个新的sprite或者一组sprite将作为原图片素材的子素材出现。


 

Sprite Renderer

精灵渲染器

1)Sprite renderer的主要属性是SpriteColor可以调整sprite的顶点颜色,或给对象重新上色。alpha通道值控制着sprite的透明度。

 

2)Draw Mode的内容参考:

https://docs.unity3d.com/Manual/9SliceSprites.html

 

3)Material的默认材质渲染的sprite不受场景中的光照影响,一般情况下2D游戏都不考虑这个因素(factor)。若要对象受光照影响,所选的材质必须带有能够响应光照的shader(着色器)

 

4)Sprite使用标准的unity材质,但是sprite renderer对材质的处理与mesh renderer(网格渲染器)是不同的。主要区别是sprite renderer不需要材质的texture属性。所以一般来说,sprite renderer用于2Dmesh renderer用于3D


 

The Sprite Editor

精灵编辑器

1)Sprite Editor用来处理含有多个元素的图片,把它们切开slice成单独的sprite

 

2)切割方式有两种,手动切割自动切割

  1. 手动切割:点击拉出矩形选择框框住每个子sprite,选中后即可开始编辑对象。每个子sprite的名字格式为“原图名称+切割顺序号”;
  2. 自动切割:点击左上角的Slice进行切割设置。TypeAutomatic时,自动切割为自适应切割,选择框边与子sprite相切;TypeGrid时,自动切割为网格切割,选择框按一定格式大小选中每一个子spriteMinimum Size表示每个子sprite的最小大小,如果这个值太小,一些相邻的子sprite可能会合并在一起。Method用来选择如何处理Sprite Editor中已存在的sprite。Delete Existing为完全取代;Smart保留并调整已存在的sprite,并创建新的spriteSafe只添加新的sprite,不对原有sprite进行操作。

*注意:自适应切割一般用于子sprite可组合成角色的情况,而网格切割一般用于子sprite制作成动画的情况。

 

· Revert为撤回操作,Apply为应用。

· RGB Alpha按钮用来时图片以黑白两种颜色显示,方便更清楚地看到细节。


 

Sorting Layers

排列层

1)制作一个2D游戏时,必须精确控制物体间的渲染顺序。一种控制方式是调整个元素与摄像机的距离(z轴),另一种方式是应用Sorting LayersSprite Renderer

 

2)在Sorting Layers中,default layer不能被重命名或者删除,但可以重新排序。渲染顺序由上往下,正因为最下面的sorting layer最迟渲染,所以显示在最前方。

 

3)Sprite RendererSorting LayerOrder In Layer的参数为全局变量,其他渲染器需要在脚本中使用这些参数。(av3246302 03:06)


 

路过的圈毛君:“这人的肝是什么构造啊...”

猜你喜欢

转载自blog.csdn.net/Ha1f_Awake/article/details/84567649
今日推荐