29793人加入学习
(96人评价)
Unity中的动画系统和Timeline(Unity2017)

制作于2017-11-04

价格 免费

MatchTarget 

身体某一部位和目标位置进行重合。

需要计算障碍物的高度,

hit.collider.bounds.size.y 获取物体的高度。

只是在locomotion 状态下才进行检测。

检测当前动画的状态。

anim.GetCurrentAnimatorStateInfo(0).IsName("locomotion");

matchTarget方法。

MatchTarget(目标位置,旋转度,骨骼模型点,mask(位置匹配程度,旋转程度。)) 1代表百分之百,匹配时间。

调试。

[展开全文]
Killernot · 2021-04-21 · 该任务已被删除 0

让手扶住墙之前让时间结束。

状态转换之间切换是没有作用的。就是那一小段时间间隔。

有辅助球,绿色的,当身体部位达到指定位置之后hui

 

[展开全文]
Killernot · 2021-04-21 · 该任务已被删除 0

通过matchTarget修改翻墙动画。

将身体某一部位与障碍物进行调试。

将手和墙进行匹配。

[展开全文]
Killernot · 2021-04-21 · 该任务已被删除 0

角色翻墙。

从大概膝盖的位置向前发射一条两米的射线进行检测,然后进行跳跃动作的设置。

anim.getfloat(对应id)获得相应数值。检测碰撞物体。

[展开全文]
Killernot · 2021-04-21 · 该任务已被删除 0

检测障碍物的方案。

射线检测。

[展开全文]
Killernot · 2021-04-21 · 该任务已被删除 0

控制摄像机的跟随。

标签查找角色。

插值运算。一边运动,一边平滑的过去。

lookAt 去看人物。

LateUpdate 放入 摄像机跟随用lateUpdate.

将offset 世界坐标转换成局部坐标。这样的话会根据自身身后的坐标偏移来进行计算。

通过标签查找player.

TransformDirction (offset)和人物背后建立了联系。

Lerp运算,考虑到平滑度的问题i,

transform.LookAt();去盯着一个东西。

[展开全文]
Killernot · 2021-04-16 · 该任务已被删除 0

2D混合方式区别。

2DSimple Directional 用来融合动画,动画都有一个不同的运动方向。不应该有同一个方向的动画。

 

2D Freedom Directional 用来有不同的方向。可以有多个动画在同一个方向上。

应该有一个idle动画在0,0的位置上。

2DFreedom Cartesian 所有动画都是在同一个方向上的。只是头会发生转向。一个旋转速度,一个线性速度。

[展开全文]
Killernot · 2020-05-12 · 该任务已被删除 0

通过混合树控制移动。

计算位置。 compute Position 选择x轴,然后选择旋转角度,deg。

通过朝向来融合数值。

[展开全文]
Killernot · 2021-04-16 · 该任务已被删除 0

blend Tree

一个轴上的变动用1D

两个轴的话用2D free.中间的

红点代表当前状态,然后三个蓝点分别代表不同的状态。

新创建两个Speed,用于和1d区分。

这个红点现在只能斜着拖动。

参数记得设置。不然只能进行拖动。

再添加动画,RunLeft, RunRight

[展开全文]
Killernot · 2021-04-16 · 该任务已被删除 0

混合树。。

Animator中, 右键,创建,blend Tree

双击进入混合树界面。双击空白地方回去。

只通过影响一个因素来组成动画, blend Type就是1D. 

AddMotionField   添加动画

Automate Threholds 取消勾选,自己调整参数。

勾选后系统默认。

Adjust Time Scale 调整播放速度。

ResetTIme Scale 重置。

Threshold 混合参数。

混合树要想实现拖动红线进行预览,需要先将preview打开。然后才能正常查看。

前面为动画改变速度。后面为播放倍数。

系统会使动画变化更加平滑。

select 按照z 轴之后,参数范围变成0-5.这是动画在z轴上的移动素的。

系统给的范围是0到4.1 , 代码中修改值的时候就乘以速度的最大值。

[展开全文]
Killernot · 2021-04-14 · 该任务已被删除 0

控制角色转向。

因为rotation 和 xz 轴都要发生改变,所以不能。

左右方向键控制的数值。左方向键是-1到0.右方向键是0到1.

从左右转回来到跑的时候只用改变一个条件就行了。

[展开全文]
Killernot · 2020-05-12 · 该任务已被删除 0

bool 

一条线上添加两个条件。

用Animator . StringToHash 来进行变化。防止重复写string。

int 类型的id 用来替换之前stirng。后面跟数值。或int,或bool

修改的时候查看是否loop match。变绿

去截取动画片段。切换时间。

[展开全文]
Killernot · 2021-04-13 · 该任务已被删除 0

状态机里有一个方法,可以将字符串转成hash值。hase 值就是一个id。

设置参数。将字符串转换成一个 hash 值是int值。?

[展开全文]
Killernot · 2021-04-13 · 该任务已被删除 0

对动画进行剪切。然后根据行动,然后bake不相关的。

切换时间缩短,进入下一动作也就会快。

[展开全文]
Killernot · 2020-05-12 · 该任务已被删除 0

多个人物,多个动画。

只要该人物的动画即可。

调整动画的时候,重复播放

loop time loop pose 平滑,

其他位置不用动,就都bake一下。这是humanoidd 

[展开全文]
Killernot · 2020-05-12 · 该任务已被删除 0

骨骼映射。configuer里找一下。

同一个模型,不同的动画,可以使用同一个avatar。

Errors Found while///一个错误。

不是同一个模型,不能复制别人的avatar。

mirror。镜像,可以构造一下相反的

[展开全文]
Killernot · 2020-05-12 · 该任务已被删除 0

给模型重新添加材质和贴图。

[展开全文]
Killernot · 2021-04-12 · 该任务已被删除 0

动画重定向。

不一样的模型,avatar不能复制。

意思就是不能使用别人的avatar。

create from this model 然后检查一下映射。

主要是导入方式改为humanoid 。然后不同的模型创建不同的avatar。使用状态机,脚本ji

 

[展开全文]
Killernot · 2021-04-12 · 该任务已被删除 0

动画因为之前gereric 时保留了,

loop match 查看动画是否吻合。

 导入Animation中,Humamoid.

Root Transform Rotation

将bake Into pose 勾选上,将旋转烘培到模型动作上。不会在对rotation造成影响。

Idle状态下,都可以勾选上bake into pose.

bake那相当于把那锁上了。不能移动了。

based upon 基于那个点来进行计算。朝向不太一样。

Original 设计师设计的。以哪里为中心进行运动。 feet 是unity自带的。一般不需要修改。

Root Transform Rotation 当动画的移动方向与人物朝向不匹配时,可以使用offset来进行偏移调整。

[展开全文]
Killernot · 2021-04-12 · 该任务已被删除 0

Humanoid 导入方式。

Avatar Definition. 不是相同模型就选择create from this Model.

config 去查看骨骼映射是否正确。

可以更改映射。绿色表示映射好的。

点击白色的骨骼,然后拖到推应右边的点上。

FBX_Avatar 左下角mapping 可以clear,也可以automap自动生成映射。

pos 一般让它保持Tpos.

骨骼映射好之后,apply  done 回到原先界面。

Muscle Setting 查看动作是否正确。

可以查看肌肉运动,范围。

[展开全文]
Killernot · 2021-04-12 · 该任务已被删除 0