《Tilt Brush》是一款VR繪圖應(yīng)用,它提供了包括太空在內(nèi)不同風格的3D空間用來作畫,同時還提供了多種樣式的筆刷,比如彩虹、發(fā)光帶、星星、煙霧甚至楓葉。本文我們一起來看看如何利用Tilt Brush Unity SDK在Unity中使用Tilt Brush。

關(guān)于Tilt Brush Unity SDK
Tilt Brush Unity SDK是為設(shè)計在Unity里使用Tilt Brush進行草圖創(chuàng)建的工具,此工具易于上手,讓藝術(shù)家以全新的方式來實現(xiàn)創(chuàng)意。?

Tilt Brush Unity SDK包括以下幾個部分:
《Tilt Brush》的初始材質(zhì)和腳本,將自動綁定到導(dǎo)入的草圖,以便在Unity中的效果與在《Tilt Brush》中的草圖一致。
《Tilt Brush》的音頻響應(yīng)功能,讓畫刷響應(yīng)音樂。
可重用的示例腳本,增加交互或利用導(dǎo)入的草圖制作動畫。
《Tilt Brush》內(nèi)容的妙用。

使用前須知
目前Tilt Brush Unity SDK還處于內(nèi)測階段。使用最新版SDK時,請參照以下指南:
需要Unity 5.4.2f2或更高版本。
需要Tilt Brush v7.0或更高版本。
不支持基于粒子系統(tǒng)的畫刷:Bubbles(泡沫),Dots(點),Embers(余燼(余火)),Smoke(煙霧),Snow(雪花),Stars(星星)。
這些畫刷外觀可能不同:Pinched Flat,Pinched Marker,Electricity,Hyper Grid,Toon,Light Wire,Rainbow

下載與導(dǎo)入
點擊這里下載最新版Tilt Brush Unity SDK。您會在下載好的文件中看到一個Unity資源包,它就是SDK,導(dǎo)入方法如下:

  • 打開Unity。
  • 新建項目或打開已有項目。
  • 雙擊下載好的. unitypackage文件,或者點擊菜單項Assets > Import Package > Custom Package。
  • 導(dǎo)入Unity資源包。



下載并導(dǎo)入SDK后,我們開始導(dǎo)入草圖。

導(dǎo)入草圖
要在Unity中使用《Tilt Brush》的草圖,需要將草圖導(dǎo)出為FBX文件并復(fù)制到項目中。Tilt Brush SDK會在導(dǎo)入過程中處理文件并指定正確的材質(zhì)。

導(dǎo)出草圖的步驟如下:

  • 打開《Tilt Brush》,加載草圖。
  • 單擊菜單設(shè)置區(qū)域的[...]圖標。
  • 單擊Labs圖標。
  • 在彈出對話框中單擊Export。


導(dǎo)入草圖到Unity場景的步驟如下:

  • 將.FBX文件(Windows:My Documents/Tilt Brush/Exports 或Mac: Documents/Tilt Brush/Exports)復(fù)制到Unity項目。
  • 將.FBX文件從項目視圖拖至層級視圖。


注意:Tilt Brush Unity SDK不會加載.tilt文件;不需要復(fù)制FBX包含的紋理貼圖到Unity項目。

提示:可以從SDK提供標準的Tilt Brush環(huán)境開始學習。Tilt Brush環(huán)境位于TiltBrushExamples/Environments/Standard目錄下。

示例
“TiltBrushExamples”文件夾下的示例展示了在Unity中使用《Tilt Brush》草圖及其它內(nèi)容的不同方法。

Environments / Standard
該場景包含初始的Tile Brush環(huán)境和燈光設(shè)置,非常適合以此場景開始學習在Unity中使用《Tilt Brush》草圖。
?


Sequence - Looping Animations
使用多個草圖的示例,利用Sequence腳本創(chuàng)建了火焰動畫。
?


Sequence - Audio Reactive
與音樂節(jié)拍同步的動畫示例!
?


下面是VR示例,使用VR示例之前請先注意以下幾點:
下載SteamVR package并導(dǎo)入到工程項目,使用SteamVR推薦的設(shè)置。
將[CameraRig]預(yù)制件添加到場景。

VR/Story - Teleporting
將鼠標懸停在箭頭上并使用Trigger按鈕來穿過地牢。
?

?
將傳送點放在草圖周圍進行探索


VR/Story - Custom Triggers
與草圖進行交互,講述一個古怪的故事。
?

?
自定義觸發(fā)器,放置于草圖周圍來觸發(fā)場景切換事件


提示
音頻反應(yīng)
可以在場景里根據(jù)音頻來擺動畫刷:

  • 將[TiltBrush Audio Reactivity]預(yù)制件拖入場景。
  • 如果場景中沒有Audio Source,則添加一個。


如果畫刷沒有移動,可以在運行模式下選中預(yù)制體查看著色器接收到的音頻數(shù)據(jù)。
?



發(fā)光



通過添加Unity內(nèi)置的著色器Bloom來實現(xiàn)《Tilt Brush》的視覺效果:

  • 導(dǎo)入Standard Assets的Effect插件包(Assets menu / Import Package / Effects)。
  • 重要注意:勾選Camera的HDR。
  • 添加Bloom后處理效果,參考推薦設(shè)置如下:


?


腳本示例
Tilt Brush Unity SDK含對草圖重用的腳本示例:
創(chuàng)建動畫循環(huán)。
草圖不同地點之間傳送。
創(chuàng)作交互性故事。
創(chuàng)建時間軸動畫。
將草圖分成各個部分(實驗)。

下面我們就展開介紹一下各個實例。

創(chuàng)建動畫
使用內(nèi)含的包含Sequence腳本來將《使用Tilt Brush》草圖用當作動畫幀。
創(chuàng)建動畫步驟如下方法:

  • 創(chuàng)建空對象(GameObject)
  • 添加Sequence組件 (Add Component > Tilt Brush > Sequence)

?

?

  • 將模型、文件夾或者游戲?qū)ο笸先霗z視面板(Inspector)以添加幀。

?


要快速將草圖轉(zhuǎn)換為動畫,可以從文件夾創(chuàng)建序列:

  • 右鍵單擊包含所有草圖的文件夾
  • 點擊Create Looping Sequence:

?

?

  • 這會將文件夾的所有草圖轉(zhuǎn)換為一個序列


音頻響應(yīng)動畫
還可以創(chuàng)建一個根據(jù)音樂節(jié)拍播放的序列,步驟如下:

  • 將Playback Mode設(shè)置為Every Beat
  • 將[TiltBrush Audio Reactivity]預(yù)制件添加到場景
  • 添加Audio Source組件及您喜歡的音樂



參考


播放模式:

  • Every Beat,播放歌曲的每一拍都會改變動畫幀
  • Constant, 動畫幀在經(jīng)過固定秒數(shù)后改變
  • Frames Per Second, 動畫幀播放速度(每秒幀數(shù))


導(dǎo)出設(shè)置(當項目里有Cinema Director 可用時):

  • Cutscene Director,將序列幀導(dǎo)出到時間軸。
  • Time Per Frame,每幀持續(xù)時間(以秒為單位)。
  • Turn into Cutscene, 利用所有正確參數(shù)創(chuàng)建過場動畫對象。


幀:

?

  • 添加幀的方法:將模型,文件夾或游戲?qū)ο笸先氲絊equence窗口。

?

  • ?添加空白幀

?

  • ?重復(fù)此幀的次數(shù)

?

  • ?刪除幀

?

  • ?將幀向上或向下移動(不支持鼠標拖拽)


創(chuàng)建交互性VR故事或探索草圖
請注意,使用VR腳本步驟如下:

  • 下載SteamVR package并導(dǎo)入項目,使用SteamVR默認推薦設(shè)置。
  • 將[CameraRig]預(yù)制件添加到場景。


可以通過視角預(yù)定好的傳送點來探索草圖,或者通過Teleport腳本在不同草圖間移動。這可用于:

  • 探索大型草圖。
  • 創(chuàng)建線性或分支交互性故事。
  • 在不同草圖之間導(dǎo)航。

?

?
使用傳送點探索草圖


草圖之間進行傳送
創(chuàng)建獨立場景:
創(chuàng)建空游戲?qū)ο蟆?/span>
添加Story Scene組件。
創(chuàng)建子對象并附帶Story Teleport Trigger組件,將它設(shè)置為不同場景的傳送點。
為子對象添加所有草圖和游戲?qū)ο螅?/span>
?



層級視圖結(jié)構(gòu)如下:

  • 場景1:草圖;傳送到場景2的傳送觸發(fā)燈光;物體等等...
  • 場景2:草圖;傳送到...的傳送觸發(fā)。


最后,設(shè)置傳送點之間導(dǎo)航的方法。

視點之間傳送
想讓玩家移動到某個點,步驟如下:

  • 創(chuàng)建空游戲?qū)ο蟆?/li>
  • 添加Story Teleport Point組件。


最后,設(shè)置視點之間導(dǎo)航的方法。場景視圖會顯示點與點之間的連線方式。
?

?
與另外兩點相連的傳送點(作者 Scott Campbell)


點或者場景之間導(dǎo)航
要在點到點之間移動,需要在它們之間設(shè)置傳送點。Tilt Brush Unity SDK包含幾個示例腳本:
?

  • 使用玩家周圍的箭頭:


- 創(chuàng)建空游戲?qū)ο?/span>
- 添加Story Arrow Navigation組件:運行場景,每個可以傳送的點,都會在玩家周圍出現(xiàn)箭頭。鼠標懸浮在傳送點上面,利用觸發(fā)器傳送到另一點。
?

  • 使用激光指針:


將Laser Pointer組件添加到控制器,步驟如下:
- 將[CameraRig]預(yù)制件添加到場景。
- 為左右手控制器分別添加SteamVR_Laser Pointer組件并設(shè)置顏色。
在傳送點添加圖標步驟如下:
- 設(shè)置圖標紋理和材質(zhì)。
?



當激光指針懸浮在傳送點圖標并單擊觸發(fā)器時,玩家將被瞬移至傳送點。
?

  • 手動放置傳送觸發(fā)器


- 創(chuàng)建空游戲?qū)ο蟛⑻砑覵tory Teleport Trigger組件。
- 設(shè)置觸發(fā)器的觸發(fā)時間與傳送的目標點(查看下方Story Teleport Trigger組件介紹)
- 調(diào)整碰撞體設(shè)置觸發(fā)器被激活的位置。

提示

  • 創(chuàng)建分支故事時,為每個場景添加多個觸發(fā)點。
  • 通過添加返回前一個或下一個場景的觸發(fā)器,為每個場景創(chuàng)建翻頁效果。
  • 在場景里添加傳送點 ,傳送至同一場景的特定地點。



參考文檔

  • Story Scene組件:Story Scene組件來使對象成為玩家可以傳送到的獨立場景。當玩家傳送到該場景,所有子對象會被激活,離開場景時被銷毀。


-First Scene,如果被勾選,場景會成為運行后首個激活的場景(其它場景會被禁用)。
?

  • Story Teleport Point組件:Story Teleport Point組件用于指定玩家傳送的空間點。

?


- Teleport To All Points,玩家是否能傳送至場景任意點?
- Points,玩家可以傳送到指定點。
- Teleport On Start,在中起始,勾選該選項會禁用場景中啟用該選項的任意其它點。
- Floor Offset,從玩家地面?zhèn)魉偷搅硪稽c地面的高度。默認高度是一個人坐下的眼睛的平均高度,所以傳送點和視點位置要一致。
- Icon Texture,可視化點的圖標。如果想隱藏傳送點,將該屬性留空即可。

選中傳送點時,會在場景視圖顯示一些有用信息,告知玩家的傳送點與傳送時間:

  • flat bottom white square表示玩家所在地面。
  • wide white box表示玩家坐下的平均高度。
  • slim tall white box表示玩家站立的平均高度。
  • blue arrows表示所有從此處傳送的點。


?

?
選中傳送點后的可視化小標記


?

  • Story Teleport Trigger組件:Story Teleport Trigger組件用于自定義玩家傳送到不同場景或傳送點的方法。在草圖的關(guān)鍵點添加交互性(例如門把手)

?


-Trigger Type,定義觸發(fā)器激活時間。
-? ?? ???Steam VR Controller Enter: When this is touched by a controller
-? ?? ???Steam VR Controller Enter: 控制器觸碰觸發(fā)器時
-? ?? ???Steam VR Controller Interact: When this is touched by a controller and its trigger button is pressed
-? ?? ???Steam VR Controller Interact: 控制器觸碰后按下觸發(fā)按鈕。
-? ?? ???Steam VR Head Enter: When this is touched by the player’s head (the main camera)
-? ?? ???Steam VR Head Enter: 玩家頭盔(Main Camera)觸碰觸發(fā)器時
-Target Type 定義傳送點位置。
-? ?? ???Scene: Teleport into a different Story Scene (Note: not a Unity Scene)
-? ?? ???Scene:傳送到不同的Story Scene(注意:不是Unity場景)
-? ?? ???Teleport Point: Teleport into a Teleport Point
-? ?? ???Teleport Point:傳送到傳送點
-Transition Time 傳送需要的時間(單位為秒)。
-Transition Color 屏幕淡出的顏色。


創(chuàng)建過場動畫
請注意:要使用Cinema??Director工具欄編輯時間軸,可以將不同草圖按幀分類后,插入時間軸。創(chuàng)建時間軸步驟如下:

  • 導(dǎo)出Tilt Brush每一幀并復(fù)制到工程項目。
  • 右鍵單擊包含所有幀的文件夾(以及子文件夾)。
  • 單擊Create Cutscene。


?


?

  • 可以看到彈出的Director窗口,每一幀均被插入到時間軸。

?




提示:可以通過選中序列后單擊Turn into Cutscene按鈕,將動畫序列轉(zhuǎn)換為時間軸。

銳亞教育