【Unity入门教程】 第十二章 影视创作【中国大学MOOC游戏引擎原理及应用】

12.1 时间轴

在这里插入图片描述
timeline由多个轨道组成

轨道之间的动画是协同配合的关系

下面是animation 是对某个轨道的动画片段的编辑

在unity中实现:
创建一个空物体命名为,并为其添加上window-sequence-timeline
在这里插入图片描述
在场景中添加两个thirdperson controller

在这里插入图片描述
然后可以为其添加上走路的动画在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12.2 简单动画

除此之外,还可以点击录制按钮

在这里插入图片描述
(相机使用的是activation track

12.3 人物动画

接下来来实现人物动画
在这里插入图片描述
有个问题是如果移动人物的话,我们希望会对动画造成影响,那么就不应该在hierachy进行修改(此时修改移动到别的地方,动画不会有影响),而是在这里修改:

但是此时会发生人物做完第一个动画移动位置后会瞬移会第二个动画开始的地方,就是位置不是连续的,此时我们可以选中动画然后加这个:
在这里插入图片描述

这样就不会出现“瞬移”现象

之后为了让人物的动作变化具有过渡性,可以添加这个:

12.4 脚本控制

在这里插入图片描述
control track可以控制游戏物体的时间相关的内容,可以在这上面控制另外一个playerdirector,也就是说可以在一个timeline上改变另外一个timeline,还可以改变有关粒子系统的一些时间控制。
比如说可以改变粒子系统的时间,实例化一个预制件,或者添加一个粒子系统预制件
在这里插入图片描述
接下来在unity中实现
在这里插入图片描述
在这里插入图片描述
然后创建一个timelint_controller脚本

在这里插入图片描述
注:
在这里插入图片描述
使用这一个头文件后便可以在脚本中使用事件变量,然后就会在这里出现这样的选项
在这里插入图片描述
然后在这里给它添加一个事件,就是轨道的播放这个事件
在这里插入图片描述
接下来取消timeline的play on awake
在这里插入图片描述
接下来建立另外一个脚本来进行更详细的控制:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.UI;

public class MyPlayerAssests : PlayableAsset
{
    // Start is called before the first frame update
    public ExposedReference<Text> myText;
    public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
    {
        //MyPlayableBehaviour是自己创建的类,调用create函数用参数graph创建
        var playable = ScriptPlayable<MyPlayableBehaviour>.Create(graph);
        playable.GetBehaviour().status = myText.Resolve(graph.GetResolver());
        throw new System.NotImplementedException();
    }
}

public class MyPlayableBehaviour : PlayableBehaviour
{
    public Text status;
    public override void OnBehaviourPlay(Playable playable, FrameData info)
    {
        base.OnBehaviourPlay(playable, info);
        if (status != null)
        {
            status.gameObject.SetActive(true);
            status.text = "Playing";
        }
    }
    public override void OnBehaviourPause(Playable playable, FrameData info)
    {
        if (status != null)
        {
            status.text = "End playing";
        }
        base.OnBehaviourPause(playable, info);

    }
}

回到unity为playable track添加上这个
在这里插入图片描述
然后便可以看到,当运行的时候,text会是playing状态
在这里插入图片描述
结束时便会变成end playing
在这里插入图片描述
playable的定义:
Playables are customizable runtime objects that can be comnected together and are contained in a PlayableGraph to create complex behaviours.
可播放项是可自定义的运行时对象,可以将它们组合在一起,并包含在PlayableGraph中以创建复杂的行为。
PlayableGraph的详细解释: PlayableGraph.

PlayableGraph
PlayableGraph 定义一组绑定到 GameObject 或组件的可播放输出项。PlayableGraph 还定义一组可播放项及其依赖关系。图 1 提供了一个示例。

PlayableGraph 负责管理可播放项及其输出的生命周期。使用 PlayableGraph 可创建、连接和销毁可播放项。

12.5. Cinemachine

在这里插入图片描述
在这里插入图片描述
接下来我们在unity中安装cinemachine包
并且添加一个下图所示的组件,然后让其跟随和look at其中一个物体
在这里插入图片描述
然后将main camera拖拽至timeline 并为其添加cinemachine shot

在这里插入图片描述

然后将相机拖拽至timeline的那个shot所需的virtual camera
在这里插入图片描述
然后我们拖拽时间轴便可以看到效果
在这里插入图片描述
在这里插入图片描述

接下来我们添加另外一种cinemachine

在这里插入图片描述
推拉摇移轨道式camera

在这里插入图片描述
然后接下来我们再为其添加一个cinemachine shot

在这里插入图片描述

此时可以看到这个摄像机也会跟随cube进行follow和lookat 但是限制的是移动的范围只有在轨道上

在这里插入图片描述
在这里插入图片描述
此时,播放完第一个cinemachine镜头就会进入第二个cinemachine镜头

此时如果加入在动画中加入过度
在这里插入图片描述
便可以使得镜头自然而然的在两个镜头间进行转换

在这里插入图片描述
在这里插入图片描述
转场效果展示:
在这里插入图片描述
(ohhhhhhhhhhhhhhhhhh感觉有了电影镜头转场和游戏过场动画那味了!!

总结:通过这章节的学习便可以学会简易过场动画的创作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值