PavilionDV7の雑多なやつ

Qiitaから移行しました。UE4に関する記事から興味のあることまで色々書きます。

UE4

【Unreal Engine】NavMeshとWaypointの経路探索を組み合わせる実験

はじめに Unreal Engine (UE) Advent Calendar 2023の記事です。 qiita.com 過去、書いた記事で紹介したREエンジンの講演に「迂回する経路を取るためにWaypointで大まかな経路を探索し、NavMeshで詳細な経路を探索する」方法が紹介されていた。迂回する経路…

【Unreal Engine】角度が近いオブジェクトを取得する

はじめに 実験のために「角度が近いオブジェクトを取得する」ブループリントを作ろうとしたけど、思いの外手間取ってしまったので次回からはパパッと作れるようにメモ書きしておく。 実装方法 角度が重要なので毎度おなじみ内積を利用する。単位ベクトル同士…

【Unreal Engine】ナビメッシュのランタイム生成のコストを抑える実験

はじめに RE:2023 ナビゲーションAIシステム概要とタイトル活用事例 - YouTube 上記の講演ビデオ中にある「ナビメッシュを分割できるオブジェクトを事前に配置しておき、動的なオブジェクトに合わせて有効・無効を切り替えることで、ナビメッシュの動的分割…

【UE5】Projectile Movement Componentを再アクティブ化したときに動かない問題

問題のブループリント Set ActiveでFalseを渡すことで非アクティブ化しComponentのTickも停止させている。その後、逆の手順で再アクティブ化している。 しかしタイトルの通り、この手順ではProjectile Movement Componentは正しく動かない。 解決策 幸いにも…

【UE4】SoundWaveアセットをデスクトップにエクスポートするエディタ拡張をPythonで書いた

UE4

はじめに ソースコード 使い方 1. プロジェクトのContentフォルダ内にPythonフォルダを作る 2. Pythonフォルダ内でpythonファイルを新規作成し、ソースコードをコピペ 3. EUWを作る 4. 実行して結果を確認する おわりに 参考資料 はじめに 購入したサウンド…

【UE4】減衰するレンダーターゲットの作り方

UE4

はじめに レンダーターゲットを使った作例やチュートリアルは豊富にあるものの、例えば「踏みしめた雪の上に新しい雪が積もり足跡が消える」といった徐々に消えていく効果を解説するような内容のものは非常に少なく感じました。(検索の仕方が良くなかったか…

【UE4】HTN Plannerプラグインのサンプルを書きました

はじめに UE4に標準搭載されているHTN PlannerプラグインのサンプルをGitHubの方にアップしました。 この記事では制作したサンプルプロジェクトの解説をしていきます。 はじめに プロジェクトの実行結果 プロジェクト HTNとは HTN Plannerプラグイン プロジ…

【UE4】EnvQueryGenerator_BlueprintBaseで結果が空になる

UE4

問題 EnvQueryGenerator_BlueprintBaseを継承して自作のEnvQueryGeneratorを作成し、RunEQSQueryで動作確認してみるも、いくらやっても結果が空になる。 原因 生成結果を追加するための「Add Generated ...」ノードがサポートする型とクラスオプションにある…

【UE4】超単純な自作アセットエディタを作った

UE4

はじめに モジュール分割 どちらのモジュールに含まれるか? エディタモジュールのクラスをランタイムモジュールのクラスから呼び出した場合 空っぽのUTesBlueprint モードによるエディタレイアウト ExpandNode エディタに記述した処理がなぜ呼び出せるのか …

【UE4】Influence Map 再び~プログラム編~

お知らせ はじめに プロジェクトのダウンロード 任意のプロジェクトへのインストール方法 プログラムについて 大まかな地図 マップについて マップ構造 Propagation Map Working Map Interest Map ナビメッシュを利用したノードグラフの作成 ノードグラフか…

【UE4】Influence Map 再び~プロジェクト編~

お知らせ はじめに Influence Map 影響 伝播 プロジェクトのダウンロード 任意のプロジェクトへのインストール方法 プロジェクト サンプルマップについて Propagation_P WorkingMap_P Attenuation_P CloseTo_P、EvadeFrom_P、CloseEnemyEvadeAlly_P、CloseAl…

【UE4】経路探索のコスト計算をカスタマイズする

UE4

はじめに この記事ではC++を使ってRecast NavMeshをカスタマイズしたコスト計算を使うように拡張して経路探索をコントロールする方法を紹介します。 C++での拡張以外にもNavModifierVolumeと動的なナビメッシュの生成を組み合わせて経路探索をコントロールす…

【UE4】経路探索時に通過するエッジの中点を取得する

UE4

はじめに UE4での経路探索はRecast & Detourライブラリに実装されているString Pullと呼ばれる経路整形処理によって小回りの効いた経路を出力します。ほとんどの状況ではString Pull後の経路で問題ありませんが、時には道の中心を歩いたり、ゆとりを持って角…

【UE4】Navigation Raycastの動作について

UE4

はじめに UE4にはNavigation Raycast(以降Nav Raycastと呼ぶ)というノードがあります。このノードの動作は少々癖があり自分の想像していた結果と異なることが多々あるため、一度Nav Raycastノードの動作を整理してみようと思いこの記事を書きました。 はじ…

【UE4】簡単な3Dインジケーターの作り方

UE4

はじめに 第14回ぷちコン応募作品でも実装した超簡単な3Dインジケーターの実装を紹介します。 3Dインジケーターがどのように機能するかは次の動画をご覧ください。 youtu.be はじめに プロジェクトはこちら インジケーターブループリント Begin Play Tick 見…

第14回ぷちコン応募作品の実装メモと振り返り

はじめに 2020年7月18日~8月31まで開催されていた第14回ぷちコンに作品を応募しました。 youtu.be この記事では箇条書きですがプロジェクトの実装メモを紹介していきます。 はじめに プレイヤー プレイヤーの移動 コンポーネント プレイヤーの向きと移動の…

【UE4】背景色を変える

UE4

はじめに デフォルトできれいな空を描画してくれているが、これを単色の背景色としたいときの設定をまとめる。 変更前と変更後 変更前 変更後 準備するもの Light Source:必須 Sky Sphere:必須 Sky Light:任意 設定 Light Source デフォルトのまま Sky Sp…

超シンプルナビメッシュを作る

はじめに ナビゲーションメッシュを1から自作した経験が全くなかったのでナビゲーションメッシュ(以降ナビメッシュと呼ぶ)の自作にチャレンジしてみました。 はじめに 用語について 結果 プロジェクトはこちら プロジェクトの使い方 Blenderを利用してナ…

【UE4】第13回ぷちコン応募作品を解説する

はじめに 応募した作品 プロジェクトはこちら 注意 プレイヤー カメラは固定のままカーソル方向へ向く ダッシュ移動 攻撃 武器攻撃の流れ 敵キャラクター 継承関係 ザコ敵BehaviorTree プレイヤーの周りをウロチョロする 複数の敵が同時に攻撃しないようにす…

【UE4】Flow Field Pathで大量のエージェントを移動させる

はじめに 結果 プロジェクトはこちら Flow Field とは Flow Field の生成 巨大なフィールドに対応させる グリッドの階層構造 HPA* アルゴリズム ポータルを生成する ポータルネットワークの構築 Flow Field x HPA* おわりに 参考資料 はじめに World of War …

Blender2.8でモデリングしてカラーIDマップ作ってUE4で使用するまでの手順まとめ

はじめに Blender作成したモデルのパーツごとにそれぞれマテリアルを割り当てるとUE4にインポートした際にマテリアルスロットとして扱われ、パーツごとに異なる質感を表現したいときに便利ではあるが、単に色を変えただけのマテリアルや全く複雑ではないマテ…

UEnumでは「TRUE」や「FALSE」が使えない

UE4

本題 Unreal C++ ではEnum(列挙型)を定義する際に以下のように定義する UENUM() enum class EHoge : uint8 { Hoge, Fuga, Var }; このとき列挙子(HogeやFuga等)でTrueやTRUE、FalseやFALSEを使うとエラーになる。 UENUM() enum class EHoge : uint8 { TR…

【UE4】キャラクタの回転に合わせて視野を回転させる

いつだかツイッターに書いたような気がするが探すのが億劫なのでざっくりとここに書き出す。 継承したAI ControllerクラスのTickを無効にする。 キャラクタクラスはMovementComponentのOrient Rotation to Movementのチェックを入れる。(もしかしたらこれ要…

【UE4】Geometry Brushにマテリアルを適用するとプレビューと異なる貼られ方になる問題

UE4

問題点 望ましい貼られ方 Box Geometry Brushにそのまま貼り付けた場合。 画面がほぼ真っ白だがエッジ部分に適用されるはずのエミッシブがおかしいことになっているため。(詳しい原因はわからない) Unlitで確認してみると次のようにマテリアルが貼られてい…