unity2d 动画_unity2d动画 - CSDN
精华内容
参与话题
  • Unity 2D独立开发手记(外篇):Anima2D动画制作

    万次阅读 多人点赞 2019-10-11 21:08:56
    角色全都是用手机的dotpict这款像素画APP一点一点画...动画制作我使用的是AssetStore里面的Anima2D插件,真心好用,不过仅仅合适于两朝向的动画,例如《饥荒》,而想要制作四朝向动画,例如GBA上《塞尔达传说》那种...

    角色全都是用手机的dotpict这款像素画APP一点一点画出来的,没啥艺术细胞也不懂什么解剖学,人体比例什么的,先乱画了一个角色练练手吧,制作动画要用的。虽说也是像素风的,跟其他现有的像素风游戏差得不是一点半点_(:з」∠)_

    动画制作我使用的是Asset Store里面的Anima2D插件,真心好用,不过仅仅合适于两朝向的动画,例如《饥荒》,而想要制作四朝向动画,例如GBA上《塞尔达传说》那种前后左右四朝向,这样的动画用2D骨骼来弄限制就太多了,最终还是要老老实实逐帧手绘动作分解。因此我在开始我就打算做成饥荒那样的朝向,偏向左和偏向右,因为现阶段也只好如此。

    那么Anima2D怎么使用呢?为了以后便于复习,暂且在这里记录一下用法。

    先创建工程吧,选2D 游戏制作。

    1、第一步当然是去store下载并导入Anima 2D插件了

    2、导入png精灵图片并新建一个文件夹准备用来装转换的mesh文件,我命名为mesh,很多人都不建议用中文文件名,那我在这里也提醒一下寄几吧,虽然我的素材文件夹创建的时候也使用了中文,现在暂时不改了

    3、选择角色肢体,右键创建anima2d精灵网格

    之后会生成很多asset格式的文件,显示为png图片的内容,把它们拖入mesh文件夹以便后期方便整理。

    4、接下来在场景中新建一个空的游戏对象,我命名为Lee Xiao,然后再在这个对象下面创建两个空的子对象,我命名为body和bones,顾名思义了

    5、好了,把肢体的mesh依次拖入body,不要多选拖进去,没用的,因为只会拖进第一个。

    6、整理一下肢体位置,并排序一下显示次序。怎么排次序呢,首先得新建一个图层

    随便选中一个场景中的mesh对象在inspector视图如此操作

    我新建一个character层用于角色吧

    返回把所有mesh对象的sorting layer改成character,然后调整该项成为合适的值

    最后效果是这样的,看起来not  too bad,原谅我这粗鲁的美工和肢体比例,因为只是练手先随便画咯

    6、好了,重头戏,绘制骨骼。选择空的bones对象,加个骨骼吧。

    我命名为hips,作为所有骨骼的起始

    调整骨骼的位置和旋转、长度等到合适的值,点住骨骼根部的方框以调整位置,点方框以外的骨骼部位旋转。其实hips是骨盆的意思,这里我位置放错了,大家不要学_(:3J∠)_

    右键hips重复第6节的第一步,从hips伸展出身体的骨骼,我命名为torso,并做出调整。

    然后从torso再伸展出头部的骨骼,调整。

    回到torso,为右手臂创建新的骨骼,调整好后Ctrl+D拷贝一份给左臂。

    为了方便,返回右手骨骼,新建一个子骨骼作为武器骨骼,并把武器mesh或者png拖到这个骨骼去作为它的子对象,然后调整武器的位置旋转缩放等至合适的值。

    返回hips,给右腿添加骨骼,调整好后拷贝一份给左腿。

    到此,骨骼的创建就告一段落了。

    7、接下来就是骨骼蒙皮了。

    把hips骨骼对象拖到body的inspector中的set bones框

    会生成一个骨骼列表,选中最下面的多余骨骼往上依次点两次右下方的“-”按钮删掉,只留下关键骨骼

    然后,在选中body_f对象的前提下,打开mesh 编辑器,如下

    出现以下类似界面,由于我的mesh尺寸太小了,导致只有十个不到的原始顶点,点击slice,调整outline detail外缘细节来细化我的边缘顶点,然后点apply应用,可以看到最终效果还可以。

    然后用鼠标双击,给关键部分添加更多的内部顶点,这样才能保证蒙皮效果不会太差。

    然后,点击bind按钮,右下方会弹出一个浮窗,勾上overlay,会出现下图的效果,可以点击smooth和auto键来选择想要的效果,还可以勾上piex来手动给各个顶点赋值,以细化蒙皮权重,不过我这里暂时不需要了,效果已经令我满意。

    最后,点击窗口右上RGB图标左边的apply来应用蒙皮效果,回到scene旋转身体骨骼,可以发现身体的mesh也跟着动了

    以此类推,把其余肢体依次蒙皮,记得给关节处多加点顶点。这里说一下,我的武器贴图是骨骼的子物体,并不会受到蒙皮与否的影响,如果跟身体一样蒙皮了,那么武器的位置就会固定住,不能进行形变,例如移位,比如说下一招式需要握住长矛的中部,如果蒙皮了,那贴图就不能随意在手中移动位置了,反之则可以调整长矛在手中的位置。

    8、为了便于录制动画,给骨骼添加IK关节以方便调整骨骼

    给bones再添加一个空的子对象,命名为IK

    选中IK,右键添加一个IK Limb对象

    把IK Limb对象重命名为arm_r IK,并移动到手腕的位置

    把前臂的骨骼拖拽到IK对象的Inspector中的Target框中,并去掉Orient Child的勾勾,抛开字面意思,我觉得这个的意思是是否不允许子骨骼的自由变换,当然要允许了,要不然手和武器怎么自由变动

    返回场景视图中移动IK对象看看效果,可以发现,手臂的骨骼会随它而进行关节性的变化,圈圈变成了蓝色,而且骨骼根部的小黑点也变成了蓝色,表示绑定了关节

    以此类推,给左臂和两条腿也都绑定关节,注意关节的绑定对象都是前臂或者小腿,不是手和脚。其中可能会出现腿部骨骼的弯曲方向不正确的情况,把这个Flip选项勾上就行

    最终的效果应该是这样的

    9、动画制作

    打开windows菜单中的Animation窗口,拖动到合适的位置

    然后选中Lee Xiao,也就是角色的整个物体,在animation视窗中为它create一个动画

    按个人习惯,我新建了一个animation文件夹来保存动画,然后把要保存的动画片段命名为spear_idle,顾名思义

    然后再资源视图中可以看到,unity自动添加了一个动画控制器,名称为动画物体的名字。随后我改名为Lee Xiao_Spear

    重新选中Lee Xiao,回到animation视窗,点击左上方的小红点开始录制动画

    会发现,时间轴和其他一些地方变成了红色的,表示正在进行动画录制

    好了,废话不多说,可以开工了,为了精度,先把Samples的值从60改成10(其实这骚操作无所谓的),然后点时间轴上的0.05帧把白线弄到这个位置,接着返回角色骨骼,选择hips调整一下它的高度为比原来稍微低一些,再调整手臂、武器等其他骨骼的形变使得动作自然一些,然后随时都可以点击Animation视窗左上方的播放按钮来查看录制效果。随着调整,可以看到时间轴下方的区域生成了一些棱形,它们称作关键帧,关键帧还可以完成形变之外的很多事情,比如进行某些数值、mesh显示层次的变化等

    也就是一个待机动作,我不用给它制作很长的动画,接着鼠标框选第0帧的关键帧,Ctrl+C复制,然后去到0.1帧粘贴,这样就完成了一个简单的循环动画

    最终待机动画的效果是这样的,上传的gif不知怎么就变快了1倍,实际画面会慢成0.5倍,更自然一些

    好了,有了个好的开头,相信我们都能轻易的录制其他的动画了吧,那么今天就先更新到这里吧。更多其他方面的文章,如任务系统、对话系统、小地图等,请移步我的主页。

    工程文件我打包放在了https://pan.baidu.com/s/1oAaEDtS,需要的可以参考一下,虽然是很早的版本,并不是最终效果

    展开全文
  • Unity 2D教程 | 骨骼动画:介绍

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

    转载自: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)即可。















    展开全文
  • Unity ~2D精灵动画制作

    千次阅读 2018-09-03 17:49:22
    Unity 中如果要进行2D游戏的开发,刚开始没有选择2D创建项目的时候,需在Unity 中进行设置 1.Etid–>Project Settings–>Etidor 2.将相机设置为正焦相机 3.选择Scene视图中的2D 2D...

    Unity 中如果要进行2D游戏的开发,刚开始没有选择2D创建项目的时候,需在Unity 中进行设置

    1.Etid–>Project Settings–>Etidor
    这里写图片描述
    2.将相机设置为正焦相机
    这里写图片描述
    3.选择Scene视图中的2D
    这里写图片描述

    2D精灵动画制作

    1.这里写图片描述
    2.在Hierarchy视图中创建一个精灵
    这里写图片描述
    3.这里写图片描述
    4.选中图中的PlayerRUN对象,按下Ctrl+6
    这里写图片描述
    命名随意
    5.完成如图,运行即可
    这里写图片描述

    展开全文
  • unity 2d 动画

    2018-04-25 14:28:43
    1. 首先载入图片 (直接拖动到Project) 2. 点击图片 在Inspector... 修改后将这些图片拖动到 Hierarchy 中 4. 在Project中生成文件夹 为Resources-->Prefabs--> 然后把hierarchy中的所有图片拖到其...

    1. 首先载入图片 (直接拖动到Project)

               

    2. 点击图片  在Inspector中的Texture Type 选为sprite 模式  (可以shift选中全部图片 一起更改类型)

    3. 修改后将这些图片拖动到 Hierarchy 中 

    4. 在Project中生成文件夹 为Resources-->Prefabs--> 然后把hierarchy中的所有图片拖到其中生成预制体 

       

    5. 然后取其中一个 预制体 为他生成一个c#脚本  (一定要挂载上去 )  图片编号不能有0 

    代码如下  

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class HuoWu : MonoBehaviour
    {
    
        //用来存储Sprite 2D游戏对象
        List<GameObject> quanhuangList = new List<GameObject>();
        //Sprite 总数
        int picture = 15;
    
        GameObject FramePrefab;
        private void Awake()
        {
            for (int i = 0; i < picture; i++)
            {
                //加载预制体
                string path = string.Format("{0}{1}", "Prefabs/HuoWu", i + 1);
                FramePrefab = Resources.Load(path) as GameObject;
                //加入集合
                quanhuangList.Add(FramePrefab);
            }
        }
    
        private void Start()
        {
            InvokeRepeating("Idel", 0f, 0.05f);
        }
    
        int index = 0;
        void Idel()
        {
            if (index < picture)
            {
                //获取游戏物体的Sprite
                //从集合中取出之前加载的预制体身上的 Sprite
                transform.GetComponent<SpriteRenderer>().sprite
                    = quanhuangList[index].GetComponent<SpriteRenderer>().sprite;
                index++;
            }
            else
            {
                index = 0;
            }
        }
    }

    实现效果如下 



    其中图片与代码资源我另外上传提供下载 


    展开全文
  • Unity2018新功能之2D Animation2D动画

    万次阅读 2018-07-21 15:21:49
    新版本中引入不少2D的新功能,我们打开资源包管理器,可以看到2D Animation,2D IK,2D Pixel Perfect,2D SpriteShape等等。 我们先来讲讲2D Animation的功能。 2D Animation的安装 点击菜单Window &gt; ...
  • unity2d之2d帧动画创建

    万次阅读 2016-03-24 15:21:15
    在2d游戏中帧动画的应用是非常广泛的,那么如何在unity中创建一个帧动画,主要是下面几个步骤。 一,导入图片 把美术给的动画图片导入unity,并把图片属性设置成下图中的属性 二,创建动画 选择要生成动画的图片...
  • 本小主在这里给大家分享一下unity 2D游戏开发中制作帧动画的两种方法。 比较简单,一学即会。 方法一: 是用代码控制: 先创建一个2D工程。导入图片资源,并设置texture的texture type为sprite,看下图...
  • 动画状态机设置: 1. 2. 3. 4. 5. 二 上代码:  private Animator anim; //动画组件  void Start()  {  rig = GetComponent&lt;Rigidbody2D&gt;(); //获取主角刚体组件  anim = ...
  • Unity3D Sprite2D 序列帧动画 干货总结

    万次阅读 2016-10-17 14:40:51
    如何导入,设置Sprite2D序列帧,创建AnimClip,设置AnimController和Parameter,如何触发状态转换。
  • Unity3D中引用Spine2D动画研究学习(一) Spine2D是一款针对游戏制作2D骨骼动画的编工具,与传统的帧动画相比,有以下特点: 由于本人是Unity程序员,关注点在于如何在Unity工具中使用控制Spine导出的...
  • Unity2D 官方骨骼动画Anima2D使用方法

    万次阅读 2017-05-20 14:48:50
    转载请注明出处。
  • Unity3D中使用Spine2D的骨骼动画

    万次阅读 2014-12-17 17:02:35
    调研资料 Spine下载地址: ...   Unity3D的RunTime下载地址: https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-unity   spine导入unity视频(翻墙观看): http:/
  • Animator是动画控制器,一个动画控制器里可以包含多个动画,根据条件选择播放哪一个动画 精灵Sprite上挂载Animator动画控制器来播放动画 crtl+6打开animation编辑面板,默认是不能进行任何操作的,要选中做动画的...
  • 紧接上一步的做法,如图所示添加在Rock Golem下添加一根骨骼,并命名为Hips,作为臀部骨骼 ... 按下图中的层级顺序分别创建Spine,Neck,Skull,Jaw骨骼,并调整至如图所示 ...Animation2D-&amp;gt;SpriteMesh...
  • unity 2D 透明遮罩 简单实现

    万次阅读 2018-11-24 21:30:45
    unity实现2D遮罩找了许多的解决方法,这个是我采取的一种方法,比较便捷,但不一定是最好的 主要想实现的效果是这样的,小偷藏在窗户的后面,并且有移动的动画,需要遮罩除去其在窗户之外的部分 首先新建一个...
  • 在制作动画过程中,有时会遇到图片尺寸不统一,使得播放的动画怪怪的,这时就需要我们实时修改图片尺寸。代码如下: Image Image; void Update () { Image = this.transform.GetComponent&lt;Image&gt;...
  • Unity自带Animation,Animator是可以实现精灵的变化,位置移动,位置旋转,精灵不同时间段的变换为其他精灵 骨骼动画Spine的优势是当游戏中人体复杂的动画体现,需要骨骼动画的存在 如果使用Unity自带的Animation...
  • 整理截图自官方视频教程,unity2D角色控制器教程(基于untiy5修改)
  • Unity 2d 骨骼动画(官方实践)

    千次阅读 2016-03-16 15:30:41
    自从unity支持了2d以来,就感觉unity弥补了一大空缺~~会有很大市场,如今又支持了2d骨骼动画,太完美了。再也不用序列帧到死了....(以前搞过序列帧的动画,太占资源了) 这篇文章主要是对unity 官方的2d骨骼动画的...
  • Unity Mecanim动画的实现(十):动画混合树、子状态机和状态行为1.动画混合树 混合树表示多个状态的混合调用,一般根据某些参数来实现这些动画状态之间的混合与切换,根据参数的个数可以分为1D混合、2D混合和直接...
1 2 3 4 5 ... 20
收藏数 8,386
精华内容 3,354
关键字:

unity2d 动画