2d unity3d 骨骼动画_unity 3d骨骼动画 - CSDN
  • 转载请注明出处。

    Anima2D是一款Unity官方出的骨骼动画制作插件。使用方法如下:

    1.下载插件

    我们可以从unity编辑器内的AssetStore内下载到Anima2D插件,并导入到Unity编辑器中。记住,下载该插件需要将Unity版本升级到5.60以上。

                                                                                                                         

    2.导入我们自己需要创作的素材图片,并将图片的Texturetype设置成sprite,并拆分成相应的小图片。这里,我们使用插件自带的恐龙图片来进行示范。本范例中我们将制作一个恐龙大腿的骨骼动画。

                                                                          

    3.制作2D骨骼动画,首先,在Project视图中右键点击我们导入的Sprite,选择:Create ----> Anima2D ----> SpriteMesh , 这样我们会在编辑器中生成对应SpriteMesh 文件。

                                  


    4.选中一个SpriteMesh文件,在Inspector视图中点击Edit Sprite Mesh按钮  或者 Window菜单 ----> Anima2D ----> SpriteMeshEditor 可以打开SpriteMesh 的编辑窗口。此时窗口中会默认高亮我们所选中的SpriteMesh。然后我们点击窗口左上角的Slice按钮,然后再点击apply按钮,编辑器会自动根据图片的形状,将图片划分出来,如下图:

    (注:slice窗口下的几个参数是在做切分时的选项,具体的选项可以参考插件中自带的英文pdf说明文档)

                                                                                               

    5.切分成功后,在SpriteMeshEditor窗口中点击apply按钮,保存我们的操作,然后返回Scene视图。

                                                  

    6.选中我们要制作骨骼动画的SpriteMesh文件,将它拖到Scene视图中,记住是Scene视图,不是Hierarchy视图中。此时会在场景中生成一个新的对象。


    7.编辑骨骼。依次选中GameObject ----> 2D Object ----> Bone  或者直接按快捷键  Alt + Shift + B,可以直接在Hierarchy视图中生成一个骨骼对象。当我们选中一个骨骼对象,再次新建一个骨骼对象的时候,系统会自动将这两个骨骼对象绑定起来,一个父骨骼,一个子骨骼。我们根据需求,将骨骼的位置调整得和SpriteMesh所适应,如下图:

                                           


    8.绑定骨骼。选中SpriteMesh对象,然后将骨骼对象拖进SpriteMesh对象的Set bones属性中,如图。然后打开Sprite Mesh Edtor窗口,选中Hierarchy视图中的SpriteMesh对象后,在窗口中会在图片上显示对应的骨骼,点击左上角的Bind按钮,然后在Sprite Mesh Editor窗口点击Apply按钮,此后,我们的sprite 就和 骨骼绑定成功了。如下图:


    9.绑定成功后,我们就可以在回到Scene视图中,通过移动骨骼的位置或者旋转骨骼来达到我们想要的动画效果了。当然后面我们还可以在添加骨骼的IK limb对象 和 IK CCD 对象来使我们的骨骼动画调整的更加方便和逼真,以及使用PoseManager组件来保存和加载我们所设置的动画。这方面内容在插件中的UserGuide文件中都有详细说明。

                                                                                                 

    10.通过Unity内置的帧动画系统,来制作我们游戏所需要的动作。至此,本篇范例结束,大家有疑问的可以给我留言,我会尽力帮大家解决。祝大家制作出好的游戏~

    展开全文
  • 我们的这个项目是2d横版手游,但是场景是3D的,动画是由2d骨骼动画结合unity的状态机做的,但是我现在碰到一个问题就是,当我由移动(动画名)转向移动攻击时(动画名),人物本来是左腿在前变为了右腿在前,这就涉及到...
  • 本教程主要讲解Unity引擎自带的2D骨骼动画工具,以及2D动画的基本概念。然后新建工程示例,导入资源,并做一些动画的准备工作。 本教程适用于没有接触过Unity,或对Unity2D引擎和工具不太熟悉的开发者。 目标...

    转载自:2016-02-12 Unity官方平台

    本教程主要讲解Unity引擎自带的2D骨骼动画工具,以及2D动画的基本概念。然后新建工程示例,导入资源,并做一些动画的准备工作。
    本教程适用于没有接触过Unity,或对Unity的2D引擎和工具不太熟悉的开发者。

    目标效果

    我们要完成的最终效果如下:



    骨骼动画与精灵图集

    我们先来对比下面两张图片:



    第一张图中,龙被分为好几个部位(头、身体、手臂等)。第二张图展示了忍者的几种姿势,每种姿势都有一系列不同的动作。这就清楚展示了角色在游戏中的动画。
    我们将忍者那张图称为精灵表或精灵图集。这类型的精灵常用在经典2D游戏中,现在依然很常见。
    而龙精灵那张需要更现代的2D动画技术,通常称作“骨骼动画”。顾名思义,这种动画是基于每个骨骼的,每个骨骼都可以有特定的动作或动画。将角色身体几个关键部位分离开来,更利于开发者直接在引擎中创建动画。这种新的动画技术与常用来制作3D动画的类似。
    本教程将着重讲解骨骼动画。然而,Unity并不能实现真正的骨骼动画,所以我们会进行模拟。

    准备制作动画的精灵

    将上面龙的图片放在工程目录的Assets/Sprites文件夹下:




    在Assets目录下新建Scenes文件夹,然后新建场景命名为Test.scene放在Scenes文件夹下:




    在项目视图(Project)中选中dragon精灵,查看检视面板(Inspector):


    可以看到检视面板中Sprite Mode为Single。这表示引擎在新建精灵时会用到整个纹理。因为图片中是需要单独动作的各部位,所以我们将Sprite Mode改为Multiple。改完会发现新出来一个Sprite Editor 按钮:



    目前Sprite Editor的切割工具用于压缩图片并不完美。为了达到最好的效果,在检视面板下方将Format从Compressed改为Truecolor。然后点击应用。




    选中dragon后点击Sprite Editor按钮。弹出一个新窗口:




    窗口左上角有个Slice按钮,点击后会弹出菜单:




    可以通过该菜单设置一些参数,这些参数决定了引擎如何切割精灵。如果将类型设为Automatic,引擎则会自动检测图片中角色的不同部位。你还可以设置切片的最小尺寸,锚点(切片将围绕哪个点旋转)以及下面其中一种方式:
    ● Delete Existing 将替换所有已有的切片● Smart将新建切片,同时保留或调整已有的切片● Safe将新建切片同时不改变已有切片
    将Type设为Grid下面的选项也会有所不同:




    与Automatic一样,你也可以设置精灵的锚点,同时还可以设置Pixel Size,该值决定了切片的像素宽高。
    对于dragon这张图,选择Automatic模式后点击Slice按钮即可。结果如下:


    如图所见,编辑器将精灵的各部位切割成了不同的矩形。这就是用于创建角色的各个部位。之前提过,这并非完美的骨骼动画,每个部位的动画将分开进行。
    双击其中某个矩形,会弹出其在精灵图片中对应的属性信息:


    你可以更改生成精灵的名称、位置、大小及锚点。也可拖拽矩形顶点处的蓝点来改变位置和大小。选中矩形中心的蓝色圆圈表示锚点。
    对于这张图,让Unity自动创建单独的精灵即可。但有些情况下一些更复杂的精灵可能需要手动控制。可以在图片上点击鼠标左键并拖拽来定义矩形。


    放开鼠标后 ,Unity会按照选中的矩形范围生成一张新的精灵



    点击Trim按钮将矩形应到到精灵。然后对于你想生成的所有精灵重复以上步骤。
    本例中的图片使用自动模式即可,无需手动生成。
    调整锚点

    接下来调整生成精灵的锚点。这一步对于动画至关重要。
    基本上,需要将精灵锚点设在与父物体相连的部位。例如,头部锚点应该设为接近脖子的位置。这样就能确保角色进行动画时,所有的动作如旋转等,都是围绕该点进行,这样可以让角色动作更真实。否则角色动作会很奇怪。
    可以将锚点想象为玩偶的关节。为了让玩偶运动,这些关节就要放在正确位置。这与锚点是类似的。
    只需拖拽各精灵中心的蓝色圆圈即可调整锚点到正确的位置(即与父物体相连的点)。下图可看到头部正确的锚点位置:


    尾部锚点如下:




    理解后重复以上步骤设置其它部位的锚点。(黑点的锚点设为中心即可)
    完成后点击Apply:



    现在可以看到精灵旁多了个箭头:



    点击箭头可以看到龙的各个部位:




    组织角色


    现在可以将各个部位组合起来创建角色到场景中啦。
    首先将黑点那张图片拖拽到场景中。它将作为整个角色到中心,具体作用后续再看,这里只要知道它是角色基点就好


    现在将龙身置于黑点,如下:



    重复以上步骤直到龙拼接完成。最终效果如下:



    虽然拼接完成了,但有些部位层次不太对。因为我们并未按照特定顺序来添加各部位。
    调整层次前先将精灵存为单个游戏对象,以便后续进行动画。为保所有精灵层次正确,将黑点设为父对象,所有部位都作为其子对象。在层次面板中将所有部位拖拽到黑点下即可。
    完成后如下图:


    将父对象重命名为Dragon。此时移动Dragon即可移动龙的所有部位。
    但如果想移动单个部位呢?例如,只想移动手,但手与手臂是相连的,所以手臂也应该要动。而如果移动手臂,则只有手臂会动,其它部位保持不动。为了实现这些,需要设置身体各部位的层次。
    为了更直观,重命名各部位(右击选择Rename)如下:


    可以将角色当作一颗树,有树根,树干和树枝。黑点就是树根,移动黑点会带动所有部位。这里的树干就是龙身,所以下一层精灵就是身体。其余部位都是树枝。但树枝还要继续分支,例如,尾巴那里,Tail Tip就是Tail的树枝,等等。
    按照如下层次组织角色各部位:


    现在移动上臂,手臂其它部位也会跟着动。

    重设精灵层次

    制作动画前最后一个待解决的问题就是层次。设置各个精灵的Order in Layer参数来解决层次问题。



    建议大家使用以下设置:
    •Dragon: 0•Body: 3•Head: 4•Left Leg: 4•Left Upper Arm: 5•Left Arm: 4•Left Hand: 5•Right Leg: 1•Right Upper Arm: 2•Right Arm: 1•Right Hand: 2•Tail: 4•Tail Tip: 5
    最后的效果如下:


    最后,将角色放到屏幕中央。只需将Transform的position设为(0,0,0)即可。















    展开全文
  • Unity3d骨骼动画

    2014-12-09 14:24:31
    在这个系列,我们将关注Unity引擎提供的基于骨骼动画工具。它的主要思想是为了把它应用到你自己的游戏来介绍和教基本的2D动画原理。在这节课中,我们将添加闲置,跳跃和动画。 在开始这个课程前,我们将感谢...

    在这个系列,我们将关注Unity引擎提供的基于骨骼动画工具。它的主要思想是为了把它应用到你自己的游戏来介绍和教基本的2D动画原理。在这节课中,我们将添加闲置,跳跃和动画。

    在开始这个课程前,我们将感谢Chenguang (DragonBonesTeam)给我们提供用于本系列教程游戏艺术。

    离开的地方

    在 上一个课程,我们启动项目,合成2D龙角色,然后创建三种不同的动画。如果你还没完成之前的课程,在此之前,我们强烈建议您这样做。

    预览效果        

    这个demo演示了龙的动画,我们的目标是 –点击Space键就跳:

    点击查看

    Mecanim


    这时候,你的龙已经完全合成并且做出了三种定义的动画。然而,他们之间还没有连接。所以,我们最初的的目标是连接不同的动画影片剪辑和混合在一起。为了达到这个目标,Unity提供你正需要的一个非常棒的工具,叫做Mecanim

    Mecanim是一个功能强大且灵活的动画系统。因为它与Unity本身集成,所以不需要第三方的软件。你可以轻松改变任何东西,从精灵变成混合的形状,甚至是灯。Mecanim允许创建状态机和混合数来控制你的角色。

    但是,在继续下去之前,让我们讨论一下关于混合动画和状态机,让我们有一个更好的了解我们要做什么。

    状态机是什么?

    Unity里,你可以混合两种或者更多的相似动画 ――举个例子来说,你想把跑步和步行的动画依靠角色当前的速度混合到一起。基本上,在Unity中有两种不同的方法可以混合动画。在一些情况下,你可能想要使用过渡,在其他情况下可能你需要使用混合树:


    · 过渡常常是用在动画之间的自然过渡。这通常适用于是否快速过渡。

    · 当合并部分的数量变量是,混合树允许在多种动画顺利融合。给一个实际的例子,假设有一个射击游戏,你可能想要你的角色跑着开枪。混合树允许你将两种动画混合到一起,不需要为这个特定动作的混合物创建第三种动画,就能让角色跑着开枪。


    在给定的时间,一个状态机存储的状态实体,并且能够对一个输入改变实体的状态,活导致一个行动或者输出。有关更多消息请参见有限状态机理论和实现

    Unity,你使用状态机来控制游戏角色的状态。举个例子,角色的一种状态叫walk,另一种状态叫Jump。一个角色从Walk的状态变成Jump的状态取决于播放器的输入(可能是通过点击Jump按钮)。

    在这里你可以从Unity文旦中。看到一个例子(更复杂)的状态机。每一个箱子表示一个状态,它们之间的箭头表示可能的转换:

    02.png

    我们将要用我们存在的动画创建一个状态机,然后使用过渡来把它们混合起来。

    创建我们的状态机

    如果你检查一下Animations文件夹,你可以在Dragon.controller文件下看到已经保存为.anim文件。这些mecanim文件与角色关联,Unity保存在你第一个动画自动生成的地方。

    03.png

    双击 Dragon.controller 文件,Unity将打开在场景和游戏选项卡之间动画视图的选项卡。

    正如你所看到的,Unity已经添加这三种动画到文档中了。因为动画已经在那里了,所以不需要添加,但是,如果你想添加额外的动画到控制器,你只需要把.anim文件拖拽到Animator视图中。同样的,如果你想移除已经存在控制器的动画,你只需要相中Animator视图,然后点击Delete按钮即可。随时可以自己试一下这个。

    Animator中有四种不同的盒子:

    · 任何状态

    · 闲置

    · 跳跃

    · 下降

    05.png

    任何状态是mecanim创建的一种默认状态,你不能使用它。你可以把它拖拽到Animator窗口的任何角落下,然后放在哪里。

    其他三种盒子使我们关于我们创建的三个动画。你可能会注意到,Idle是橙色的,其他两个是灰色的。这是因为idle是主动画,这是角色默认播放的动画。如果你在编辑器中点击Play按钮,然后测试它,你就可以看到角色的Idle动画。在这种特殊情况下,这确实是我们想要的行为。然而,如果你想要说Fall动画成为主动画,你需要做的就是单击右键选择设置为默认。

    06.png

    可以看到,现在Fall动画是橙色,idle是灰色的。

    07.png

    因为你想要idle成为主动画,仅仅只需要重复这个过程是颜色变为橙色即可。

    现在是连接动画的时候了。右击Idle,然后选择 Make Transition。

    08.png

    这会在Idle这个创建一个小箭头。点击Jump动画来制作一个箭头来连接两个动画。

    09.png

    如果你选择你刚刚创建的箭头,你将会看到在Inspector选项卡中会显示一个新的属性。

    10.png

    你可以看到,有一个时间轴,还有IldeJump动画。在Idle动画的开始有一个蓝色带,但是后来变成Jump。同样的,在这两个动画之间有一段重叠的时间。

    11.png

    因为预览区域是空白的,即时你点击了预览的Play按钮,也不能看到什么变化。

    为了预览现在做的过渡,只需要选中层级视图的选项卡中Dragon游戏物体,并把它拖拽到预览区域即可。现在你可以看到角色的预览,如果点击play按钮,你就可以看到两个动画之间的过渡。

    图片1.png

    在监控器中,看到IdleJump转变的蓝色带区域就是过渡:

    图片2.png

    在过渡区域,你可以通过拖拽时间轴上蓝色箭头来编辑过渡。通过改变它们的位置,你可以让过渡变得更加快和平缓。

    接下来你可以定义你什么时候想让过渡发生。为了达到这个目标,通过点击在Parameters 列表下的+标志创建一个新的参数。

    图片3.png

    接下来,选择Float选项并叫为VerticalMovement:

    图片4.png

    现在,返回到Inspector,在 Conditions下会显示一个VerticalMovement值,然后选择它。

    图片5.png

    你刚刚定义的条件是来确定何时改变状态机的状态:如果VerticalMovement的值比0大,那角色就会开始Jump的动画。

    我们也需要Jump动画到Fall动画的过渡:


    VerticalMovement的最大值将达到1,因此,为了JumpFall的过渡,需要把值设置低于0.5.


    现在我们需要在Fall之后设置角色返回到Idle。因为idle播放时角色应该是在地板上,我们应该创建一个从FallIdle的过渡。

    图片6.png

    为了完成,你必须确保活动时角色是在地面上的。为了达到这个效果可以通过设置VerticalMovement 过渡参数低于0.1—这基本上意味着的VerticalMovement值为0,表示角色在地面上。

    图片7.png

    我们需要确保在空中JumpFall动画直接角色没有出现Idle动画。为了达到这个效果,还需要创建一个新的参数,这次是一个布尔Bool

    图片8.png

    把它叫做OnGround。

    图片9.png

    选中JumpFall之间的过渡。你要这个角色的过渡依旧是在空中,对吗?所以到Inspector,点击+,然后在过渡中添加一个新的参数。从根本上上讲,当的OnGround值为 false时你想要的这样的事情就可以发生

    。 图片10.png

    接下来,从FallIdle的动画过渡,添加参数 OnGround 并设置为true。

    图片11.png

    我们做的Mecanim开始动了。现在是到我们的脚本了。

    脚本动画

    在你的asset目录下,创建一个叫Scripts的文件夹。接下来,创建一个名为CharacterMove.cs新的C#脚本。请注意,你现在创建的脚本是一个非常简单的,它的主要目标就是显示如何通过代码改变角色的动画。

    当你想要创建一个健壮的游戏,最好的实践就是使用Unity本身。然而,为了简单起见和理解,我们将创建一个小的模拟。

    图片12.png

    在脚本中创建四个变量:一个是Animator组件,另一个是下降的速度,第三个是垂直运动,和一个标记检查角色是否在地上。

    1. 在Start()方法中,我们需要确保速度设置为0.03(或者你举得适合动画的值)并且角色在地面上。void Start () {
    2.     // The character starts on the ground
    3.     onGround = true;
    4.      
    5.     // Set the fall speed
    6.     fallSpeed = 0.03f;
    7. }
    复制代码

    现在,在 Update() 方法中,有几个地方需要检查。第一,你需要检测当空格键被点击时,角色在跳。当它被按下时,设置水平运动为1onGround 标志为false。

    1. void Update () {
    2.     // If the space bar is pressed and the character is on the ground
    3.     if (Input.GetKeyDown(KeyCode.Space) == true && onGround == true)
    4.     {
    5.         verticalMovement = 1f;
    6.         onGround = false;
    7.     }
    8. }
    复制代码

    如果不是空格键被按下呢?非常好,你需要检测角色在空气中和它的水平运动大于0;如果这样的话,你需要通过减少下降速度来减少水平运动。

    1. void Update () {

    2.     // If the space bar is pressed and the character is on the ground
    3.     if (Input.GetKeyDown(KeyCode.Space) == true && onGround == true)
    4.     {
    5.         verticalMovement = 1f;
    6.         onGround = false;
    7.     }
    8.     else
    9.     {
    10.         // Check if the character is in the air and the vertical movement greater than 0
    11.         if(onGround == false && verticalMovement > 0)
    12.         {
    13.             // Reduce vertical movement
    14.             verticalMovement -= fallSpeed;
    15.         }
    16.     }
    17. }
    复制代码

    你要记得,一旦verticalMovement 低于0.5Fall动画将开始播放。

    然而,你永远不想从verticalMovement 减去fallSpeed ,因为这个角色将会回到地面上。如果水平运动的值等于或者小于0,这意味着角色将抵达地面上。


    1. void Update () {
    2.     // If the space bar is pressed and the character is on the ground       if (Input.GetKeyDown(KeyCode.Space) == true && onGround == true)        {
    3.         verticalMovement = 1f;
    4.         onGround = false;
    5.     }
    6.     else
    7.     {
    8.     // Check if the character is in the air and the vertical movement greater than 0
    9.     if(onGround == false && verticalMovement > 0)
    10.     {
    11.         // Reduce vertical movement
    12.         verticalMovement -= fallSpeed
    13.          
    14.         // If the vertical movement is less or equal to 0, the character is on the floor
    15.         if (verticalMovement < 0)
    16.         {
    17.             verticalMovement = 0;
    18.             onGround = true;
    19.         }
    20.     }
    21.     }
    22. }
    复制代码


    在Update() 方法的结尾,你需要把verticalMovement和onGround 的值传递给Animator组件。

    1. void Update () {

    2.     // If the space bar is pressed and the character is on the ground
    3.     if (Input.GetKeyDown(KeyCode.Space) == true && onGround == true)
    4.     {
    5.         verticalMovement = 1f;
    6.         onGround = false;
    7.     }
    8.     else
    9.     {
    10.         // Check if the character is in the air and the vertical movement greater than 0
    11.         if(onGround == false && verticalMovement > 0)
    12.         {
    13.             // Reduce vertical movement
    14.             verticalMovement -= fallSpeed;
    15.             // If the vertical movement is less or equal to 0, the character is on the floor
    16.             if (verticalMovement < 0)
    17.             {
    18.             verticalMovement = 0;
    19.             onGround = true;
    20.             }
    21.         }
    22.     }

    23.     // Update the animator variables
    24.     anim.SetFloat("VerticalMovement", verticalMovement);
    25.     anim.SetBool("OnGround", onGround);
    26. }
    复制代码

    脚本完成了。现在,你需要把它添加到Dragon游戏物体上,并添加到Animator组件的引用。为了完成这个,一旦你添加脚本,脚本Animator拖拽到的合适字段上。

    26.png

    如果你点击Play按钮并测试,动画应该像他们想象的改变。龙开始是闲置状态,但是一旦你点击空格键,它就会跳上来接着播放下降动画,然后恢复到之前的闲置状态。

    外部的工具和技术

    尽管这个课程中我们仅仅使用到Unity默认的工具,在Unity资源存储中有很多非常好的2D工具来帮助你使这个制作过程更容易和更快。

    这样的插件提供一些配件,像添加2D“骨骼”的能力,是整个动画制作过程更容易和变形更现实。如果你的想法是利用一些细节2D动画,我们强烈建议你去看看这些插件。

    总结

    我们这一系列关于如何在Unity创建基于骨骼2D动画的教程到此结束。我们涉及到很多简短的系列,你现在应该知道的足以开始你的2D动画。如果你有一些问题或者评论,和往常一样,随时在评论给我们写道。

    参考资料

    龙精灵表:从Chenguang 的DragonBonesTeam获得适用权限


    展开全文
  • 大家好,我是孙广东。 转载请注明出处:http://blog.csdn.net/u010019717更全的内容请看我的游戏蛮牛地址:...骨骼动画对于游戏开发的性能上是很好的,有些时候和序列帧动画相比。强大的uni

    大家好,我是孙广东。   转载请注明出处:http://blog.csdn.net/u010019717

    更全的内容请看我的游戏蛮牛地址:http://www.unitymanual.com/space-uid-18602.html 

    开发Cocos2d的程序员都知道,Cocostudio其中一个动画编辑组件中的。骨骼动画对于游戏开发的性能上是很好的,有些时候和序列帧动画相比。

    强大的unity3d虽然也可以开发2D游戏,可以序列帧实现动画。 还是没有2d的骨骼动画编辑功能。

    最近开发了一个第三方的插件,专门对unity实现这个功能。  那就是Puppet2D


    Walkthrough演练

    Introduction:

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


    Createthe Character:

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


    CreateLayers

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


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

    BoneCreation




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


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



    RiggingSetup操纵设置


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

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

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

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

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


    Skinning

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

    Parenting

    hierarchy中选择PuppetMan_armBottomPuppetMan_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。移动控制并设置关键帧,随便哪里只要你喜欢----快乐动画

    
    
    
    展开全文
  • Spine Skeleton Animation(2D骨骼动画) 骨骼动画 首先我们来看到底什么是骨骼动画: 在早期的机器上,渲染本身已经占用了很多CPU资源,因此,对于渲染,往往采取的是一种空间换时间的策略,以避免...
  • 紧接上一步的做法,如图所示添加在Rock Golem下添加一根骨骼,并命名为Hips,作为臀部骨骼 图中黄色的针就是骨骼,点击黄色方框可对移动骨骼,点击针部则可旋转骨骼 按下图中的层级顺序分别创建Spine,Neck,...
  • 在这个系列,我们将关注Unity引擎提供的基于骨骼动画工具。它的主要思想是为了把它应用到你自己的游戏来介绍和教基本的2D动画原理。在这节课中,我们将添加闲置,跳跃和动画。 在开始这个课程前,我们将感谢...
  • 调研资料 Spine下载地址: ...   Unity3D的RunTime下载地址: https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-unity   spine导入unity视频(翻墙观看): http:/
  • Unity即将内置骨骼动画插件Anima2D Unity一直在寻找新的方法来帮助开发者,并为他们提供最好的工具。在此我们向大家宣布,Unity将内置流行的骨骼动画插件Anima2D,从2017年1月开始免费供所有Unity开发者使用...
  • 我们的这个项目是2d横版手游,但是场景是3D的,动画是由2d骨骼动画结合unity的状态机做的,但是我现在碰到一个问题就是,当我由移动(动画名)转向移动攻击时(动画名),人物本来是左腿在前变为了右腿在前,这就涉及到...
  • Unity3d技术之2D骨骼动画插件Puppet2D,对2d骨骼动画帮助很大!
  • Unity骨骼动画优化

    2019-12-02 17:18:10
    Unity做游戏经常会用到3D角色,也就会用到骨骼动画骨骼动画对性能的影响其实非常大的,在说这个问题之前,先来说说骨骼动画的原理。 我之前做过多种骨骼动画,包括写过2D骨骼动画系统(类似于现在比较流行的...
  • Unity 骨骼动画 2D Animation 入门(1) 好记性不如烂笔头啊,还是记录一下! Unity从2018版本开始引入不少2D的新功能,在资源包里加入很多新功能,一定要开启预览模式可以看到新功能,2D Animation,2D IK,2D ...
  • Unity骨骼动画

    2018-09-21 19:22:45
    Spine Skeleton Animation(2D骨骼动画) 转自:https://blog.csdn.net/dk_0520/article/details/53945381 最近面试遇到关于骨骼动画相关问题,来学习一下 骨骼动画 首先我们来看到底什么是骨骼动画: 在早期的机器上...
  • 如果你喜欢做2D横版游戏,使用2D骨骼动画是一个不错的选择,因为2D骨骼动画可以用最小的资源量做出复杂的动画。最近在使用Dragonbones骨骼动画的时候,接触到了这么一个2D骨骼动画编辑器,感觉还不错,于是打算推荐...
  • 6、MESH CREATIONSkinning允许单个的对象,将会受到多于一根骨头的影响。为了做到这一点的精灵需要转换为一个网格。随便选择一个精灵,然后我们来到 Skinning面板。先看Type of Mesh 的选项0~3 , 值越大网格越密集。...
  • 博主今天想和大家分享的是在Unity3D中使用...相信在大家的印象中,Mecanim动画系统主要运用在3D动画中,因为Mecanim动画系统提供了像动画重定向、人体骨骼动画等3D动画的特性,那么Unity3D的Mecanim动画系统能不能
  • Spine 2D骨骼动画插件 for Unity GitHub https://github.com/EsotericSoftware/spine-runtimes 如果你喜欢做2D横版游戏,使用2D骨骼动画是一个不错的选择,因为2D骨骼动画可以用最小的...
1 2 3 4 5 ... 20
收藏数 1,266
精华内容 506
关键字:

2d unity3d 骨骼动画