fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

2021年03月 | ARCHIVE-SELECT | 2021年05月

| PAGE-SELECT | NEXT

≫ EDIT

UE4 カスタムイベント(Custom Event)を関数に変換する

イベント(Event)を関数に変換する方法です。

こんな感じで「EventFunction」というカスタムイベントを作成しました。
イベントを関数に変換000

このカスタムイベントを右クリックして「イベントを関数に変換」を選択します。
イベントを関数に変換001

するとこんな感じでカスタムイベントが関数に変換されました。
イベントを関数に変換002

そんなに使う機会はないかもしれませんが
もしも変換したい時がきたらこの機能を使うとスムーズにいきそうです。

| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 平面(Plane)の構造体を位置と法線から作成する(Make Plane from Point and Normal)

平面(Plane)の構造体を位置と法線から作成する方法です。

こちらを参考にしました。

・Make Plane from Point and Normal
https://docs.unrealengine.com/en-US/BlueprintAPI/Math/Plane/MakePlanefromPointandNormal/index.html

平面(Plane)の構造体は以下のようになっています。
平面を位置と法線から作成000
WXYZって何を指定したらいいんだろうとなったので調べてみました。

・Make Plane
https://docs.unrealengine.com/en-US/BlueprintAPI/Utilities/Struct/MakePlane/index.html

こういうの結構あるんですが公式ドキュメントのノード説明のやる気のなさがすごい…。

というわけでいろいろ調べていくと
「Make Plane from Point and Normal」という
位置と法線から平面(Plane)の構造体を作成
するノードがありました。
平面を位置と法線から作成001
こちらがすごくわかりやすかったです。

こちらを使って作成した平面がこちら。
DrawDebug点と平面001

無事平面の構造体がつくられていました。

| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 BPで3D空間上に図形をデバッグ表示する(Draw Debug Arrow、Draw Debug Box、Draw Debug Capsule、Draw Debug Circle、Draw Debug Cone、Draw Debug Cylinder、Draw Debug Line、Draw Debug Sphere)

BPで3D空間上に図形をデバッグ表示する方法です。

こちらを参考にさせていただきました。

・【UE4】覚えておくと便利?かもしれないまとめ
https://argonauts.hatenablog.jp/entry/2021/03/25/203400

「Draw Debug ~」系のノードがあったのですね。
これを使うと、決められた図形を指定した時間だけ画面上にデバッグ表示ができます。

図形で使えるデバッグ表示ノードはこちら。
DrawDebug図形000

≫ 続きを読む

| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 整数と浮動小数の数値の比較結果で分岐するマクロのフローノード(Compare Int、Compare Float)

整数と浮動小数の数値の比較結果で分岐するマクロのフローノードの説明です。

こちらのツイートを見て知りました。
「Compare Int」と「Compare Float」というフロー系のマクロノードがあるようです。

「Compare Int」と「Compare Float」マクロノードはこんな感じになります。
数値比較マクロ000
どちらも「Input」の入力と比較する値を設定するようです。
結果が「>」「==」「<」の三つのどれになるかで処理を変更できるようです。
「>=」などの場合は二つの出力を使うといった感じでしょうか。

「Compare Int」はこんな感じに使います。
「Make Literal~」の部分は本来変数の入力になります。
数値比較マクロ001

「Compare Float」はこんな感じに使います。
「Make Literal~」の部分は本来変数の入力になります。
数値比較マクロ002
「Compare Float」の場合は「==」は0.0以外では機能しなさそうな気もしますが…。

速度はともかくとして、比較系はノードが煩雑になりやすいので使ってもいいのかなと思います。
こちらの方が見やすいところではありますね。

| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 UMGのBPでキーボードなどのアクションマッピング(ActionMappings)された入力を受け取る(Listen for Input Action)

UMGのBPでキーボードなどのアクションマッピング(ActionMappings)された入力を受け取る方法です。

こちらを参考にさせていただきました。

「Listen for Input Action」ノードを使うことでUMGのBP内で入力を受け取ることができるようです。

「Listen for Input Action」ノードを調べてみたのですが日本語ドキュメントは見当たらず…。
UMG内で入力の取得001
「Action Name」はアクションマッピング(ActionMappings)で設定した定義名ですね。
「Event Type」はどういった入力を受け取るかのようです。
「Consume」はよくわからないのですね…。チェックを入れても挙動が変わらず…。
「Callback」で入力が検知された時の処理を記載します。

実際に使ってみるとこんな感じに。
UMG内で入力の取得000
「Jump」という定義のボタンが押されたら「Jump!!!!」と表示されるようにしてみました。

結果はこんな感じに。
UMG内で入力の取得002
問題なく動いているようです。

使ってみた感じツイートで書かれている通り、これが一番シンプルじゃないかなーと思ったりはします。
とはいえ入力がBPで独立してしまうので、
他と連携する場合はまた違う方法のほうが良いのかなーと思ったりはしました。

| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 Tick 処理を行うか(Start with Tick Enabled)のデフォルト値を設定する(Can Blueprints Tick by Default)

Tick 処理を行うか(Start with Tick Enabled)のデフォルト値を設定する方法です。

こちらのツイートを参考にさせていただきました。
プロジェクト設定から設定できるようですね。

「編集」の「プロジェクト設定」を開きます。
Tickのデフォルト値001

「エンジン」の「基本設定」の中にある
「デフォルトでブループリントでティック可能(Can Blueprints Tick by Default)」を設定
します。
Tickのデフォルト値000
チェックありで「Start with Tick Enabled」がデフォルトでオンになります。
チェックなしで「Start with Tick Enabled」がデフォルトでオフになります。

最終的な処理負荷のことを考えると手間的にも
「Start with Tick Enabled」はデフォルトがオフがよいかもしれないですね。

| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 UMGでアニメーション再生の終了をBPで検知して処理を行う(Play Animation with Finished Event)

UMGでアニメーション再生の終了をBPで検知して処理を行う方法です。

こちらのツイートを参考にさせていただきました。

「Play Animation with Finished Event」ノードというものがあるようです。
UMGでアニメーション終了の取得ノード001
「Play Animation」ノードとほぼ同じ構成で「Finished」の出力があるようですね。

実際に使うとこんな感じになります。
UMGでアニメーション終了の取得ノード000
Widget と Animation を入力して Finished 先で処理を行う。といったものですね。

これを使ってみた感じだと、Play Animation を使わなくて
全部 Play Animation with Finished Event でいいような気がするのですがどうなんでしょうか。

| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 BPで3D空間上にカメラアクター(Camera Actor)をデバッグ表示する(Draw Debug Camera)

BPで3D空間上にカメラアクター(Camera Actor)をデバッグ表示する方法です。

こちらを参考にさせていただきました。

・【UE4】覚えておくと便利?かもしれないまとめ
https://argonauts.hatenablog.jp/entry/2021/03/25/203400

「Draw Debug ~」系のノードがあったのですね。
これを使うと、カメラアクターを指定した時間だけ画面上にデバッグ表示ができます。

「Draw Debug Camera」というノードがあります。
DrawDebugカメラアクター000
3D 空間上に指定したカメラアクターを表示するもののようです。

とりあえず画面にカメラアクターを配置します。
DrawDebugカメラアクター002

このカメラアクターを「Draw Debug Camera」ノードで表示してみます。
DrawDebugカメラアクター003

結果がこちら。
DrawDebugカメラアクター001
小さいですが無事3D空間上に表示されています。

ちゃんと処理が実行されているかなど、
デバッグ表示系はとても助かるのでこういったものは駆使していきたいですね。

| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 描画のみの更新を止める(show Rendering、UGameViewportClient > EngineShowFlags > SetRendering())

描画のみの更新を止める方法です。

こちらのツイートから気になったので調べてみました。

こちらを参考にさせていただきました。

・【UE4】ポーズ中に描画の更新のみを止める
https://shuntaendo.hatenablog.com/entry/2018/07/19/214506

コンソールコマンド「show Rendering」でトグルするか、
「UGameViewportClient > EngineShowFlags > SetRendering();」 で値を設定
できます。


というわけでBPで実装できる「show Rendering」を試してみました。
BP からは「Execute Console Command」で実装しました。
描画のみを停止する001

実際にはこんな感じで「P」キーを押すたびに描画の更新が停止・再開を繰り返すようになっています。
描画のみを停止する000

結果はこんな感じになりました。

動画だけだとフレームスキップしているだけのようにも見えるのですが
描画が停止しても裏ではキャラクターが動いているので、再開したときにキャラクターの位置などが変わっています。

注意点としては

どちらの方法でも UMG は通常通り動きます。

でしょうか。
ここらへんは、UMG 特有の部分でもあるので注意が必要そうですね。

結構用途としては使うことはありそうな気もするので覚えておきたいですね。

| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 BPで3D空間上に文字列をデバッグ表示する(Draw Debug String)

BPで3D空間上に文字列をデバッグ表示する方法です。

こちらを参考にさせていただきました。

・【UE4】覚えておくと便利?かもしれないまとめ
https://argonauts.hatenablog.jp/entry/2021/03/25/203400

「Draw Debug ~」系のノードがあったのですね。
これを使うと、「Print String」のように指定した時間だけ画面上にデバッグ表示ができます。
3D 座標版ですね。

「Draw Debug String」というノードがあります。
DrawDebug文字列000
3D 空間上にテキストを表示するもののようです。

実際にやってみました。
DrawDebug文字列002
「Hello World」という文字列を10秒間指定した位置に表示するといったものです。

結果はこんな感じに。
DrawDebug文字列001
小さいですが無事文字列が3D空間上に表示されています。

ちゃんと処理が実行されているかなど、
デバッグ表示系はとても助かるのでこういったものは駆使していきたいですね。

| UE4 | 10:00 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT | NEXT