Animator Machine Controller Behavior Layer BlendTree IK MatchTarget Record
来源:互联网 发布:最可靠的网络兼职 编辑:程序博客网 时间:2024/06/01 07:11
一、关于Behavior的使用,如下图所示: ----对应场景BeHaviour
将该脚本挂载在Layers中,那么在执行动画的时候就可以监测到操作了。
由上图可以知,在当前的GameObject中想要访问Animator上面的Behavior脚本,需要通过 Animator组件来获取。
二、Layers分层 ---对应场景Layer
AnimatorColler中创建两个层 Base Layer(基本层), Arm Layer(附加层,用于显示其它的动画) ---(动画切换参数只是一个Speed-float控制走动, Head-trigger控制头部动作)
Arm Layer的设置(在原有的Base Layer上面显示其它动画,但不影响Base Layer动画,如跑动转头)
Weight动画权重-1=100%影响当前动画效果, Mask模型遮罩体, Blending-Addie叠加(由计算机计算后的结果,不稳定), Overide 覆盖(一般用这个,修改动画权重)
(动画圈重调整影响)Sync勾选后可以复制出选中的Layer层, Timing迎合Layer层播放
Avatar Mask遮罩模型,不需要显示的部位点掉就好了
三、BlendTree混合树 --对应场景BlendTree
分为1D, 2D,Direct(这个模式主要是用于脸部等复杂动画,而且模型的脸部结构必须安装官方规定的模式命名和建模)
混合树中的动画最好是保持初始动画相似,播放长度相似设置最佳,放置切换动画不连贯,如下图所示,详细请参照源文件中BlendTree场景中的例子
四、IK反向动力 --对应场景IK
如图所示:角色使用ik看着上面的模型,左手跟随这手边的模型
需要在Animator中设置
代码如下 :
五、Curve模型曲线 --对应场景Curve
如下图所示:
模型动画添加Curves为JumpCurves,并将该名称作为动画参数,类型为Float,这个值在执行当前动画的时候监测到想对应的Curves参数,那么是无法修改该参数的值的,因为该参数只会根据设定的曲线变化而变化
六、MatchTarget --对应场景MatchTarget
匹配位置,必须是动画的BaseLayer(这里弄个大概,没设置得很标准)
七、Record --对应场景Record
代码:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class TestRecord : MonoBehaviour {
public Slider slider;
public Button RectBtn;
public Button PlayBtn;
public Text text;
bool isRecting = false;
bool isPlaying = false;
public GameObject playerGameObject;
Animator animator;
// Use this for initialization
void Start ()
{
text.text = slider.value.ToString();
RectBtn.onClick.AddListener (delegate {
Rect();
});
RectBtn.image.color = Color.white;
PlayBtn.onClick.AddListener (delegate {
Play();
});
PlayBtn.image.color = Color.gray;
animator = playerGameObject.GetComponent<Animator> ();
}
// Update is called once per frame
void Update () {
if (isPlaying) {
float time = animator.playbackTime;
time += Time.deltaTime * animator.GetFloat("AnimatorSpeed");
if (time > animator.recorderStopTime) {
time = animator.recorderStartTime;
}
animator.playbackTime = time;
}
}
void OnGUI()
{
GUILayout.TextArea ("点击Rect录制动画,关闭录制后,点击Play播放,关闭播放后重新录制, 滑动条调整速度 (WASD控制动画)", 30);
}
public void OnSpeedChange()
{
text.text = slider.value.ToString();
animator.speed = slider.value;
animator.SetFloat ("AnimatorSpeed", animator.speed);
}
void Rect()
{
if (isPlaying)
return;
if (isRecting)
RectEnd();
else
RectStart ();
}
void Play()
{
if (isRecting)
return;
if (isPlaying)
PlayEnd ();
else
PlayStart ();
}
void RectStart()
{
isRecting = true;
RectBtn.image.color = Color.red;
PlayBtn.image.color = Color.gray;
animator.StartRecording (0);
}
void RectEnd()
{
isRecting = false;
RectBtn.image.color = Color.white;
PlayBtn.image.color = Color.white;
animator.StopRecording ();
}
void PlayStart()
{
isPlaying = true;
PlayBtn.image.color = Color.red;
RectBtn.image.color = Color.gray;
if (animator.recorderStopTime > 0) {
animator.StartPlayback ();
animator.playbackTime = animator.recorderStartTime;
}
}
void PlayEnd()
{
isPlaying = false;
PlayBtn.image.color = Color.white;
RectBtn.image.color = Color.white;
animator.StopPlayback ();
}
}
详细参照链接文件
最后附上源文件链接: http://download.csdn.net/download/u013224660/9475442
- Animator Machine Controller Behavior Layer BlendTree IK MatchTarget Record
- 对AnimStateMachine,BlendTree和Layer 和 IK 的一些理解。
- Unity5.x Animator之BlendTree
- 关于 Unity Animator MatchTarget 实现猜测
- Unity/Animator -- 创建Animator Controller
- Unity/Animator -- 创建Animator Controller
- animation animator controller
- Unity5.x 动画Animator使用IK动画
- Unity3D之Mecanim动画系统:Animator Controller
- unity动态加载Animator的Controller
- Unity Animator Controller相关脚本集
- unity Animator Override Controller的使用
- Machine Learning & Computer Vision —— Record
- 编译kernel错误:no machine record defined
- arm-linux-ld: no machine record defined
- animator
- Animator
- Animator
- OpenCV--LatentSVM用法
- 进程生命周期与状态转换
- android沉浸式状态栏、变色状态栏、透明状态栏、修改状态栏颜色及透明
- 导航多级下拉菜单
- memcache永久有效数据丢失
- Animator Machine Controller Behavior Layer BlendTree IK MatchTarget Record
- ora-00942: 表或视图不存在 解决方法
- android性能优化视频
- GoAhead 2.1.8嵌入式webserver源码分析学习(一)---开篇
- Python库selenium的安装与使用
- lintcode:Reverse Nodes in k-Group
- java LinkedList 的实现
- womoso项目总结
- 【回顾】Struts封装MVC辛酸史