最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【Unity】TimeLine系列教程——編排劇情!

2017-09-18 18:12 作者:皮皮關(guān)做游戲  | 我要投稿

前言

我們經(jīng)常會看到游戲中有很多“花里胡哨”的系統(tǒng),比如這樣:

火影忍著疾風(fēng)傳

碧之軌跡S技能

這種效果感覺上像播放視頻一樣,但是卻能將游戲不同的敵人加到鏡頭里面,有時候甚至根據(jù)雙方關(guān)系還會有不同的反饋。如果是做視頻或者全部由腳本來控制,實在是太難表現(xiàn)了。


我們玩游戲也經(jīng)常會遇到這樣的過程,到達(dá)某個劇情點(diǎn)的時候進(jìn)入一段過場動畫:

最終幻想

因此引出我們這篇內(nèi)容的主角——TimeLine

關(guān)于Timeline

Timeline是Unity2017推出的電影序列工具,有助于設(shè)計師們更加方便地編輯影片中的動作、聲音、事件、視頻等等。Timeline無需編寫代碼,所有操作僅需通過“拖拽”即可完成,從而讓設(shè)計師們可以更加專注于劇情與故事講述,加快制作流程。


本篇將會先從實現(xiàn)簡單的劇情對話入手,將會用到幾乎所有的TimeLine組件,讓大家對這個功能有個基礎(chǔ)的認(rèn)知,而在下一節(jié)將會用TimeLine實現(xiàn)特寫的對戰(zhàn)效果。



Timeline實現(xiàn)劇情效果

動畫控制

首先得有一個Timeline的組件

然后給Timeline點(diǎn)擊添加一個動畫控制

這里需要把場景里面的帶有Animator組件的物體拖到Track上,這里必要的說明一下,Timeline并不需要動畫控制器中的動畫狀態(tài),那怕空的資源也是可以的。如果是空的Animator組件,可以點(diǎn)擊紅色錄制按鈕,像操作動畫Animation動畫一樣的制作動畫。

我們可以右鍵添加動畫Clip,這里的資源是在工程中的。同時添加的動畫可以在Timeline中做混合處理

添加后直接播放的效果:

Timeline動畫功能搞定~


腳本自定義控制

我們還可以自定義腳本:

然后創(chuàng)建一個 PlayableBehaviour類型的腳本

腳本內(nèi)容如下,主要注意得通過Resolve(playable.GetGraph().GetResolver())方法去獲得Timeline傳入的值。


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

public class NewPlayableAsset : BasicPlayableBehaviour
{
    [Header("對話框")]
    public ExposedReference<Text> dialog;
    private Text _dialog;
    [Multiline(3)]
    public string dialogStr;

    public override void OnGraphStart(Playable playable)
    {
        _dialog = dialog.Resolve(playable.GetGraph().GetResolver());
    }

    public override void OnBehaviourPlay(Playable playable, FrameData info)
    {

        _dialog.gameObject.SetActive(true);
        _dialog.text = dialogStr;
    }

    public override void OnBehaviourPause(Playable playable, FrameData info)
    {
        if (_dialog)
        {
            _dialog.gameObject.SetActive(false);
        }
    }
}


然后和動畫一樣插入Track后可以看到下方的屬性是我們可以編輯的了。

做一個文本變換的效果:

腳本自定義功能也完成~

觸發(fā)機(jī)制

之后修改成條件觸發(fā)判定,不在是直接播放游戲就開始運(yùn)行

做了一個觸發(fā)的腳本功能


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Timeline;
using UnityEngine.Playables;
public class StoryControl : MonoBehaviour
{


    public bool isTrigger;

    public GameObject ui_tip;

    public PlayableDirector playableDirector;

    public void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.name == "Trigger")
        {
            ui_tip.gameObject.SetActive(true);
            isTrigger = true;
        }
    }


    public void OnTriggerExit(Collider other)
    {
        if (other.gameObject.name == "Trigger")
        {
            ui_tip.gameObject.SetActive(false);
            isTrigger = true;
        }
    }

    public void Update()
    {
        if (isTrigger)
        {
            if (Input.GetKeyDown(KeyCode.E))
            {
                playableDirector.Play();
            }
        }
    }

}


之后我們可以運(yùn)行看效果了:


鏡頭控制和物體激活控制

最后還有一個Cinemachine插件和Timeline的結(jié)合(Cinemachine的作者投靠了Unity),這個插件可以在AssetStore上免費(fèi)下載。

首先添加

創(chuàng)建攝像機(jī)后設(shè)置,具體Cinemachine的功能這里不多介紹了,一款非常不錯的專業(yè)攝像機(jī)控制插件。

順便將主角屏蔽掉,通過ActivationTrack的功能

最后是這樣的效果




總結(jié)

現(xiàn)在網(wǎng)上的教學(xué)資源較少,可以在edu.csdn.net/huiyiCours看看直播。

我這里下載Timeline_Market的Demo資源,鏈接在下面,有興趣的朋友可以下載來研究研究

pan.baidu.com/s/1c17OMT 密碼:s9s1



下期預(yù)告,對戰(zhàn)效果:







對游戲開發(fā)感興趣的同學(xué),歡迎圍觀我們:【皮皮關(guān)游戲開發(fā)教育】 ,會定期更新各種教程干貨,更有別具一格的線下小班教育。在你學(xué)習(xí)進(jìn)步的路上,有皮皮關(guān)陪你!~

我們的官網(wǎng)地址:levelpp.com/

我們的游戲開發(fā)技術(shù)交流群:610475807

我們的微信公眾號:皮皮關(guān)


【Unity】TimeLine系列教程——編排劇情!的評論 (共 條)

分享到微博請遵守國家法律
蒙城县| 盈江县| 抚顺市| 昌邑市| 蛟河市| 贡嘎县| 城市| 酒泉市| 通辽市| 彩票| 武城县| 靖边县| 肥乡县| 洮南市| 阜平县| 平乐县| 金阳县| 本溪市| 古丈县| 常宁市| 财经| 竹北市| 桂林市| 汨罗市| 瑞金市| 张家港市| 昌平区| 大竹县| 黄石市| 镇安县| 阳泉市| 黎城县| 房产| 和顺县| 黔南| 萨迦县| 兰溪市| 梧州市| 沙坪坝区| 微山县| 兴业县|