2. 关于Anima2D
使用Unity5.X时,Anima2D是最先进且完整的2D骨骼动画解决方案。使用Anima2D,你将可以在Unity中为你的游戏创建2D骨骼的人物和背景。
Anima2D扩展Unity通过,添加2D骨骼层级结构(2D Bone Hierarchies),一个强大的可完全控制网格生成的SpriteMesh编辑器 和2D反向力学(2D Inverse Kinematics)。Anima2D严格按工作流开发,且无缝集成到Unity。
3. 特点
骨骼层级结构
使用Bone2D组件来创建骨骼层级结构。创建骨骼从来没有如此的简单:仅仅是创建,设定父子关系和连接Anima2D的骨骼。通过拖拽它的gizmo来控制骨骼的旋转。
网格编辑器
从Sprites中创建Meshs复合体。网格可以在网格编辑器窗口中进行调整。你可以增加和删除点,洞(holes),边和边的约束来得到想要的三角形划分。
自动的权重设置
Anima2D自动的为你计算骨骼权重。我们使用现阶段最先进的算法来给你绝大多数情况下立即可用的权重设置。
权重设置工具
使用集成的权重设置工具编辑和调整你的权重设置。它允许通过添加或减少骨骼的影响来编辑单个或多个顶点,平滑临近的点并且自动设置默认值。
反向力学
Anima2D引入了一个易用的2D反向力学系统(IK),其允许为四肢和任意长度的骨头创建一致的姿势(consistent poses)。IK在Scene视图中也能正常工作!
动画创作
Anima2D为在Unity的Animation窗口制作动画进行了专门的设计。在录制模式下进行移动,旋转骨骼或者IK物体,并且当你完成动画编辑后将烘焙你的动画到骨骼中去。
姿势(Pose)管理器
保存和加载骨骼的姿势通过单击Pose Manager组件。Poses被保存到一个单独的asset文件中,并且在录制模式下仍然可以导入。
骨骼控制元件
使用骨骼控制元件来操作想要调节骨骼的位置和旋转,即使其在Scene视图中是被隐藏或者锁定的。控制元件可以用于创建动画(animations)并且也会为被影响的骨骼创建新的关键帧。
Sprite优化器
Anima2D将会覆盖原始的Unity Sprite的几个结构。以此来进行,简化你原始的Sprite,减少overdraw,减少顶点数,和其他优化。
自动的网格划分
少量的点击可以创建新的sprite,并且进行自动优化。仅需要选择图片区域,设置所需参数,Anima2D将会完成余下的工作。
完整的自重叠控制
配置绑定点的Z-Order来定义如果发生自重叠(self-overlaping)是网格中的哪部分应该前面,哪部分在后面。
图集(Atlases)
得益于重写几何结构的特性,Anima2D完全兼容Unity原生的图集。你的骨骼图片将总可以打成图集纹理。
减少draw-calls
如果你的骨骼图片使用相同的纹理图集,你可以在运行时把他们结合成一个单一的骨骼网格,以此来减少draw-calls并且提高你游戏的性能。
洋葱式蒙皮(Onion skin)
当创建它时,将可以看见你动画的前置和后续帧。
Avatar遮罩
创建你动画部件(animated elements)的Avatar Mask,并且在Mecanim的不同层中使用它。
源代码引入
Anima2D自带完整的源代码
Unity集成
我们关心易用性和可集成性。我们为秉承Unity式的设计理念做出了努力,迭代工具直到它变得易用但又强大。支持完整的卸载。资源预览。拖拽和丢放到Scene视图。你将 忘记你正在使用一个插件。
5怎么使用
本章我们将给你展示怎么使用Anima2D进行,sprite骨骼蒙皮,添加反向力学,创建骨骼动画。
5.1 sprite的骨骼蒙皮
1.创建一个SpriteMesh
首先我们需要创建一个从Unity Sprite中创建一个SpriteMesh。SpriteMesh是一个可被编辑和蒙皮的特殊Sprite。
为了做到这点,在进入你工程视图中sprite的文件夹,在sprite上点击右键,并在菜单中选择Create -> Anima2D -> SpriteMesh。
Project View context menu
如果你想为纹理(texture)中所有的sprite创建spriteMesh,则在texture上右键点击操作。
重要提示:每个sprite只保留一个spritemesh。不要在视图复制你的spritemesh资源文件。
另一种方式是在一个有SpriteRender组件的GameObject上点击右键,并选择2D Object -> SpriteMesh。这将吧SpriteRender替换为SpriteMeshInstance,插件将生产对应的assets。
Create SpriteMesh from Hierarchy
当SpriteMesh被创建时,Anima2D将添加一个新的类似于sprite的asset。
Assets created from the original Sprite.
2.编辑SpriteMesh
创建spritemesh后你可能想要修改默认的三角形划分来满足你的蒙皮需求。为此,先在菜单选择中通过Window -> Anima2D -> SpriteMesh Editor打开spritemesh editor,并且在工程视图中选择之前创建的asset。sprite将在编辑器中等待修改(更多详细信息请阅读第六章)
SpriteMesh Editor using the sprite’s default triangulation
在spritemesh editor中你有多个选项去手动编辑你的spritemesh,来满足你的需求:
Move vertices:直接左键点击和拖拽已存在的点到你想要的地方。
Add vertices:通过在图片上双击来增加新的点。
Delete vertices:左键点击选中不需要的点,然后按键盘上的Delete / Backspace键。
Clear selection:右键点击任何位置。
Split edges:先清除选中。然后按住Shift键并左键点击来拆分封闭的边。
Add edges:先选中一个点。然后按住Shift键并在另一个点上点击左键。否则将创建一个的点。
Remove edges:选中你想移除的边并按下键盘上的Delete / Backspace键。
Add holes:有时你可能想在你的游戏中避免显示mesh的一部分。为此你可以使用hole。你可以通过按下Hole按钮,并在你想添加hole的地方双击来添加一个封闭的区域。
也可以自动的创建拓扑结构。点击Slice按钮切换到Slice工具(更多详情请阅读第六章)。
Slice tool .
一旦调整到你理想的结构,就按右上角的Apply按钮保存该修改。原始的Sprite将被修改成当前编辑的结构。
3.创建一个SpriteMeshInstance
SpriteMeshInstance与SpriteRender组件非常相似,但是SpriteMeshInstance使用SpriteMesh而不是Sprite,并且SpriteMeshInstance组件持有一个骨骼列表。你应该在SpriteMeshInstance上使用于SpriteRender相同的材质(materials)。
当使用没有蒙皮信息的SpriteMesh是,骨骼列表是可以编辑的。
SpriteMeshInstance with no skinning information
否则骨骼列表将被不可修改,并且告诉你哪根骨骼需要设置允许蒙皮(enable skinning)。
SpriteMeshInstance with skinning information.
仅通过从工程视图(Project View)拖放一个SpriteMesh到场景(Scene)就可以完成SpriteMeshInstance的创建。
4.创建一个骨骼的层级结构
Bone2D是一个有长度属性并且可以与其子Bone2D连接成链的物体。创建一个骨架仅需的操作有:设置父子关系,解除父子关系,复制,重命名等。
在hierarchy框中点击右键并且在弹出菜单中选择2D Object -> Bone,另一种方法是使用快捷方式Alt + Shift + B。当你选中一个骨骼有选择创建一个骨骼时,他们尝试自动连接成链。
New bone
你需要通过指定Child字段(编辑器中即名为Child的Transform选项)来创建一个骨链。有子骨骼的骨骼将会指定子骨骼的方向,并且调整子骨骼的长度来使得其末节点与子骨骼的位置重叠。
Bone with a linked child bone
为SpriteMeshInstance设置骨骼
一旦你的场景里有了SpriteMeshInstance和骨骼层级结构,选择SpriteMeshInstance并且拖拽骨骼层级结构到Set bones字段。然后你将能看到一个该实例(instance)将要使用的骨骼的列表。
A SpriteMeshInstance with bones.
另一个添加骨骼的方式是通过拖拽骨骼到列表的字段来手动编辑骨骼列表。
再次打开SpriteMesh Editor窗口,并且选择你的SpriteMeshInstance。这次骨骼将出现在编辑器中。
SpriteMesh Editor showing the referenced bones from the current SpriteMeshInstance
6.绑定骨骼
一旦骨骼出现在编辑器中,点击Bind按钮将自动的计算骨骼的权重。骨骼一定要在Mesh中。选择Overlay复选框来可视化这个过程。
SpriteMesh Editor showing a colored overlay representing the vertex weights.
你可以通过使用Weight Editor增加或减少骨骼对选中点的影响程度(更多详情请阅读5.2章)
权重可以通过点击Smooth按钮来进行平滑。你还可以通过选中一组点对他们进行平滑。
点击Auto按钮来重新计算权重。这对在绑定过程中创建新点是有助的。
点击Apply按钮来结束修改,并且你的SpriteMeshInstance将进行自动重置,并可进一步进行蒙皮。现在设置完成,你的mesh将会随着骨骼的旋转和移动进行相应的变形。
5.2 使用反向力学
使用反向力学,应在hierarchy中选中一个骨骼并选择2D Object -> IK Limb or 2D Object -> IK CCD。一个带有相应IK组件的游戏物体将被创建。移动新创建的游戏物体来观察IK对骨骼姿态的改变。
IK Limb需要一个双骨骼链条,并且其更适用于角色四肢。它使用了直接的余弦定理的解决方案。
Inverse Kinematics controlling the robot’s limbs.
IK CCD可以通过使用Cyclic Coordinate Descent solver来协调所有的骨链长度。
CCD Inverse Kinematics with a long bone chain.
IK组件有一个Weight字段可以具体的设置IK对最终动作的影响。
5.3保存和加载动作
一旦我们有了角色rig,我们可以通过添加PoseManager组件到对象并且点击Create new pose按钮来保存骨骼的位置动作。着将保存所有的子骨骼姿态到一个单独的asset文件中。通过点击理想动作的Load按钮来恢复至该动作。点击Save按钮来覆盖这个动作。
PoseManager component.
5.4 创建控制
Controls是一个显示手柄的对象,其可以改变骨骼的位置的旋转。Controls被用于显示骨骼的子集结构中需要运动,隐藏,或者锁定其他同级结构。这种方式你可以使用更简洁的界面来穿件的动画。
为了创建控制器,在hierarchy中右键点击骨骼,并选择2D Object -> Control。你也可以参考后面的操作手册来设置骨骼。
Controls.
选择Rotation Tool来切换到旋转手柄。
5.5 创建动画
最后我们可以开始使用Unity的Animation窗口来创建动画。本节我们将解释怎么创建动画并使用IK,怎么烘焙动画到骨骼中。
1.创建一个动画文件
打开动画窗口(Window -> Animation),选择你角色的根GameObject,并在动画开窗口下来菜单中选择[Create New Clip],来创建一个新的动画片段和动画控制器(clip and AnimatorController)。
Creating animations using Unity’s Animation Window
更多关于Unity Animation窗口的信息,请阅读Unity文档中的Using the Animation View(https://docs.unity3d.com/Manual/animeditor-UsingAnimationEditor.html)章节。
2.创建使用IK的动画
当你的角色有复杂层级结构时,直接通过移动骨骼来创建动画将变得复杂。幸运的是IK使你可以通过设置每个骨链的目标位置来设置你角色的姿势。
Animation created using IK objects.
移动和旋转IK对象来创建一个新的关键帧,并通过大多数的IK曲线来创建你的动画。这种方式你可以处理个更少的曲线,并且用更少的关键帧来更快的处理复杂的运动。
3. 烘焙动画到骨骼
既然你使用IK物体来创建动画,那么是时候为所有被影响的骨骼创建曲线了。这种方式我们将可以避免运行时高昂的计算成本。但另一方面,这个过程将要添加很多关键帧,并且会增加所需的储存大小。
Animation baked to bones.
为了烘焙动画到骨骼,你需要再Animation窗口中选择相应的animation,然后选择Window -> Anima2D -> Bake Animation。在进行这个过程之前,我们推荐你在其他位置复制保存一个animation的副本。这样的话你可以以后修改和比替换和这个烘焙结果。你现在可以禁用IK对象来测试你新烘焙的动画。
当然也可以使用IK来记录骨骼的关键帧。这在制作简单的动画是有用的,因为你为了它们尽可能小而不像选择烘焙。
如果是这样的话,设置你IK组件中的Record开关,所有被你IK影响的骨骼都会被记录到关键帧。
5.6创建Avatar遮罩(AVATAR MASKS)
Anima2D允许你为你的角色创建Avatar Mast。Avatar Mask被用在Animator控制器中指定的不同层中那些物体可以动。关于Avatar Mask的更多详细信息请参照Unity文档的中的Avatar Mask章节(http://docs.unity3d.com/Manual/class-AvatarMask.html)。
Avatar Mask
为了创建一个Avatar Mask,选择一个添加了Animator组件的物体,并且选择Window -> Anima2D -> Create Mask。在保存对话框中选择保存到你的工程中。
6.查考
本章你将会发现Anima2D中所有组件详细的解释,从菜单组成元素,组件,到编辑器窗口。
6.1 组件
在Anima2D你将看到下面这些组件:
Bone2D
在你的场景中定义了2D骨骼层级结构的组件。
-Color:设置骨骼颜色。
-Alpha:设置骨骼透明度。
-Child:设置一个子骨骼来形成骨链。子骨骼一定要是一个骨骼的直接子物体(译者注:子骨骼上一层父物体不不能是非骨骼)。移动子骨骼到编辑器中将会相应影响父骨骼的朝向和长度。
-Length:骨骼的长度。
Sprite Mesh Instance
负责管理渲染器的组件。
-Sprite Mesh:参照SpriteMesh aset。
-Color:实例的颜色。
-Material:实例的Sprite材质。
-Weight:IK solver对最终姿势的贡献量。
-Restore Default Pose:设置回执行计算之前的姿势。
-Orient Child:旋转目标的子骨骼(如果可以的话)来进行IK旋转。
-Filp:为四肢使用另一个姿势解决方案。
Ik CCD2D
IK组件操作了互相连接的骨链。
-Record:记录动画模式下骨骼的关键帧。
-Target:将要运用IK的目标骨骼。
-Weight:IK solver对最终姿态的贡献量。
-Restore Default Pose:设置回执行计算之前的姿势。
-Orient Child:旋转目标的子骨骼(如果可以的话)来进行IK旋转。
-Number bones:被IK solver影响的骨骼数量。最大值是骨链的根节点。
-Iteration:solver的迭代数量。
-Damping:Controls是步移速度的solver(离散的,连续的)。小的值将在每次迭代时产生大步移速度。大的值将产生更小的步移速度。一个高的Damping值将看起来更自然。
Control
Control组件将显示你骨骼的手柄。
-Bone Transform:目标骨骼的transform。
Pose Manager
添加一个Pose Manager组件到你骨骼层级结构的中的根节点。
-Save button:复写姿势。将保存所有GameObject的子骨骼的姿态。
-Load button:重置姿势。
-Create new pose button:创建一个含有当前姿态的新的asset文件。
IKGroup
这个组件将要更新一些列的IK对象。当你想要在运行时指定IK元素的执行顺序时,它将是有用的。
-IK Component:IK引用的列表。
SpriteMesh Animation
使用这个组件来,通过动画的帧属性将animation中将SpriteMesh替换为SpriteMeshInstance。
-Frame:需要交换的帧的编号。
-Frames:在动画中需要交换的SpriteMesh 的列表。
6.2 SpriteMesh Editor Window
SpriteMesh编辑器窗口是Anima2D进行网格编辑的主要工具。你可以创建任何拓扑结构的网格,设置绑定点,权重等。
这个编辑器由以下元素组成:
1.bone可见开关。
2.打开/关闭切割工具。
3.添加hole开关。
4.绑定/解绑骨骼。
5.The Inspector。
6权重设置工具。
7.应用/回滚修改。
6.2.1编辑几何结构:
-Move vertices:左键点击并拖拽顶点。
-Add vertices:双击图片。
-Delete vertices:按下Delete/Backspace键来删除选中的点。
-Select vertices:点击或拖拽出矩形选择区域。按住Ctrl/Cmd来添加当前的选中项。
-Clear selection:右键点击任何位置。
-Split edges:先清除选中项。然后按住Shift并点击左键来切割临近的边。
-Add edges:先选中单独一个顶点。然后按住Shift并点击另一个顶点。否则将生成一个新的顶点。
-Remove edges:选中你想移除的边,并按下键盘上的Delete/Backspace键。
-Add holes:点击Hole按钮,并且在你想添加hole的地方双击。
-Remove bones/bind poses:选择一个骨骼或绑定的位置,并且按下Delete/Backspace键。
-Move pivot point:拖拽蓝色的圆圈。按下Ctrl/Cmd可以对齐到像素。
6.2.2 切割工具:
切割工具使你可以从图片轮廓中自动的切割出网格。点击Slice按钮来打开这个工具:
Slice tool parameters.
-Outline detail:设置更大的参数值则将会有更多顶点被创建到轮廓上。
-Alpha cutout:Alpha容差将被用来忽略像素。
-Tessellation:如果你想包含顶点到网格拓扑结构的内部就增大这个参数。
-Detect holes:Hole区域将可见(首先你需要在这个区域有一个Hole)。
使用方向的手柄来调节sprite的大小,设置参数。然后点击Apply按钮。
Rectangle handles and calculated geometry.
6.2.3权重工具
权重设置工具将会可以增加或减少影响选中顶点的骨骼数量。
Weight tool.
权重设置工具将显示一个下拉菜单和一个不可用的滑动条。从下拉菜单中或从窗口中左键选择选择一个骨骼。移动滑动条到右侧来增加骨骼的影响。移动滑动条到左侧来减少影响。
-Smooth:从一组临近的顶点中通过平均他们来平滑权重。
-Auto:从选中的顶点中自动的计算出权重。如果没有选中顶点则计算所有的顶点。
-Overlay:显示一个着色的网格来表示逐顶点的骨骼影响。
-Pies:用饼图来显示每个顶点的权重信息。
6.2.4 Inspectors:
根据选中元素的不同,Inspector将显示不同的信息和选项:
Empty selection.
-Empty selection:如果没有东西被选中,那么inspector将会显示sprite和SpriteMesh的中心点。
Bind pose selection.
-bind pose selection:如果选中了绑定点,你将可以编辑它的名字,Z-Order和显示颜色。Z-Order在发生自重叠时被用来计算哪些部分在前面哪些部分在后面。
Weighted vertex selection
-vertex(bound)selection:将用滑动条的方式显示顶点的权重和相关的骨骼。这将使得可以调整单个的顶点。移动滑动条来改变权重,在下拉菜单中选择性的骨骼来关联其他骨骼。
6.3Onion Skin
洋葱蒙皮是一个为了得到更好运动图片,因而展示之前和随后帧的工具。
Onion Skin integrated with Unity’s Animation Window.
点击Window -> Anima2D -> Onion Skin打开Onion Skin窗口。为了更方便请将该窗口吸附到Animation窗口旁。这个窗口将有一下选项:
-Active:设置可用/禁用预览。
-Frames:展示帧的数量。
-Step:预览前跳过帧的数量。
-Alpha:总体预览的透明度。
-Previous(color):之前帧的颜色。
-Next(color):随后帧的颜色。
提示:选中一个带有renderer组件的物体可以单独预览它。

Anima2D官方中文使用手册(对应Anima2D1.1.4)相关推荐

  1. PHP官方网站,php官方论坛,中文函数手册下载

    每个人都知道php.net,我们或早或晚的都会来到这里并不断的访问它.它是PHPer的主要参考网站,拥有大量有用的信息,但是这些信息却不是那么显而易见. 比较有用的官方PHP资源: PHP官方函数手册 ...

  2. STM系列单片机中文参考手册下载方法

    在使用STM单片机编程的时候有时候需要查阅芯片手册,英文手册查阅起来比较麻烦,而搜索中文手册时,好多网站下载时需要注册或者需要积分,下载起来比较麻烦.现在就来说一下,如何在官方网站下载各个系列单片机的 ...

  3. TweenLite中文帮助手册

    TweenLite中文帮助手册 <!--贴内广告开始--><!--广告结束 --> 转载来源:Lite3's Blog » <TweenLite中文帮助手册> Tw ...

  4. ChatGPT中文使用手册

    简要介绍: First:什么是ChatGPT? ChatGPT是由OpenAI训练的一款大型语言模型,最新版为GPT3.5(公开版)和GPT4.0(PLUS会员版本) 它能够生成类似于人类写作的文本. ...

  5. NDK - JNI官方中文资料

    NDK-JNI官方中文资料 声明 该篇文章完全引用自<JNI完全手册>完整版,用来方便查询查阅.感谢原文档作者. 文档所依赖的版本是比较低的,但是恰恰是低版本才能更容易上手学习.文档也有些 ...

  6. STM32F0/F1/F2/F3/F4/F7编程数据中英文手册(所有型号中文参考手册)

    STM32F0/F1/F2/F3/F4/F7编程数据中英文手册(所有型号中文参考手册) 免费获取STM32所有手册 ST官方免费的资料不应该共享的吗?怎么还欺负人,明码标价.进入官方,第一个就是. 感 ...

  7. MySQL中文参考手册--1.MySQL的一般信息

    MySQL中文参考手册--1.MySQL的一般信息 0 译者序 MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用.由于它的强大功能.灵活性.丰富的应 ...

  8. Java11API文档,JDK11(中文API手册)

    JDK11(中文API手册)是一款根据官方的API文档翻译的一款帮助手册,在词句的翻译的全面性.准确性上是非常的不错,同时采用的是.chm文件的格式,在使用的时候是非常的方便的,帮助文件内的目录是非常 ...

  9. 最全的官方中文教程来了,NumPy结合深度学习,还有防脱发指南

    点击上方"开发者技术前线",选择"星标" 在看 真爱 来自:机器之心报 NumPy 无疑是很多机器学习研究者和开发者的「白月光」.如此优秀的项目,没有中文版怎么 ...

最新文章

  1. 细胞内钾多钠少——原初生物的第三大遗迹?
  2. 【Socket网络编程】12. send()、recv()、sendto() 和 recvfrom() 函数解析
  3. Python-OpenCV 杂项(一):图像绘制
  4. java 归并排序 非递归_归并排序-递归及非递归的JAVA实现
  5. 年度调薪一般涨多少_又到年底,HR 你拿什么标准来调薪?
  6. 二级c语言光盘,二级c语言(光盘).doc
  7. 软件工程的难题-解耦问题
  8. 怎么改路由器的密码?
  9. angular6项目中使用echarts图表的方法(有一个坑,引用报错)
  10. 排名 教材 数字电子技术_数字电子技术教材改革及实践
  11. 迷失逃脱小程序_恐怖游戏大全:奇幻夜之迷失!密室逃脱解谜恐怖小程序
  12. linux b类地址设24位掩码,子网掩码的设置方法和作用
  13. pandas-task08-文本数据.md
  14. 中国石油大学天梯赛真题模拟第三场
  15. 使用会议管理系统的高效办会思路
  16. 让时间成为自己的知心朋友\\《把时间当做朋友》读书笔记
  17. 搭建Aqours Online Judge的琐琐碎碎(一)Presentation Error判定
  18. Allegro按照板框边沿敷铜并进行内缩和外扩
  19. 用单片机控制步进电机
  20. JAVA毕设项目评标专家管理信息系统(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. JavaScript 高级3 :函数进阶
  2. SDNFV Fest论坛成功举办 全景展现SDN/NFV测试成果
  3. 阿里云短信平台简单使用
  4. 【松岩盘前视点】2019-9-11
  5. IT行业的魔力在哪里?98%的人都......
  6. Java实现的音乐播放器
  7. 人工智能离不开它——贝叶斯公式的前世今生
  8. 湿气重会有哪些表现?如何祛湿
  9. BT TWS 听音乐无声问题
  10. 利用高德地图API批量获取地点经纬度和行车线路与OD距离(excel和python)