UnrealEngine

UE4,UE5 / C++ / Debug / VisualStudioでブレークポイントを使う手順

概要 slnファイルを作成してVisualStudioで開き、対象プロジェクトをスタートアッププロジェクトに指定してからF5でデバッグ開始 詳細

UE4 / UE4.26prev4の紹介動画めも

ue4.26 prev4の紹介動画 www.youtube.com 大雑把なまとめ BPからリグを適用したり制御したり(Control Rig) Niagaraで鎖のようなリンク構造を作れるようになる 外部アプリ連携の強化 変更がすぐに反映 仮想テクスチャで従来の256倍までのサイズのテクスチャが…

UE4 / uprojectファイルの関連づけや右クリックメニュー登録をやり直す方法

ue4.25.3をインストールしたときプロジェクトファイル(*.uproject)のue4への関連づけや右クリックメニューへのue4項目追加がうまく行われなかったので、その解決方法。概要: ランチャーの UnrealVersionSelector.exe をエンジンのバイナリフォルダ(UE4Edito…

UE4 / C++ / GitHubのUE4ソースでGenerateProjectFiles.batがエラーになる場合は

VisualStudioInstallerでWindowsのSDKをすべて入れると解決できた。Win10のSDKは最新版だけではだめだったようだ。検索ボックスでVisualStudioInstallerを起動し、VS2017の詳細>変更で、"C++によるゲーム開発"欄のWindows SDKを全部選択して変更ボタンで適…

UE4 / 不具合 / プラグインのチュートリアルBPを実行すると他プロジェクトがパッケージ化できなくなる

概要 プロジェクト内プラグインのチュートリアルBPを実行すると他プロジェクトがパッケージ化できなくなる 原因 チュートリアルBPを実行するとUE4共用の設定ファイル(EditorSettings.ini)にチュートリアルBPのパスとともに進捗データが書き込まれるため、そ…

UE4 / コンソールコマンド

パッケージ後にゲームの状態を確認したいときは@キーでコンソールコマンドを実行できる。 @を2回押せばコマンドの出力も表示できる状態になる(添付画像) コンソールを無効にする場合はプロジェクト設定で Engine > Input > Console のキー定義を削除す…

UE4 / C++ / Debug / エンジンのソース内でブレークポイントが使いたい場合

Epic Games Launcherでデバッグ用シンボルファイルをDLすれば可能になる。UnrealEngine > ライブラリ > 4.22(対象バージョン) > 「起動」横の▼ > オプション で「デバッグに必要なエディタシンボル(Editor symbols for debugging)」をダウンロードする。 空…

UE4 / 不具合 / パッケージ化 / ファイルが見つからないというエラーがでる場合

LogLinker:Warning:ファイル***が見つかりませんのような警告がでてパッケージ化が失敗するが、***のファイル自体がプロジェクトにない場合。 プロジェクトを新規作成してパッケージ化しても同じエラーがでるなら、 Windowsのユーザフォルダ ( C:¥ユー…

UE4 / C++ / windows用のコードを利用するには

std::stringなどの標準ライブラリや既存のwindows用コードを利用したい場合、単純に #include <windows.h> をするとUE4のTEXTマクロの再定義がおきてUE4側のコードがエラーになってしまう。 windows.hのかわりに、 #include "AllowWindowsPlatformTypes.h" //windowsコ</windows.h>…

UE4 / ライティングのビルドがいつまでも終わらない場合

大量にライトマップが作られていたり、大きすぎるマップになっていたりすることが原因である場合も。 事前計算するライトマップを減らすことで解決する場合がある。 シーンによっては、レベル上オブジェクトの可動性をステーショナルかムーバブルにするとビ…

UE4 / プロジェクトをzip圧縮

ファイル > プロジェクトをパッケージ化 > プロジェクトをzip圧縮 でプロジェクトをzip圧縮できる。Savedなど実行時に作られるファイルは自動的に除外されるので便利。pluginsは含まれない。 DefaultGame.iniで自動追加するように設定したパッケージ(スター…

UE4 / スターターコンテンツを省略して送付する

Config/DefaultGame.ini に以下の項目を追加すると指定したパッケージがプロジェクトの起動時に自動で追加される。 [StartupActions] bAddPacks=True InsertPack=(PackSource="StarterContent.upack",PackName="StarterContent")プロジェクトの送付時にStart…

UE4 / C++ / エディタでTickを有効にする方法

Actor派生クラスのヘッダでShouldTickIfViewportsOnlyをoverrideしてtrueを返せばエディタでもTickが動くようになる。 virtual bool ShouldTickIfViewportsOnly() const override { return true; };このアクタをレベル上に配置すると、エディタ上でもTickが…

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

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

UE4 / Material / カスタムノード

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

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

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

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

スポーン可能な場所を自動で探すなどに使える。 概要 ActorにBoxコリジョンコンポーネントを追加し、GetScaledBoxExtentでBoxのサイズを取得し、RandomPoint in BoundingBoxでBox内のランダムな位置を得て、LineTraceByChannelでなにかにヒットするまで繰り…

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

UE4ではビヘイビアツリーをつかって自動で動くキャラクタAIを実装することができる。 ビヘイビアツリーを作り、AIの記憶用にブラックボードを作り、AIコントローラにそれらをセットし、自動化したいキャラクタにそのコントローラを適用すると自動で動くキャ…

UE4 / Material / 風に揺れているように動かす

マテリアルでUE4に用意されている"SimpleGrassWind"ノードをワールドオフセットに接続すると風に揺れているように見せることができる。

UE4エディタでテクスチャを自動更新する方法

エディタ設定 > 一般 > ロード&保存中 > Auto Reimport > Monitor Content Directories を有効にすると元の画像ファイルが監視対象フォルダにある場合は、変更されると自動で再インポートされる。 監視対象フォルダの指定はDirectories to Monitor項目で指…

UE4 / ランチャーで対応プラットフォームを削減したあと実行不能になったときは

オプションでHTML5対応などを削除した場合、アクセス不能なHTML5フォルダが残って実行できなくなることがある。 Windowsからサインアウトし、再びログインすればHTML5などのフォルダが消えてUE4プロジェクトの実行が出来るようになる。

Format Textノードの書式指定は{}

日本語のノード名は「テキストをフォーマット」 format文字列に書式を指定する。{0}のように{}の部分が自動的に入力pinになる。 たくさんの値をまとめて表示するときなどに便利。 小数点以下の桁数指定のような機能はなさそう。書式例: "{0},{1}" pin0とpin…

BPの共通処理:マクロと関数の違いと速度比較

共通処理を書く方法はマクロと関数の2種類ある。 どちらも新しいノードとして利用できる。 毎回ノードを組むより楽になるし、処理の中身を調整するのも1回で済む。1つのノードにまとめることができるのでグラフが読みやすくなる。 速度計測してみると、ど…

UE4 C++ Tips

#includeでUE4のヘッダを読む場合は、ue4ソースの各Classesフォルダからの相対パスで指定できる。 runtime/Engine/Classes/Engine/Blueprint.h は #include "Engine/Blueprint.h" Sourceフォルダのコピーだけでは使えない uprojectにmodulesを追加する必要が…

複数のマテリアルに共通の設定値を用意するには

マテリアルパラメータコレクション(Material Parameter Collection : MPC)を使う。 スカラ値とベクタ値が利用可能。BPから値の参照や変更もできる。 ワールド内の風速やプレイヤーの位置など全体に影響するようなパラメータに利用すると一括操作できて便利。

やけに空き容量が減る場合の対処

4Kテクスチャなど大きいデータを使うプロジェクトを何度も編集しているとDerivedDataCacheが数十GBになってしまうことがある。 場所はユーザーフォルダ(C:¥ユーザー¥????など)の AppData/Local/UnrealEngine/Common/DerivedDataCache

BPでメッシュ作成(プロシージャルメッシュ)

概要:アクタにProcedualMeshコンポーネントを追加し、BPで配列でメッシュデータを用意して、CreateMeshSection。作成されたメッシュはStaticMeshとして保存もできる。 以下詳細

マテリアル:Mathノードの一覧

Abs 絶対値 Add 加算 Max 最大値 Min 最小値

注意点:アセットのUEバージョン依存は編集で更新される

BPクラスやマクロライブラリなどのアセットファイル(*.uasset)は、編集すると編集したバージョン以前のUEでは認識されなくなる。たとえ内容が一緒でも保存しただけでバージョンが更新されてしまう。

効率化:複数のアセットの設定値を一括指定する方法

コンテンツブラウザで複数選択し、右クリック>Asset Actions>Property Matrix(プロパティマトリックスで一斉編集) 現在のプロパティ値の一覧が表示され、右側の設定欄で一括設定できる。