unity3d 2d动画选了2d怎样再返回到3d

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
我是阿赵,请多多指教!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
spine骨骼动画&在它的官网里面,可以看到它支持这么多的引擎和平台:然后在官网也有对应的运行库下载,我最熟悉的unity和as3 它都支持:&编辑器自带了几个例子,打开其中一个是这样的,这是setup界面,可以设置图片的位置和摆放骨骼:&这是动画制作界面,可以在时间轴上面打关键帧做动画,除了直接移动骨骼做动画以外,还可以给骨骼上的图片换图,比如这只龙的翅膀,在扇动的时候其实是用了序列图做扇动的效果的。&还有其他一些例子,可以同一个文件里面包含多个动画&再来看看导入到Unity3D的情况了:可以看到刚才spine里面的龙已经进入了Unity了,播放动画后它将会和在编辑器里面一样的运动起来。&看了一下它的原理,spine给unity写了几个扩展的组件,包括了骨骼、网格和动画,只需要拾取了数据,那么这个物体将会是一个整体,使用动态网格的形式生成。(当然了,这种程度的功能我自己也能写出来,不过比较麻烦)。放置多几个动画测试一下,感觉性能还算过得去吧。可能是由于最新版的spine推出的时间比unity4.3要早,所以它暂时没有对应Unity2D sprite的运行库,只有对应了2D toolKit的运行库。不知道以后它会不会再针对Unity2D来做一个更新呢? 最后补充说一句,Spine的试用版是免费的,普通版是大概300多元吧,专业版是差不多1600元。&&
阅读(20874)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'推荐一个2D骨骼动画编辑工具,可以用在Unity3D和As3',
blogAbstract:'\t如果你喜欢做2D横版游戏,使用2D骨骼动画是一个不错的选择,因为2D骨骼动画可以用最小的资源量做出复杂的动画。最近在使用Dragonbones骨骼动画的时候,接触到了这么一个2D骨骼动画编辑器,感觉还不错,于是打算推荐给大家:spine骨骼动画&在它的官网里面,可以看到它支持这么多的引擎和平台:',
blogTag:'spine,2d,骨骼动画',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:1,
permalink:'blog/static/',
commentCount:8,
mainCommentCount:2,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'我是阿赵,请多多指教!',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}【Unity3D基础教程】给初学者看的Unity教程(三):通过制作Flappy Bird了解Native 2D中的Sprite,Animation - Sun‘刺眼的博客 - 博客园
随笔 - 732, 文章 - 0, 评论 - 25, 引用 - 0
作者:,出处: 欢迎转载,也请保留这段声明。如果你喜欢这篇文章,请点。谢谢!
上一次我们讲了,了解了游戏中的每一个GameObjec都是由脚本控制的,这一次我们开始将Unity中Native 2D中的Sprite,并且使用Animation来让Sprite动起来。
在接下来的几篇博客里,我会通过做一个Flappy Bird来讲解Unity中各个组件的使用,项目的源代码在这里:。欢迎各位前去Fork和Star。
如何创建Sprite
创建一个Sprite可以遵循如下步骤
将一张图片拖动到Project视图中的某个文件夹的方式来添加Sprite资源。
修改Sprite资源的各项属性,如果是SpriteSheet的话还要对它在Sprite Editor中进行分割。
将Sprite资源拖动到Scene视图中,或者按住ctrl键同时选中SpriteSheet中的几张图片拖动到Scene视图中,这种方式会同时创建出一个动画。
创建Sprite的过程中请注意:
Sprite是作为Sprite Renderer组件的一个属性来添加到一个GameObject中的。
在Sprite Renderer中的Sorting Layer属性允许你设置Sprite被渲染的优先级。
SpriteRenderer使用在Sprite属性中的Texture, 但是使用Material中的Shader(着色器) ,默认选择的Sprites/Default 这种Shader是忽略光照的,而Sprites/Diffuse 这种Shader则是不会忽略光照的。如果你将Material设置为None时,你会发现无法显示Sprite,因为你没有对这个Sprite进行着色。
Sprite的详细设置
SpriteSheet:顾名思义,就是指把多个Sprite放到一张图片里。一般是把一段帧动画放在一张图片里面,游戏引擎会将这个SpriteSheet进行分割,轮流播放SpriteSheet中的每一帧,形成一个动画序列。如下图:
对应上图中的1, 2, 3三点,我分别说一下注意事项
当Sprite Mode为Single时,可以在Inspector中设置Sprite的pivot point,如果你以前使用过Cocos2d-x的话,就会知道其实这个pivot point就相当于Cocos2d-x中的anchor point。在Scene中,我们会以这个pivot point为中心,来对Sprite进行旋转,平移等Transform的设置。如果你使用的是SpriteSheet的话 ,可以在Sprite Editor中对每一个Sprite进行pivot的设置。
由于在Unity中的距离单位是Unit,为了保证3D与2D的一致性,所以在2D游戏中,我们也使用Unit作为计量单位。Pixel to Units几位这一转换比例。比如一张宽度为100的Sprite图片,在Scene中显示的长度为1Unit。
在Sprite Editor中可以进行Automatic和Grid两种形式的切割,一般来说,Automatic就已经可以比较好的解决问题了,一旦遇到我们需要几张Sprite图片大小一致时,可以使用Grid(网格)切分,来限制每个Sprite的大小。
如何为Sprite添加一个Animation
有两种方式可以创建动画,一种是我们上边说过的,将SpriteSheet中的几个Sprite同时拖动到Scene视图中。
另一种则是在Scene视图中,选中想要添加动画的GameObject,然后在Animation视图中,点击Add Curve来对GameObject的各种属性进行动画播放。
在Unity中,Animation是一个比较宽广的概念,并不局限于帧动画。它包括了GameObject的各种属性的动态变化。如果你点击了Add Curve之后,你会看到这样的界面:
在上面的图片里你可以发现从Position到Color,从Rotation到Sprite都是可以进行Animation的,因为在Unity中的Animation实际上是在添加一个变化曲线。而不是我们普遍理解的Animation。
另一个要解释的就是Animator和Animation的区别,要注意,如果想躺一个Animation动起来,那么一定需要两个Assest资源,分别是Animation Clip和Animator Controller两种资源。在Project中是以下的表现形式:
animator是一个动画状态机,它控制了各个Animation之间的切换。在后面的博客中我们会讲到它的使用。=w=
Animation的详细设置
我在上面的图中,把Animation视图中的一些重要的案件在图中标注出来了。
关键帧是Animation的转折点,你会在这一帧处设置一些Sprite的变化点,或者是Position这种数据的转折点。
动画事件可以在动画的某一帧设置,在这一帧可以设置的所谓动画事件即是这一GameObject上所有脚本组件的非重载函数(即排除掉OnUpdate,Start之类的函数)。设置完动画事件之后。你会发现每次动画循环一遍,这个函数都会在该帧被调用。
增加一条变化曲线,上文中说道,可以对任意属性进行变换。
Sample指的是取样,即在1s内设置多少帧,在图中我们可以看到1s的间隔中有12个虚线,代表的就是在这一秒中,我们设置了12帧来调节动画。注意这里的sample和我们为游戏设置的刷新帧率是没有关系的。
总的来说,在Unity的Animation中编辑动画 是非常方便的,和以前使用Cocos2d-x编辑动画时,有种鸟枪换炮的感觉。但是对Sprite本身的支持 还是令人有些不爽,因为做2D时,还是不习惯Unity中德坐标体系,因为制作2D游戏的我们经常害死会把像素Pixel当成是最重要的度量单位,Unity换成了Unit为单位之后,感觉有些不知所措,不过这就是3D引擎思考方式的一种变化吧。本帖子已过去太久远了,不再提供回复功能。程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
Unity2D研究院之精灵Sprite与屏幕之间的关系(二)
Unity2D研究院之精灵Sprite与屏幕之间的关系(二)
围观46209次
编辑日期: 字体:
继续学习一下unity2d,上一篇说了怎么自动生成Unity的Sprite动画。有朋友在下面给我留言说,怎么设置锚点?其实很简单。如下图所示,选择精灵然后在右边设置 pivot 就可以了。这里我设置的是左下角对齐。
锚点这东西挺怀念的,N年前我在做J2ME手游的时候。屏幕整体的坐标是左上角是00点。X轴向右递增,Y轴向下递增。所有的image也是这个原理。只是unity的触摸屏坐标不是左上角,而是左下角。 所以这里我把精灵的锚点也设置成了左下角,注意上图中的pixels to units 请设置成100。
触摸屏坐标:就是用Input.mousePosition 获取用户触摸屏幕手指 或者 鼠标的位置。
实际坐标:unity的实际坐标是笛卡尔坐标系,00点是在正中心,X轴向右是正,向左是负。Y轴向上是正,向下是负。
这样问题也就来了,我怎么把触摸屏的坐标换算到实际坐标系上?解决这个问题之前我们要先解决一个更重要的问题–摄像机的参数。
我开发时的分辨率设置成宽960高640.如下图所示,在Game视图下面,我选择了960X640的分辨率,下面提示的 using reslution 717×478 是因为此时Game视图的比960X640小,所以这里等比例缩小了一点所以是 717X478。
这时选择你的摄像机。如下图所示,把Projection改成Orthographic 也就是正交摄像机。 然后要说的就是size = 3.2。这个3.2是怎么来的呢?想想我们的分辨率的高是多少?高是640.
640/2/100 = 3.2. 除以2就是屏幕高的一半,除以100就是上面我们设置的 pixels to units =100 . 再举个例子如果你开发时的分辨率是 那么此时你的高就是720了。 720/2/100 = 3.6 那么此时摄像机的size 就应该写成3.6了。。 再唠叨一句,手游的分辨率自适应基本都是这样修改摄像机的size来实现的了。
摄像机的参数搞清楚了,我们在来看看之前提出的问题?我怎么把触摸屏的坐标换算到实际坐标系上? 把如下代码挂在一个Sprite对象上。
1234567891011121314151617181920212223242526272829303132
using UnityEngine;using System.Collections;&public class FishCommon : MonoBehaviour {& private float camHalfHeight; private float camHalfWidth; & void Awake() {
this.camHalfHeight = Camera.main.orthographicSize;
this.camHalfWidth = Camera.main.aspect * camHalfHeight;
}& void Update () {
//手指 或者 鼠标的坐标传进去
Move(Input.mousePosition); }& public void Move(Vector2 postions){
Move(new Vector3(postions.x,postions.y,0)); } public void Move(Vector3 postions){
//在这里进行坐标的换算
transform.position = ScreenToWorld(postions); }& private Vector3 ScreenToWorld(Vector3 postion){&
Camera.main.ScreenToWorldPoint(postion); }}
如下图所示,小鱼会跟着我的鼠标同时移动。
今天就到这里,感谢大家阅读,嘿嘿。如果有意见或者建议的换欢迎在下面留言,大家一起探讨unity2d开发。 希望unity4.6早日正式版发布呀,呼呼~~~
本文固定链接:
转载请注明:
雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!Unity3D在使用上有哪些优点?_西西软件资讯
西西软件园多重安全检测下载网站、值得信赖的软件下载站!
→ Unity3D在使用上有哪些优点?
v3.0 英文特别版
类型:编程工具大小:403.4M语言:英文 评分:6.7
Unity3d个人觉得网页游戏,,对于各个平台支持都很好。并且支持flash,网页运行再也不用安装。这块做的不错。开发人员起点比较低。基本的资料文档都很丰富了。缺点就是画面不给力。灯光、画面各方面在这三个引擎里都是最差的,并且对于美术人员来说,做开发不是很好上手。很简单的一个材质。都要去写shader。。UNITY3D现在已经成为了众多团队的首选3D引擎。 并且,随着Unity3D 4.3的发布,原生的2D支持也让人大开眼界。虽然Unity3d的原生2D功能还有很长的路要走,但也阻挡不了它称霸当下。2011年中,公司的引擎项目停止之后,我的目光便转到了U3D的身上,经过几番挣扎后,终于对基于组件式的对象模型有了新的认识。 而如今,这种模式,成为了我最推崇的模式。 因为它能解决我在设计引擎对象时的纠结。 而这些纠结,是我在先前的引擎开发中,一直不能优雅地解决的。首先,我们来说说U3D的好处。可能总结得不够完善,如果有不足的地方,就表示我自己没有体验到。一、可定制的IDE环境U3D这种ALL IN ONE的设计思路,我在一个叫神咒的代码中见到过。 集所有编辑器于一身。 虽然神咒的编辑器不能自由扩展,但由于是公司内部的引擎,所以,它的使用,也很方便。 比如,在场景中突然想要对一个模型的材质进行编辑,则选中此模型,右键,弹出材质编辑器即可。 &U3D的组件式思路,将这种关系变得更加紧密。 你都感觉不到自己在使用一个材质编辑器。 你会觉得,你是在操作这个模型本身。 它的材质,它的碰撞器,它的对象结构等等。回想一开始进入游戏行业的时候,天天啃着代码。 当时觉得代码就是一切,各种认为很牛X的代码,都忍不住读上一番。 而随着时间的推移,特别是经过项目的洗礼后。 突然发现编辑器是多么的重要。 就我做的第一个页游来说,起手前两个星期,我们就做了动画编辑器,场景编辑器。而最终证明,因为这两个简陋的编辑器,使我们后面的工作变得更加容易。因此,一个好的引擎,必定得先有一个功能完备的编辑器。二、基于Mono的开发脚本C/C++无疑是图形界的宠儿,也没有人想过用另一种语言来替代它。即使是U3D,亦是如此。 但是,早期使用C/C++编写的引擎,都理所当然地使用C/C++来作为上层逻辑的开发。 又有一些,采用了纯脚本的模式。比如Python,LUA。 脚本的好处在于更低的编码成本(经过仔细研究,我发现,这是由于写脚本语言的心态和写C++的心态导致的。 写C++的时候,总是想着代码的复用度,而在脚本的时候,很多时间会认为,这个脚本,就是为这个对象服务的,那我就按照策划需求来写就可以了。 我想,这也是许多时候,脚本语言存在的意义。特别是早期引擎中,使用脚本来处理一些关键的事件响应)。 &而大家熟知的虚幻引擎以及有一个名不见经转的Torque,则自己整了一套开发语言。 我想,它们的目的,就是为了使大家能够以一种更安全的方式来编程, C++一不小心,则会带来内存和效率问题。 它的使用成本,人员成本其实是高于其它语言的。 &Mono C# JS,BOO的出现,再一次让大家的眼睛一亮,原来,引擎可以这样整。Mono的桥接,使得高效的C++图形引擎与带GC的内存安全语言进行结合。不仅减少了安全隐患,也使得大家编写跨平台代码时更佳容易。 同时,这类语言的反射机制,更适合做编辑器。而比起先前的一些DIY语言和像LUA这样的小巧型语言,Mono使脚本编程可以进行DEBUG,而不单纯的靠PRINT输出。这里就顺带说一下三个语言的区别C# 这是我见过的大型项目中使用得最多的语言,也是我比较喜欢的语言。 因为它和C++很像,同时严格的类型和语法检查。JS 在帮一些朋友做小东西的时候,使用过这个语言,由于mono自带的提示功能,写起来还是挺顺手。 但总给我一种摸不着头脑的感觉。 并且U3D给的JS,不是严格的JS,有些语法不支持,而有些语法又很特别。BOO 完全没有使用过,貌似也很少有人使用。三、基于组件的对象系统这是一个我最喜欢的系统,我也使用irrlicht引擎山寨过,山寨的过程中,几乎看完了它的组件参考手册,使我对U3D引擎的组件系统又有了新的认识。 同时,目前公司自主研发的引擎,也是这样的思想。 不管我是在工作中,还是业余捣鼓都受组件系统的影响。 慢慢的,喜欢上了这种对象模式。之前在做一个RTS游戏项目的时候,参考了著名开源项目 0.A.D的代码。 当时只是为了去寻找LOS和多单位协同寻路的方案。 但在参考其代码的时候,发现了它整个系统,都是基于组件式的。又一次,对组件式有了好感。 而经过仔细思索后。 回到了我一直坚持的子系统划分法的游戏框架。 当我不禁感叹,原来,自己也一直是在组件式。 只不过,我的组件式,是MANAGER方式,MANANGER内部进行对应的实体管理、。 比如,背包系统,则只负责玩家背包数据,背包使用,背包相关的功能。 不管是数据存储,还是与前端通信,都是背包系统自己在负责,其它模块完全不需要干涉。 &而U3D中的组件系统,则将这个粒度划得更仔细了……。 &这对于早期的像OGRE的entity系统。仅仅是认为对象可以由子对象构成,可以说是一个质的变化。早期的引擎,基本上都是继承优先的设计方案,更多时候考虑的是编码的便利性,且引擎的走向都具有针对性。 而当面对一些复杂情况的时候,继承式的编码是十分麻烦的。 并且,对于JAVA,C#这样的语言,并没有提供多继承能力。 因此,继承式的编程,在面对越来越广泛的游戏需求的时候。显得无能为力。 组件式则是一种聚合优先的编码方式,它的复用度和伸缩度,都远远大于继承。 唯一让一些C++程序员觉得不太顺眼的,可能就是过多的变量和虚函数调用开销吧。 但这些,在当下来说,都不是问题。 影响大众步伐的,早已不是那种语言特性本身导致的开销。更多的,是如何使我们高效率,高质量地完成一个游戏。 因此组件模式已经成为必然。 从新版的UE4的变革,以及畅游的G3D,国外一个开源的godot引擎,就可以看出来,大家对组件模式,已经有了深深的好感和接受度。四、所见即所得这可以说是许多人最喜欢的特性,这也是G3D群里,问的人最多的特性,三天两头就有人问,G3D能不能像U3D一样在编辑器里预览游戏效果呀。U3D除了编辑后立即运行,还能在运行过程中时实编辑,查看效果。当然,运行过程中编辑对象的数据,会在停止后失效。(注意,对文件属性的修改,不会失效)五、代码驱动的开发模式&这种模式,可以使我们快速地构建一个原型。 对于U3D中的MonoBehaviour来说,它扮演的,就是如何驱动它的目标对象。 因此,你可以将你的对象的各种能力分配到不同的脚本组件中,然后根据对象的需求来挂接。六、多平台发布U3D支持的平台,无疑是当下较为流行的平台。 满足绝大部分项目需求。 早期的引擎,多以PC和CONSOLE为主。 支持WINDOWS,XBOX,PS2已经是很不错了。 U3D便利的多平台发布特性,也使得它成为了当前性价比最高的引擎的原因之一。也有许多公司正在自主研发引擎,或者是将先前的PC引擎修改为多平台(IOS+ANDROID居多)。 但这也档不了U3D的步伐。七、良好的生态圈在使用公司引擎的时候,我就发现,若我遇上一个问题,只能问公司的老员工们,或者找其它引擎TEAM寻求帮助。而U3D这种生态圈,不是一天两天能形成的。GOOGLE,百度,各种论坛,都能很容易找到自己想要解决的问题。 而对于一些经验上的问题,也有不少人总结。 这使得后来者,可以快速上手引擎。而AssetStore的出现,不仅使U3D的生态圈更加稳固,同时也提供了许多机会。 你可以制作插件放网上卖,赚取一些利益,也可以购买别人的插件,作为使用或者参考也好。 有时候,购买一些插件,可以让你快速脱离当前的困境。 一个是解决进度问题,一个是解决思路问题。 这是之前其它引擎不具备的。
(17) 游戏制作游戏开发一般来说是一个大工程,对于很多国外的单机网游都是投资上亿美元的,那么对于个人来说制作游戏困难吗当然没那么容易,不过只要掌握了这些游戏制作软件,也会变的很简单了。游戏制作软件,顾名思义,就是可以制作游戏,自己喜欢玩的小游戏等,可以添加进游戏主题元素的软件工具,游戏制作是指一个电子游戏的制作过程。由于游戏的类型大小和要求,游戏制作需要的人员和时间也不一样。对于大型的游戏,一般需要几十个...
01-24 / 37.4M
推荐理由:橙光文字游戏制作工具是66RPG出的一款文字游戏制作软件,也是《彩虹文字游戏制作精灵》的第二个版本。这个软
02-15 / 335KB
推荐理由:2DFM是一款图形界面操作方式的2d格斗游戏制作软件,以其上手容易,操作简单,无需懂得代码即可制作出专业级
01-06 / 21.1M
推荐理由:RPG Maker XP 是由日本 Enterbrain 公司开发的一款 RPG 游戏制作软件。它可以使一个不懂编程的人也能做出精
03-04 / 15.9M
推荐理由:Game4You是一个免费的应用程序,允许你用你自己的照片创建第一人称游戏,并添加音频文件和文本。您可以自定
03-31 / 42.2M
推荐理由:3D电玩制作软件,可制作互动式3D游戏环境,然后编辑成单独的可执行程序可以分发销售。功能:3DRad是一个易
01-04 / 1.5M
推荐理由:忆游横版游戏制作软件(以下简称忆游play)是一款国人个人独立开发允许使用者按自己意愿创建游戏而不需要任
11-1611-1311-1311-1302-0202-0101-2901-2701-2201-13
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载}

我要回帖

更多关于 unity3d 2d动画 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信