unity总结五

射线:通过该函数可以检测两个是否发生碰撞或者射击类游戏



也即经过avatar之后可以不同角色公用同一个avatar


root motion:是人物动画行走时可以在空间中发生位移

在animator中勾选apply root motion,会自动设置好了动画行走发生位移,不勾选播放动画不发生位移


如果不勾选,我们这样通过脚本方式实现动画位移。在动画的属性中有个curves添加行走速度

在动画机中添加相同参数


在脚本中调用OnAnimatorMove函数,设置移动的位移变化



通过一个一维混合树可以实现向前跑,向左跑(向前跑和左转融合),向右跑(向前跑和右转融合),如果想把向前跑改成从走路到跑步的渐变过程,需要把run动画删去,再添加一个混合树,也即在blend tree里面嵌套一个blend tree,


如果想把向前跑改成从走路到跑步的渐变过程,需要把run动画删去,再添加一个混合树,也即在blend tree里面嵌套一个blend tree,



0.8 ,1.3是跑步的速度,分为走路,慢跑,快跑3个状态,慢跑和快跑都用run动画,只不过设置不同跑步速度就行

在脚本里面用一个时间阻尼系数乘以倒数第二张图blend tree 里的RunFloat即可

在多层状态机中有个weight权重选项,他是指多个状态机效果可以叠加,1表示只有这层作用,其他层没用



当实现前走,左前走,右前走,后走,左后走,又后走可以通过二维混合树实现。把walk速度设成-1就变成了向后走


而在脚本控制的代码比较简单:


2D simple Directional在二维混合树中里面不要再嵌套混合树

2Dfreeform Directional可以在混合树嵌套混合树,比如在混合树向前的分支中再添加一个混合树实现向前走和向前跑

2D freeform cartesian中可以描述非方向的概念,因为2Dfreeform Directional中的x,y参数一般用于方向的应用,2D freeform cartesian中x,y用于其他含义


反向运动学(IK)反映的是一种由手部带到肩部的运动形式,在这‍个运动中,运动以手部这个自由端为起始,当手部进行运动时会自然的带动固定端肩部的运动。

应用:人物抓枪的动作,拿东西的动作等


通过body mask来开启关闭手和脚的功能,也可以在代码开启关闭,基本用法如下


最后拖动要抓取的物体到脚本的属性参数中,勾选animator的IK pass

   


位置匹配:比如人攀爬到指定点的动作,调用animator.MatchTarget函数来实现详情参考085讲


一般性动画的处理步骤(非人类骨骼处理过的动画):此时属性选择generic

角色拖动到hierarchy中,关闭apply root motion,与其他物理动画组件关联时选择animate physics,创建动画controller拖动到animator中。在controller中设置好节点或融合动画,通过刚体方式实现角色位移,添加rigidbody组件,创建脚本如图所示:就得到了所要的效果



曲线属性的应用:通过设置曲线属性可以动态设置人物胶囊物体的高度


如果不设置曲线属性,人物向前跳,人物胶囊的高度不会改变,在animator属性下面有个carves曲线,添加曲线


可以把该曲线应用到胶囊物体的高度属性上,在animator动画机里面创建参数名称和curves参数名称一致

核心代码如下:


在onupdate函数中这样写:


随机群体动画:创造出许多物体在同一时间利用随机数发生不同的动作的效果,具体看视频089


character controller是实现人物移动的核心组件

colider组件(碰撞组件)和rigidbody组件(刚体组件)的区别:colider直接的碰撞可以没有rigidbody但是rigidbody之间的碰撞必须有colider组件


碰撞的消息传递:三个函数:



关节:有时需要把两个物体链接起来

Hinge Joint :铰链关节

Fixed Joint:固定关节

Spring Joint:弹簧关节

character Joint:角色关节

configurable Joint:可配置关节


布料系统:

interacvtive cloth:交互式布料

Skinned Cloth:蒙皮布料



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值