不解

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用


【干货】Unity3d的2D骨骼动画插件Puppet2D的使用

开发Cocos2D的程序员都知道,Cocostudio其中一个动画编辑组件中的。骨骼动画对于游戏开发的性能上是很好的,有些时候和序列帧动画相比。
强大的unity3d虽然也可以开发2D游戏,可以序列帧实现动画。 还是没有2d的骨骼动画编辑功能。
最近开发了一个第三方的插件,专门对unity实现这个功能。 那就是Puppet2D。

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

Walkthrough演练

Introduction:

这是一个快速的演练,如何使用Puppet2D设置一个角色的动画。首先打开一个新的场景,在Scene视图中的 2D 按钮上单击。可以在窗口顶部的菜单中找到window-> Puppet2D


Createthe Character:

在Project面板中你会发现在Puppet2D/Textures/PuppetMan文件夹中的puppet2d角色精灵。展开它,将每个身体部位拖动到场景视图排列它们,所以它看起来像图像bellow。(移动的 z 分量以使胳膊和腿出现在正确的绘制顺序)

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月


CreateLayers:

现在我们想要将角色放到锁定的图层上,所以,我们不要无意中选择他当我们画的骨头。要选择层屏幕右顶部下拉选择,去编辑图层和自由层插槽中键入Character。锁定该图层,然后选择所有精灵在你的场景中,并从在检查器中的层下拉列表中选择该Character。

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

现在我们可以制作bones骨骼和control sortinglayer控制排序图层。在屏幕顶上Layer中下拉,添加两个排序图层----叫一个Bones和一个Controls。现在,我们已准备好去取出骨头的功能。

BoneCreation:

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月




首先骨层到Puppet2D窗口中的Bones设置。单击"Create Bone Tool"按钮可启动该工具。现在,您可以单击到Scene视图开始绘图骨头。1、从hip臀部开始和spine脊柱骨骼和head头部的骨头,2、然后 右键单击以结束当前的骨。3、点击顶部的spine脊柱joint和开始绘制的左的手臂leftarm、 手肘elbow,然后手hand,4、右键单击要结束的骨。5、现在做相同的right arm右手臂。6、hip骨单击鼠标左键,开始画thigh大腿、knee膝盖,然后foot脚,7、右键单击并重复另一条leg腿。现在要退出骨创作单 击"Finish Bone"按钮。


现在我们应该命名所有的骨头,让事情清楚。您的层次结构如下所示。


【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

RiggingSetup:操纵设置


现在我们要创建的控制,我们可以用来制作角色动画。

首先选择控制在下拉中,因此控制在排序图层上创建" Controls "。

选择 handL 骨,然后单击“CreateIK Control”。这将创建要进行动画处理,将容易的手动控制。对于 handR,footL,footR,重复此操作。

接下来我们需要创建身体控制----选择臀部,然后单击“CreateParent Control”。这将使一个control来移动和旋转臀部。

若要创建spine controls脊柱控制,选择spine脊柱,然后单击“CreateOrient Control”。如果你注意到在我们的 heierachy 我们有全局的控制-----这是所有控制的父级。选择 spine_CTRL_GRP,并将它拖到 hip_CTRL。下一步选择头部骨骼并单击“Create Orient Control”。选择 head_CTRL_GRP,并将它拖到spine_CTRL。

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

Skinning:

控制已设置我们需要加入到角色的骨头。有两种方法做到这一点------父精灵关节和皮肤:

Parenting:

hierarchy中选择PuppetMan_armBottom,PuppetMan_armTopand,和 PuppetMan_gunTop,以及所有的骨头。现在单击"Parent Objects to bones"。

Skin Binding:

皮肤的身体部位的骨头,我们首先需要将它们转换为可更换皮肤的网格。要做到这一点选择其余的网格,然后单击“Convert Sprites to Mesh”.。选择它们并将它们添加到Character层。

Now select legL,kneeL,footL,hip, spine and PuppetMan_body_GEO and click “Bind smooth Skin”.

Selecthip,legR,kneeR,footR and PuppetMan_leg_GEO and click “Bind smooth Skin”.

Select Spine,armR, elbowR,handR and PuppetMan_armR_GEO and click “Bind smooth Skin”.

Select Spine ,head and PuppetMan_head_GEO and click “Bind smooth Skin”.

FinalSetup

它差不多准备好了要进行动画处理。但首先,我们需要清理scene和修复一些skin weights皮肤权重。

hierarchy中将臀部和所有的网格拖动到Global_CTRL。现在,选择全局控制,把它打开和关闭来刷新它。现在,您可以将可见性的骨头-------因为你不需要看到他们要进行动画处理的character。

尝试移动圆形控件------那里也许加权的几个问题喜 欢footarea。要修复选择PuppetMan_leg_GEO 和 PuppetMan_body_GEO,然后单击" Edit skin weights "。您应该注意出现的小顶点手柄。选择它们,你会看到您可以更改inspector中的权重。如果你想要一次更新多个重量-单击inspector中的 “Update Skin Weights”按钮。

一旦你已经调整了他们让您满意,请单击“FinishEdit Skin Weights”要删除的顶点手柄。

现在的v应该是准备要进行动画处理。


Animating:


动画 Puppet2D character在一切动画在 Unity 中以同样的方式工作。选择Global_CTRL,在动画窗口中创建一个新的剪辑clip。移动控制并设置关键帧,随便哪里只要你喜欢----快乐动画!

Introduction:

Puppet2D 是一种工具允许您快速设置你的 2D 角色动画的。使用此工具可以创建 2D 骨骼、皮肤你的人物的骨头,并创建真的很容易使用的控件,使动画角色一阵微风。

要打开 Puppet2D 窗口,选择Puppet2D 菜单,转到Window>Puppet2DWindow。在此窗口中包含所有创作工具。

若 要开始创建你的被操纵东西,你要准备好你的角色被“rigged”。在unity进入场景视图并单击 2D 的按钮,在视图的顶部。在你的 2D 角色精灵中拖动并放入锁定的图层。这是有用的所以你不要到头来不小心点击它当你试着画骨头或控制。现在你准备好开始创建骨骼。

Bone& Control Layers and scale:

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

你就能够更改控制和骨头顶部的Puppet2D 窗口的大小。您还可以指定排序骨头将创建下一层。一旦他们已经被创建,所以请确保你在你的骨骼和控制在创建之前开始处设置这,这不会改变他们的层。

Skeleton骨架:

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

BoneCreation:

骨骼是将控制你的小木偶是如何移动的支点。

若要开始创建一根骨头,请单击“Create Bone Tool”按钮。这会设置你中骨创建模式。

你会留在这种模式下,直到您按输入或单击“Finish Bone”按钮。

2D 视图中开始使用鼠标左键,你会开始绘图的骨头。每个骨骼会到父级无论您选择了。

Create Bone Tool按钮------开始创建骨骼

鼠标左键单击------绘制的骨头

退格键------删除选定的骨骼

按住 shift 键------移动选定的骨骼只

按住 ctrl 键------移动选定的骨骼和它的孩子

Alt 单击鼠标左键------选定的骨骼和它的孩子之间插入骨

单击鼠标右键------取消选择骨骼

按 enter 键/点击“Finish Bone”-----------完成在中创建的骨头。

SplineCreation:

这是一种特殊的表现为一条贝塞尔曲线的骨链。当您绘制的控件而不是骨头,它是比正常骨骼以不同的方式创建。

若要开始创建一根骨头,请单击“CreateSpline Tool”按钮。这将设置你在样条创建模式下。你会留在这种模式下,直到您按输入或单击“Finish Spline”按钮。在这一点上,我们也须待骨头。

2D 视图中开始使用鼠标左键,你会开始绘制SplineControls。

使用滑块可以指定将每个控件之间作出多少块骨头。设置此之前启动此工具。

鼠标左键单击-----------绘制控件

持有 Shift 或 Ctr----------移动控件

按 enter 键/点击"完成样"-----------完成在中创建样条控件

RiggingSetup:

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

尽管它可能只是按直接旋转关节动画显示您的角色,这可能是棘手的方式来进行动画处理,特别是当它来到保持双脚在地面上的。使用 Puppet2D 创建一些自定义的控件,为你的角色是一个非常快速的过程,和真的使进行动画处理的工作,更直观、更容易。

Global Control全局控制

当您首次创建控件时,您将看到gloabl_ctrl 也会创建在层次结构中。这是从所有控件的脚本得到执行的基础。关闭此脚本将禁用所有控件。你会想要在这个游戏物体上添加您的动画并移动它,移动你的角色。

Start Rotation Y –允许你改变你的角色的 y 轴平面

IK handles –此角色所有 Ik 句柄,(按执行顺序)

Parent Controls – all the Parent &Orient for this character (in execution order)

Control Visibility – Turns controlsvisibility ,打开和关闭

Bones Visibility -这将切换所有的骨头,这global_Ctrl(使确信你按你父骨的刷新按钮第一个时间)的父级的可见性

Combine Meshes –这结合成一个网格共享一个纹理,(所以 1次draw call)的所有网格

Flip翻转– use this to flipthe character in the x-axis

Auto Refresh – auto orders the executionorder of the controls

Refresh Global Control – click this whenyou change something in the rig – such as delete a control or change thehierarchy in some way.

通过使用flip翻转复选框,可以在 x 轴翻转角色。

IKControls(IK 管制)

是您需要为任何你的人物四肢 (IE 胳膊或腿) 的控件。这给你一个单端控制,您可以使用动画显示他们的肢体。这将意味着你的脚会停留在地面,当你移动它的身体。

若要创建 IK 控制,选择三个骨链的末端,然后单击“Create IK Control”按钮。例如,如果您有腿部的骨头,比如thighBone>kneeBone>footBone。选择这脚骨相吻合并单击按钮

通过单击检查器中的"翻转"复选框,可以翻转哪些方式膝盖“flip” 脸。这也可以进行动画处理。

如果你想你可以有“stretchy limbs”通过单击“Squash and Stretch”复选框。

Parent& Orient Controls

与 直接对骨骼进行动画处理的一个问题是他们开始从尴尬的rotations和positions。这就意味着你不能迅速通过零位调整他们重置他们。 Puppet2D 允许您创建控件更容易选择和起步在零的位置和旋转,所以可以轻松地重置。Parents控件影响的位置和旋转,orient的控制影响只旋转。

若要创建parent控件中选择一根骨头,控制,然后单击“Create Parent Control”

若要创建一个orient的控件选择一根骨头,控制,然后单击“Create Orient Control”

通过将滑块移动到所需的规模,可以调整控件大小在你的场景。

在下拉菜单底部的索具安装程序中,您可以选择哪些排序的层,以将控件放在上。它是一个好主意,有一个“Control”排序图层,所以你能直观地在字符和骨头。

Skinning

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

有三种方法得到的骨头来影响你的精灵;由parenting,parenting,或FFD。

Parenting

您可以手动parent你的精灵的骨头,但加快了Puppet2D 的这份工作有一个按钮,所有的你一次过的对象。选择所有的骨头和所有精灵或对象,然后单击“Parent Object to bones”.。这将父您最近的骨头的所有对象。

Skinning

Skinning允许单个的对象,将会受到更多于一根骨头。为了做到这一点的精灵需要转换为一个网格。

要做此选择您的精灵(确保它没有父级),然后单击“Convert Sprite To Mesh”。你可以选择如何细分你想要从“Typeof Mesh”下拉菜单中的网格。

您可以通过第一次将一个 polygon2Dcollider 组件添加到精灵更改的网格中顶点的数量。您可以使用此删除并添加之前将其转换为一个网格的顶点。

要 将网格绑定到骨头,选择所有的骨头和皮肤,然后单击“Bind Smooth Skin”.。您可以选择您希望默认皮肤要绑定到使用“num Skin Bones”下拉菜单中的骨头的数量。您的网格现在应该对它有皮肤网格渲染器组件。~ 如果你移动骨骼网格应随之移动。

要绘制皮肤权重选择您的网格并单击“PaintSkin Weights”.。现在,您可以通过选择所需的骨绘制网格顶点上每个骨骼的强度,并单击鼠标左键绘制权重的那块骨头。

通过使用滑块来更改画笔大小和强度或持有 B 画笔大小和 N 的强度。

Left Click – Add Weights

Hold ALT – Subtract weights

Hold SHIFT – Smooth Weights

Hold B – change brush size

Hold N – Change brush strength

通过单击“Finish Edit Skin Weights”完成绘画权重

您 还可以手动编辑皮肤权重通过单击“EditSkin Weights”按钮。你会看到一堆父级到网格的顶点物体。如果你选择你将看到的骨骼影响的顶点,紧接着他们的权重列表的顶点。若要编辑的权重值或影响, 只需更改检查器中的值。如果您想要更改多个顶点一次,更改的值,然后单击检查器中的“Update Skin Weights”按钮

完成编辑权重单击Finish Edit Skin Weights”按钮和顶点将被删除。

通过将滑块移动到所需的规模,可以调整 vertexHandles 大小在你的场景。

FFD

这是最灵活的方法,因为它允许您以变形角色。以及动它的骨头。

若要创建 FFD,选择你的精灵并单击“CreateFFD Tool” .。你现在可以开始画在你的人物FFD。首先,你应该开始并条机的角色四周。之后,您可以添加任何内部的部件,如果你需要它。单击“Finish FFD”完成创建它并进行新的FFD Mesh。

Create FFD Tool – start creating FFDControls

Left Click – draw FFD Controls

Hold Shift or Ctrl – move selected FFDControl

Right Click – Close Current FFD loop andstart creating a new loop

Press Enter/Click “Finish FFD” - Finishescreating FFD

要获得FFD控件以动的骨头你可以parent他们,或者skin他们。(基本上你可以对待他们好像他们是一个网格。)

FFD Parenting

parent他们选择 FFD 控件和骨头,然后单击“ParentObject to bones”——FFD父母将父级的骨头。

FFD Skinning

要剥他们的皮,选择 FFD 控件和骨头,然后单击“BindSmooth Skin”。您也可以选择剥皮的值为 1 或 2 (不要使用 4(FFD),这需要另一个功能)。

Using the FFD on another Mesh

你也可以嵌入到同一 FFD 其他网格。做到这一点,您需要设置 Num 皮肤骨骼为 4(FFD)。请确保新的网格正好落在FFD。选择 FFD 控件和网格,然后单击“Bind Smooth Skin”。

必须要意识到,为了使这项工作上,你需要要创建与FFD可见原始网格。你应该把这周围为未来剥皮。

Animation:

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

【干货】Unity3d的2D骨骼动画插件Puppet2D的使用 - 无名 - 半月

要开始做动画只需在 global_Ctrl上创建动画剪辑,你可以移动/缩放旋转控件和在动画窗口中设置关键帧。

如果你想要通过移除所有的控制来优化动画脚本-你可以bakes到骨骼动画。

若 要bake动画与有你想要bake的动画 global_ctrls 打开了一个场景。单击bake动画------这将使你所有的动画与重复bake里面的Puppet2d>Animation>Baked文 件夹。这些将作为骨头而不是控件上的关键帧动画。您还将注意后,你这 Puppet2d 将禁用 globalCtrl 脚本。现在,您可以添加论文动画到您的动画控制器和他们可以替换所有控制动画。

你可以使用呈现动画和渲染的Alpha,使你的动画一个 png 序列。您可以使用 alpha 与composite的背景在外部编辑包中。

帮助动画你可以保存姿势并加载它们。

若要保存选择,选择在你的场景中的东西并单击“Save Selection”.。

要加载选择右键点击一个负载广场和悬停在“Select Objects”.

删除加载插槽右键单击并选择“Remove Selection”

添加到负载广场,选择您想要添加,然后选择"追加选择"

加载“Load Pose”一个姿势点击

要保存“Save Pose”一个姿势点击

评论