2022-04-01から1ヶ月間の記事一覧

【UE5】Spring Arm を使いこなす

主にオブジェクト間の距離を調整するために使われる Spring Arm というコンポーネントがあります。ThirdPerson テンプレートでも BP_ThirdPersonCharacter 内でカメラとキャラクターの距離を調整するために使われています。よくカメラとキャラの間に使われが…

【UE5】Wind Directional Source を使ってクロスを揺らす

『風』を起こす方法の1つとして、Wind Directional Source Component を使う方法があります。 このコンポーネントは、Cloth や Speed Tree に影響を与える風を作ることができて、大分昔に Unreal Engine に追加されました。UE5 になり Chaos Cloth になった…

【UE5】BP で Float から Int へ変換する際の注意

C++ で Float値(実数)から Int値(整数)に直接代入する際に小数が切り捨てられるのと同様にブループリントでも Float ピンを Int ピンに直接繋げると Truncate ノードが間に生成され、切り捨てられます。1.1 → 1 1.9 → 1 変換時に切り上げや四捨五入した…

【UE5】ARでカメラに3Dオブジェクトが追従してしまう場合の対処法

AR プロジェクトをパッケージし、実際に実機で動かすと端末を持って物理的に動いてもレベル上のアクター(3Dオブジェクト)がどこまでいってもついてきてしまう場合があります。この現象に遭遇した場合、PlayerController に紐づいている Pawn にカメラがぶ…

【UE5】意図的に特定のスレッドをスリープさせる

FPlatformProcess::Sleep を使うことで実行したスレッドを指定した秒数、スリープさせられます。意図的にスリープし、他スレッドの処理や外部の処理を待ちたい場合などに使えるかと思います。 #include "HAL/PlatformProcess.h" bool wait = true; while (wa…

【UE5】エディタ上でUVの編集

UE5 から UV Editor というプラグインが追加され、エディタ上で UV を編集できるようになりました。 ※ まだ実験的機能(Experimental)となっています。 プラグインを有効にして、コンテンツブラウザから Static Mesh か Skeletal Mesh アセットを右クリック…

【UE5】エディタでプレイ中か判定する

UWorld の EWorldType を確認すると現在のワールドの状態を取得することができます。ワールドの状態は以下のものがあります。・None ・Game ・Editor ・PIE ・EditorPreview ・GamePreview ・GameRPC ・Inactive この中でも Editor と PIE を使うことで、エ…

【UE5】ブループリント公開の関数を protected 扱いにする

ブループリントで作った関数であれば Access Specifier を Protected にすることで他のクラスからのアクセスを制限できます。 C++でも下のように定義すれば protected 扱いになると思いきや、BP側では他のクラスからもアクセスできてしまいます。 protected:…

【UE5】押す長さによってジャンプの高さを変える

Character クラスのジャンプの挙動はデフォルトだと、ジャンプボタンを押して Jump 関数が実行され、毎回決まった高さまでジャンプします。これを押す長さによって高さが変わるように実装したいと思います。 1.Third Person テンプレートでプロジェクトを…

【UE5】const関数をPure扱いにしない方法

下のような const関数 の場合、ブループリントグラフ上では Pure 扱いとなります。 UFUNCTION(BlueprintCallable) TArray<AActor*> GetEnemyActors() const; しかし、Pure関数は戻り値が参照される度に評価(実行)されるため、上の画像のケースのような場合だと処理</aactor*>…

【UE5】マテリアルでメッシュを回転させる

FixRotateAboutAxisNormals と RotateAboutWorldAxis_cheap というマテリアルファンクションを使うことで回転させることができます。 下のように組みました。 こんな見た目になります。 RotateSpeed を変更することで回転速度が変わります。 RotateAxis を変…

【UE5】ポーズ中にカメラを動作させる

ポーズ中にカメラを動かす方法を書いていきます。 いわゆるフォトモードの実装とかの参考になればと思います。 ポーズ中にアクターを動作させる まずはポーズ中に動かしたいアクターの設定をしていきます。 今回はカメラのみ動作させる想定なのでカメラアク…

【UE5】エディタのレイアウトの保存と読み込み

Window タブの Layout カテゴリから、エディタのレイアウト(各ウィンドウの配置)を保存 / 読み込みすることができます。 デフォルトのレイアウトから自分好みに変更したり、作業やプロジェクトによって変更することで作業の効率化に繋がるかと思います。 …

【UE5】State Alias を使ったアニメーションステートの制御

Unreal Engine ではステートマシンを使うことでアニメーションを状態ごとに制御することができます。docs.unrealengine.com ステートマシンでは State ノード同士を繋げて各ノードの間に遷移条件を追加してアニメーションを制御しますが、UE5 からは加えてSt…

【UE5】サブメニュー内で検索する

UE5 からタブ選択時や右クリック時に表示されるサブメニュー内で検索がかけられるようになりました。サブメニュー表示中に文字を入力すると検索バーが表示され、文字列を含む項目だけ表示されるようになります。 UE Version : 5.0.0-19505902

【UE5】Console Variables Editor プラグインを活用する

UE5 から Console Variables Editor プラグインが追加されました。よく使うコンソールコマンドをアセットにまとめて、コマンドを入力せずボタンから実行したり、値をスライダーで操作したりできるようになります。 1.プラグインの有効化 プラグインを有効…

【UE5】ノードごとにコンパイルオプションを設定する

ブループリントに公開する関数ではメタ指定子で DevelopmentOnly と付けることで Shipping ビルド時にコンパイルから除外することができます。ブループリント上でもわかりやすく、ノードの下部に Development Only と表示されます。 UFUNCTION(BlueprintCall…

【UE5】任意の形の影を表示する

UE4.22 で追加された Shadow Pass Switch ノードを使えば任意の形の影を出すことができます。 UE Version : 5.0.0-19044958

【UE5】Json Blueprint Utilities プラグインを活用する

UE5 から Json Blueprint Utilities プラグインが追加されました。今まで C++ でしか扱えなかった Json のパースなどが BP でも可能になります。プラグインから提供されている各ノードの機能について書いていきたいと思います。 ↓ 記事内で使う Json文字列 …

【UE5】Niagara のノート機能を活用する

Niagara エディターではモジュールごとにノートという機能を使ってコメントを付けることができます。ノートを追加したいモジュールを右クリックして、Add Note を選択します。 Selection ウィンドウにノートを記入する項目が表示されるので、タイトルとメッ…

【UE5】Emitter Summary を活用してパラメータをまとめる

UE5 から Niagara Emitter に Emitter Summary という機能が追加されました。 任意のパラメータを Summary に登録して一覧化することができます。(ブックマーク機能みたいな) 追加したいパラメータの上で右クリックし、Show in Emitter Summary を選択しま…

【UE5】画像をピクセル化するマテリアルファンクションを作る

以下のようなシンプルなマテリアルファンクションを作りました。 テクスチャノードのUVに繋ぐとピクセル化されます。 UE Version : 5.0.0-19505902

【UE5】エディターのパフォーマンスを表示

Editor Preference > Performance > Show Frame Rate and Memory を有効にすることでエディターの上部にパフォーマンス情報が表示されるようになります。FPS: フレームレート Mem: メモリ使用量 Objs: オブジェクト数 Stalls: エンジンストール数 UE Version…

【UE5】アウトプットログに色付け

アウトプットログをカテゴリごとに色付けして見やすくすることができます。アウトプットログが表示されていない場合は [Window] タブからウィンドウを出すことができます。 ハイライト表示 アウトプットログでハイライトしたいログカテゴリの上で右クリック…

【UE5】マテリアルノードを折りたたんでまとめる

ブループリントグラフ上でノードを選択し、右クリックから Collapse Nodes を選択するとノードを折りたたんでまとめることができます。 関数やマクロは作られないのでその場のノードをまとめて視認性を上げるために使えます。 UE5 からはマテリアルグラフ上…

無料UEコンテンツ紹介23「2022年4月の無料コンテンツ」

今月の無料アセットを紹介します。 購入(無料)しておけば、永続的に使用できるので購入だけでもしておくのをおすすめします。先月の紹介記事↓ shuntaendo.hatenablog.com VP Real Food and Coffee Bakery Modular Concert Stage Medieval Houses Modular V…

【UE4】デバッグ表示ができる独自のNiagaraModuleを作る

UE4.27 から "Box Location" モジュールや "Sphere Location" モジュールなどでデバッグ表示ができるようになりました。 モジュールを追加後、キューブのアイコンからトグルできます。 今回はこのようなモジュールを作っていきます。 1.モジュールアセット…

【UE5】BP公開の関数のパラメーターを参照だけど入力として扱いたい場合

void AMyActor::AddScore(int32& Score) { Score++; } このような関数を書いた場合、C++では問題なく使えるがBPでは下の画像のように出力ピンとして公開されてしまい、値を渡すことができない。 このような場合は、UPARAM(ref) というメタ指定子を引数につけ…