ほげたつブログ

プログラムとアニメーションをかじって生きてる

最近UE4関連で作ったものメモ(2016.12)

同一 or 子クラスのオブジェクトプロパティ一括コピー

Grayちゃんと会話

コピーコストを気にしつつ、float配列に一様に加算するノード

雪面の凹み

MipMapプレビュー(元ネタはアンコウさんアドカレ記事)

GameplayDebugger をプロジェクト用にカスタマイズして利用する

こちらは「Unreal Engine 4 (UE4) Advent Calendar 2016」3日目の記事です。

Unreal Engine 4 (UE4) Advent Calendar 2016 - Qiita

GameplayDebugger が便利なのにあまり使われていなくて可哀想なので記事にします。

続きを読む

WebApi プラグインの設計思想 & 実装Tips

こちらは「裏 Unreal Engine 4 (UE4) Advent Calendar 2016」1日目の記事です。

裏 Unreal Engine 4 (UE4) Advent Calendar 2016 - Qiita

今回は ということで趣向を変え、公開中の WebApi プラグイン をベースに、新たに作成中の NekoNekoOnline プラグイン について紹介させて頂きます。

=== 追記 ===

やはりSandboxとは別にした方が良さそうだったので、これまで通りWebApiプラグインとして独立させました。
設計思想は代わりませんので、置き換えて読んで頂ければと。
タイトルも変えてあります。

続きを読む

UE4でActor間のTick実行順序に依存関係を持たせる方法


でした。でもグループのみの運用だと面倒だよねってActorの実装を眺めていたらTickの依存関係を作ることは標準機能でサポートされているようです。

docs.unrealengine.com

続きを読む

UE4でPawnをSpawnActorする際のController生成タイミングに注意

第5回UE4ぷちコン、お疲れ様でした。

historia.co.jp


前回に引き続き、自分も参加しました。

www.youtube.com


今回はこのぷちコン作品を作る際に少しハマった件について書きます。

PawnのBeginPlay内で自信のControllerを参照するのは危険

今回の作品ではUnityちゃんのAIにBehaviorTreeを使用していて、BeginPlayからStartAIを呼び、その中でRunBehaviorTreeを呼んでいます。

f:id:hogetatu:20160502233947p:plain

ところがこのように記述してレベル開始時に大量にSpawnした時、Spawn後にその場に立ち止まったままのUnityちゃんがいる ことに気が付きました。
こちらを調べてみたところ、どうも GetControllerの戻り値がNoneになっていることがある ようです。
考えてみると確かにPawnとControllerは別Actorであるため、生成順序に関しては保証されていない のでしょう。

今回は以下の様に失敗時に時間を置いてリトライする仕組みを用意して対応しています。

f:id:hogetatu:20160503000432p:plain


BeginPlay内にてGetControllerする際には生成タイミングに注意しましょう。
現場からは以上です。