2012年7月31日 星期二

自訂遊戲引擎

UE在執行遊戲前會先建立一個型別為GameEngine的遊戲引擎物件,然後將它的位址存放在全域指標GEngine裡。UE提供讓開發者自訂遊戲引擎的功能,只要繼承GameEngine自訂引擎類別,然後在DefaultEngine.ini裡指定自訂的類別即可:
[Engine.Engine]
GameEngine=MyGame.MyGameEngine 
GameEngine類別提供許多虛擬函式可供覆載,以下列出重要的函式:
  • Init():引擎初始化。
  • PreExit():關閉引擎前會呼叫這個函式。
  • Tick( DeltaSeconds ):更新遊戲時會呼叫這個函式。
  • Exec( Command, OutputDevice=GLog ):執行控制台指令。

2012年7月16日 星期一

優化AnimTrail

AnimTrail讓粒子跟隨動作拉出拖曳效果,可以用來製作武器揮動的特效。它需要指定一個資料型別為AnimTrail的粒子系統,並且在動作資料AnimSequence加上AnimNotify_Trails來指定特效的起始和結束時間。在AnimNotify_Trails上還要指定三個跟隨骨架移動的socket名稱,用來定位粒子。在編輯AnimNotify_Trails時,就會以指定的更新頻率取樣socket位置並且記錄下來,以供播放特效時內插粒子多邊形的位置。

在使用AnimTrail時,我發現幾個不盡理想的地方。我把其中兩個的問題和解法記錄在此,以供參考。

已建粒子系統元件的判斷方法