【unity】【2D】人物骨骼绑定及动画编辑

1,657 阅读2分钟

--骨骼绑定--

一、骨骼绑定

1、将分图层的psb文件导入unity后,设置Sprite Mode为Multiple,后点击Sprite Editor

image.png

image.png

2、创建主要躯干骨骼

image.png

分为三部分:头、胸腔、跨

image.png

3、在主要骨骼的基础上添加附加骨骼

先点击主要骨骼,如跨,再添加腿的骨骼,使得腿的动画附着在跨

image.png

4、添加完所有骨骼后点击auto weights,自动为骨骼添加权重

image.png

生成完点击bone influence,双击身体某部分,对附着在上面且会造成影响的骨骼进行删减。

image.png

image.png

5、编辑完所有点击右上角apply

image.png

--动画编辑--

一、创建prefab

1、创建prefab步骤:新建空物体-将安装好骨骼的人物拖给这个空物体。

image.png

2、新建一个prefab文件夹,把空物体拖拽进来。

image.png

二、创建反向动力学组件

1、点击运动部位末端骨骼

image.png

2、找到该骨骼,右键创建空物体

image.png

双击空物体找到它的位置,将其位移到骨骼末端

image.png

3、点击人物对象,搜索组件“ik”

image.png

image.png

添加一个limb新对象(limb只能控制选中骨骼与向上检索的父骨骼,总共两个骨骼,我们角色的腿只有两个骨骼,故选用。后面设置三个骨骼的手臂时用CCD)

image.png

把刚才新建的空对象拖拽给effector,后点击create target,自此可以通过拖拽末端骨骼连锁控制整个躯干。

image.png

image.png

三、创建动画

1、点击人物对象,选择window-animation-animation

image.png

image.png

2、新建一个动画,取名idle

image.png

3、调出sample

image.png

60代表0~1秒,有60帧,动画精细,为了效能将samples改小为24

image.png

4、小tip:游戏对象未打开子骨骼时,按住ALT点击对象,会展开所有骨骼

image.png

shift选择所有骨骼,在position、rotation处右键选择add key,添加上第一帧关键帧

image.png

image.png

点击录制按钮,在时间轴上拖动竖直白线,移动骨骼,就可以自动打上关键帧。unity的动画系统会自动补帧。为了使动画循环起来连贯,需要复制第一帧并粘贴为最后一帧

效果

UniConverter 13_20230408221815.gif

待机

UniConverter 13_20230409192744.gif

跑步(我的步骤:1、只打一只腿的关键帧 2、加上另一只腿,注意跑步时两条腿是交替跑动的 3、根据腿打手臂的关键帧,注意不要顺拐 4、整个身体的上下起伏,具体为两腿弯曲时身体为降落状态,整体下移;两腿触地时身体为上升状态,整体上移)

UniConverter 13_20230409193236.gif

游泳(很抽象)

UniConverter 13_20230409193405.gif

水中待机

--动画机编辑--

没整!

--出现的bug和解决方法--

xxx AnimationEvent has no function name specified!

问题原因:不小心添加了animation event 解决方法:删了

image.png