UE4 / BP / 同じ入力イベントを複数のBPで処理したい場合

デフォルトでは同じ入力イベントは1つのBPだけでしか処理できないようになっている。
左クリックイベントの処理などを複数のBPでそれぞれ処理したい場合は、すべてのBPで、入力イベントノードを選択して "詳細 > Input > Consume Input" をoffにすれば処理できるようになる。
f:id:hat0xAA:20190521112941j:plain

UE4 / Material / カスタムノード

カスタムノードを使うとマテリアルノードでもHLSLコードを書くことができる。複雑な計算を書いたり、既存のコードを利用するときに便利。ノードで利用するため入出力形式の制限がある。
HLSLでreturnした値が出力ピンにでてくるのでそれを他のノードやマテリアルノードにつなげて利用する。

f:id:hat0xAA:20190519152643j:plainf:id:hat0xAA:20190519152705j:plain

  • 基本
  • HLSLコードの確認方法
  • カスタムノードから作成されるHLSLコード
  • 外部のHLSLコードの利用 : #include
  • テクスチャオブジェクトの利用 : Texture2DSample()
  • 関数の定義
続きを読む

UE4 / 暗号化してパッケージ化する方法

プロジェクト設定 > Project > Crypto > Encryption で設定できる。UE4.19以降で可能になった。
Encryption Key を設定し、チェックボックスで暗号化する対象を選択すれば、パッケージ化のときに暗号化される。
f:id:hat0xAA:20190513171103j:plain:h200

  • 設定
  • 暗号化していないPakは
続きを読む

UE4 / BP例:Box領域内のランダムな表面位置を取得

スポーン可能な場所を自動で探すなどに使える。

概要

ActorにBoxコリジョンコンポーネントを追加し、GetScaledBoxExtentでBoxのサイズを取得し、RandomPoint in BoundingBoxでBox内のランダムな位置を得て、LineTraceByChannelでなにかにヒットするまで繰り返す。
f:id:hat0xAA:20190510101234j:plain:w300

  • 概要
  • ノード
  • 実行結果
  • メモ
  • 元ネタ
続きを読む

UE4 / BP / AI(NPC)の実装例

UE4ではビヘイビアツリーをつかって自動で動くキャラクタAIを実装することができる。
ビヘイビアツリーを作り、AIの記憶用にブラックボードを作り、AIコントローラにそれらをセットし、自動化したいキャラクタにそのコントローラを適用すると自動で動くキャラを作ることができる。
AIを移動させるときはナビメッシュボリュームをレベルに配置する必要がある。ナビメッシュが存在しないとAIは移動できない。
以下、簡単なAIの実装例。

  • 2点間移動のビヘイビアツリーを作る
    • ビヘイビアツリーの作成
    • ブラックボードの作成と設定
    • ビヘイビアツリーの記述
  • AIコントローラをセットアップする
  • キャラクタにAIを適用する
  • ナビメッシュをセットする
  • 実行してみる
  • その他の機能
  • 用語まとめ
  • Tips
  • 公式ドキュメント
続きを読む