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

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

Unity學(xué)習(xí)筆記11影視內(nèi)容創(chuàng)作

2021-12-01 09:43 作者:挽秋_z  | 我要投稿

影視內(nèi)容創(chuàng)作

時間軸

實時動畫片創(chuàng)作

1,游戲引擎被稱為內(nèi)容創(chuàng)作引擎

2,實時真實感光照效果、實時物理等特效的仿真

3,友好、靈活的創(chuàng)作工具

4,自然實現(xiàn) VR 效果

時間軸和動畫控制的區(qū)別

timeline用來生成各種動畫效果,Cinemachine用來靈活的控制虛擬攝像機(jī)

1,animation只能控制單個物體,而timeline可以使得多個物體協(xié)同運(yùn)動(比如在播放動畫的時候,timeline可以

控制發(fā)出對應(yīng)的聲音,播放特定的粒子系統(tǒng)特效,進(jìn)行攝像機(jī)跟隨等)。

2,在timeline中可以有多個軌道,每個軌道上面也可以包含多個片段(這些片段可以移動,剪切,或者他們之間

進(jìn)行融合)。

3,timeline加入Unity的時間要晚于animation。

簡單實踐

windows窗口-->Sequencing-->timeline。新建一個空物體,為其創(chuàng)建一個timeline。

將需要timeline控制的物體拖拽到timeline窗口中,選擇需要的控制方式。

點(diǎn)擊三個點(diǎn)可以添加動畫片段等

在時間軸上可以通過直接拖拽的方式來控制動畫片段的播放。


簡單動畫

時間軸的工作流

1,創(chuàng)建時間軸資源和時間軸實例

2,使用無限片段錄制動畫(錄制對象為游戲物體)

3,(錄制完成后)將無限片段轉(zhuǎn)換為動畫片段

簡單實踐

Animation Track 動畫軌道

點(diǎn)擊紅色錄制按鈕,然后會開始錄制選中的物體


選中對應(yīng)的物體后,右鍵可以為其位置,旋轉(zhuǎn)等添加關(guān)鍵幀


添加后


拖動關(guān)鍵幀的位置,選中位置或者旋轉(zhuǎn),直接拖拽場景中的物體,錄制完成后運(yùn)行游戲測試效果。

右鍵有一個Convert ?To ?Clip ?Track 選項

就是把錄制好的動畫轉(zhuǎn)換為動畫片段。

Activation ?Track 激活軌道,可以讓攝像機(jī)在特定的時間處于激活狀態(tài)。(默認(rèn)情況是主攝像機(jī)處于激活狀態(tài))

新建兩個攝像機(jī),分別對著兩個物體,拖拽到timeline中,選擇激活軌道

角色動畫

timeline也可以控制角色動畫

角色動畫的特殊性

1,角色動畫使用骨架動畫

2,在動畫片段之間容易產(chǎn)生問題(比如角色在運(yùn)動時,走路到跑步動畫的轉(zhuǎn)換之間可能會出現(xiàn)問題,位置不對應(yīng)

等)

3,可以使用一些特殊效果(比如使用動畫遮罩來嫁接不同身體部位的動畫)

簡單實踐

新建一個場景,創(chuàng)建timeline,


移除角色的控制腳本,


移除后


現(xiàn)在角色的運(yùn)動不再由腳本來控制,可以通過timeline來控制。

為角色添加幾個動畫


如果移動角色的位置,希望在其他地方播放角色動畫,這時角色會自己移動回來,因為此時的控制權(quán)已經(jīng)在

timeline上,如果要移動,需要選中動畫,


點(diǎn)擊十字圖標(biāo)進(jìn)行移動,這時的變換才會反映到timeline中。

如果希望動畫是連續(xù)播放的,需要選中后面的動畫右鍵,選擇Match Offsets ?To ?Previous ?Clip 即可。

在timeline上進(jìn)行動畫的融合:選中動畫向前移動即可


,經(jīng)過動畫的融合,使角色的動作看起來更加的自然。

如果存在滑步現(xiàn)象,還可以對動畫進(jìn)行微調(diào),用鼠標(biāo)滾輪可以放大timeline時間軸,拖動播放來進(jìn)行觀察,選中動

畫片段,在存在滑步現(xiàn)象的地方選中十字圖標(biāo)進(jìn)行調(diào)整角色的位置。(也可以直接修改圖標(biāo)下面的數(shù)值進(jìn)行定量的

微調(diào))。

新建一個角色,拖拽到timeline中后,添加一段動畫,然后右鍵選擇Add ?Override Track(替換性的軌道),該

軌道上面的動畫會替換掉原軌道上面的動畫。一般不會武器替換,選擇替換軌道,需要給角色加一個遮罩Avatar

Mask,來決定替換哪些部位。



比如下面這個,上半身是彎腰走路,下半是正常走路


可以建立分組,便于管理


分組


右鍵軌道可以鎖定,靜音(Mute)等操作。

腳本控制

常見的軌道Track

Animation Track ?物體的動畫控制

Audio Track ?音頻軌道(可以控制音頻,添加聲音在上面)

Activation ?Track ?激活軌道(控制物體的激活與否)

Control Track 控制軌道(控制游戲物體的時間相關(guān)的內(nèi)容,可以從一個timeline改變另一個timeline。為父物體

實例化一個預(yù)制件,比如添加粒子效果)

自定義軌道Playable Track

1,Playable Track 允許用戶自定義相關(guān)動畫效果

2,可以根據(jù)自己的需要進(jìn)行定制化的開發(fā)

3,在代碼中繼承PlayableBehaviour和PlayableAsset兩個類,在其中完成自定義的動畫功能

使用Unity實現(xiàn)時間軸的腳本控制

控制軌道可以對其他的timeline進(jìn)行控制,右鍵控制軌道


在此添加要控制的其他timeline。

Rigbody中的 Is Kinematic 是否開啟動力學(xué),開啟此項,物體不受力的作用

掛接了timeline的物體,默認(rèn)載入時就會直接播放,也可以通過腳本來控制。

新建一個腳本和空物體Controller,將腳本掛接上去

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;//需要添加

public class Timeline_Controller : MonoBehaviour
{
? ?[SerializeField]//可序列化的,這樣tl_event就可以在unity界面中開放出來被賦值了
? ?public UnityEvent tl_event;
? ?// Start is called before the first frame update
? ?void Start()
? ?{
? ? ? ?
? ?}

? ?// Update is called once per frame
? ?void Update()
? ?{
? ? ? ?if(Input.GetKeyDown(KeyCode.Space))
? ? ? ?{
? ? ? ? ? ?tl_event.Invoke();//如果用戶按下空格鍵,invoke觸發(fā)
? ? ? ?}
? ?}
}

將需要被控制的timeline拖拽上去,然后添加需要控制的事件


然后需要將被控制的timeline的play ?On Awake 勾選掉(不會自動播放)。

新建腳本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using UnityEngine.Playables;
using UnityEngine.UI;

public class MyPlayableAsset : PlayableAsset
{
? ?public ExposedReference<Text> myText;//用來顯示一些信息
? ?//override 是指虛函數(shù)
? ?public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
? ?{
? ? ? ?var playable = ScriptPlayable<MyPlayableBehaviour>.Create(graph);
? ? ? ?//MyPlayableBehaviour 是一個自定義的類
? ? ? ?playable.GetBehaviour().status = myText.Resolve(graph.GetResolver());
? ? ? ?//GetBehaviour 得到其行為
? ? ? ?return playable;
? ?}
}

public class MyPlayableBehaviour : PlayableBehaviour
{
? ?public Text status;
? ?public override void OnBehaviourPlay(Playable playable, FrameData info)
? ?{
? ? ? ?base.OnBehaviourPlay(playable, info);
? ? ? ?if(status!=null)
? ? ? ?{//如果文本內(nèi)容不為空
? ? ? ? ? ?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);
? ?}
}

在timeline上的自定義軌道上添加


然后建立一個Text放上去


運(yùn)行游戲可以看到,播放時文本是Playing ? 播放完成后是End playing

Cinemachine

作用

1,過程化的游戲內(nèi)攝像機(jī)自動控制系統(tǒng)

2,用于游戲過場動畫,影視化效果,實時動畫

3,特別適合于需要鏡頭調(diào)度的場合

使用Cinemachine的便利性

1,解決了攝像機(jī)控制所需要的復(fù)雜數(shù)學(xué)和邏輯計算

2,攝像機(jī)控制會自動反應(yīng)對場景內(nèi)容的修改

3,適用于各種游戲類型

4,和其他的Unity工具配合緊密

簡單實踐

先導(dǎo)入該包,才可使用


建立一個基礎(chǔ)的場景和一個小動畫


添加一個


在其屬性界面中,添加跟隨和觀察的物體


將主攝像機(jī)添加到時間軸上,選擇Cinemachine track類型,然后如圖


添加后在屬性界面將剛才的Cinemachine添加上去


拖動時間軸可以看到攝像機(jī)的效果。


再在場景中添加一個虛擬攝像機(jī)(這個是推拉搖移軌道式camera)


通過路徑點(diǎn)來決定其軌道,在其屬性界面可添加路徑點(diǎn)


在其屬性界面


將這個Enable勾選,鏡頭就會自動的推拉搖移,也需要為其添加跟隨和觀察的物體


然后將這個Cinemachine同樣添加到時間軸上,拖動時間軸即可看到效果。

和動畫一樣,對二者進(jìn)行融合,使其轉(zhuǎn)換看起來更自然














Unity學(xué)習(xí)筆記11影視內(nèi)容創(chuàng)作的評論 (共 條)

分享到微博請遵守國家法律
石棉县| 江城| 石景山区| 绥化市| 大冶市| 正蓝旗| 孝昌县| 新余市| 巴中市| 富阳市| 茶陵县| 乌什县| 扬中市| 辉县市| 微山县| 元阳县| 城市| 绿春县| 抚松县| 隆化县| 扎囊县| 京山县| 翁源县| 壤塘县| 塔城市| 蒲城县| 韩城市| 镇宁| 永胜县| 丽江市| 兴仁县| 南宁市| 琼海市| 中江县| 汕头市| 乌拉特后旗| 长岭县| 冕宁县| 蒙城县| 米林县| 抚顺市|