五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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系列教程——編排劇情!的評論 (共 條)

分享到微博請遵守國家法律
聂拉木县| 普格县| 抚顺市| 望城县| 德惠市| 深州市| 河西区| 青州市| 奉节县| 唐河县| 和龙市| 明星| 剑川县| 郁南县| 涡阳县| 乐东| 长汀县| 同仁县| 航空| 武宣县| 黑河市| 铜川市| 兖州市| 文化| 洛宁县| 轮台县| 瓮安县| 大田县| 长顺县| 丹巴县| 朝阳区| 招远市| 富源县| 梨树县| 醴陵市| 吐鲁番市| 大邑县| 车致| 克东县| 肥乡县| 鄂州市|