2012年5月26日 星期六

自訂Matinee軌道

UE的Matinee提供開發者在預定時間點變更物件屬性的功能,它是以軌道為基本單位來編排,例如一條軌道代表位置,另一條軌道代表顏色。它可以讓開發者自訂軌道來擴充新的功能。Matinee軌道的基礎類別是InterpTrack,編輯器會尋找所有的InterpTrack類別並且列舉出來。所以如果你自訂一個InterpTrack類別,編譯完就可以在下次開啟Matinee編輯器時看到它。

在Matinee編輯器中,左邊看到軌道名稱是寫在InterpTrack類別的TrackTitle屬性,左邊的圖示則由GetTrackIcon()函式指定。而按右鍵新增軌道時顯示的名稱是寫在當地化組態檔Descriptions.int裡。所以當自訂軌道時,記得要去新增一個名稱設定。

InterpTrack可以指定另外兩個擴充類別:
  • 其中一個是實例類別,用來維護執行狀態,由TrackInstClass屬性指定。
  • 另外一個是輔助類別,用來擴充編輯功能,由GetEdHelperClassName()函式指定。

2012年5月13日 星期日

開關Unreal屬性編輯

開發者可以在UnrealScript中為一個屬性指定另一個布林屬性作為可編輯開關。當指定的布林屬性為false時,在UEd的屬性視窗中被指定的屬性控制項會變成不可編輯的失能狀態。

指定的方法是透過設定UnrealScript的EditCondition元資料。以下程式碼展示如何設定EditCondition元資料:
class TestEditCondition extends Object;

var() bool bSwitch1;

var() int Int1 <EditCondition = bSwitch1>;

var bool bSwitch2;

var() int Int2 <EditCondition = bSwitch2>;

2012年5月7日 星期一

自訂Kismet事件

Kismet可以讓開發者透過圖形界面編排遊戲腳本,例如當玩家碰觸開關時把門打開,或是進入門口時播放過場動畫。Kismet的基本結構是以各種不同功能的節點連接構成,節點可分為事件、行動、條件、變數。除了UE內建的功能外,開發者也可自行擴充需要的節點。在此篇簡單說明一下如何自訂事件節點。

事件節點的基礎類別是SequenceEvent,重要的屬性有:
  • ObjName [string]:編輯器顯示的名稱。
  • ObjCategory [string]:編輯器選單的分類。在右鍵選單的New Event的子選單裡會看到同名的分類選單。指定新的分類名稱會產生新的分類選單。
  • bAutoActivateOutputLinks [bool]:當事件發生時,是否自動啓動輸出連結。
  • bPlayerOnly [bool]:是否限定玩家才能啟動這個事件。