投稿記事

UE5の記事 (52)

わんころのUE5勉強会 2024/09/06 01:56

【UE5】Niagara の Emitter Summary(エミッタの概要)でプロパティを整理する

※ 本記事では UE5.3.2 を利用しています

Niagara のエミッタで利用できる「エミッタの概要(Emitter Summary)」についての記事です。
見たことはあったのに使い方は知らなかったのですが結構便利な機能だったので取り上げてみました。

エミッタの概要の機能

Niagara でエフェクトを作成していると、良く触るのにどのモジュールの中にあったっけ...と探したりすることがありました。
この機能を使うことでお気に入り登録のような感じで自分で使いやすいようにカスタマイズできるのがこの機能です。


どういう時に使えそうか

個人制作では、よく使うプロパティを見つけやすくするのが基本かなと思いました。共同制作をされている場合は調整してほしいプロパティを明示するために登録したりもできるかな?と思いました。


サマリビュー


コンテンツブラウザで右クリック>「Niagara システム」をクリックし、"選択したエミッタに基づく新しいシステム" から、Directional Burst を選択して作成した Niagara の画像です。


エミッタの中にある「エミッタの概要」をクリックすると[サマリを編集]というボタンが表示されます。
クリックするとサマリビューというウインドウが表示されます。



開いた時点で、このエミッタで使われている各モジュールに対応したリストやフィルタ用のボタンが用意されています。

右側が切れていますが、セクションを追加/カテゴリを追加 という所に必要なものを登録していくような流れになっています。
今は何も登録してないため右側は空になっています。


サマリビューに登録


今回は "Initialize Particle" を例に見てみます。
エミッタとサマリビューの "Initialize Particle" をそれぞれクリックした時の画像です。

サマリビューには [入力] が付いたものとそうでないものが存在します。

[入力]Lifetime
[入力]Lifetime Min
を例に挙げると直接数値が入力できるプロパティを示しているようです。



左側のリストから画像の位置へドラッグすると必要なプロパティが登録できます。登録されると南京錠のアイコンが表示されました。
試しに Lifetime, Lifetime Min, Lifetime Max の3つを登録しました。


「エミッタの概要」を確認してみると、登録されたものだけ一覧で表示されますが Lifetime だけ表示されていません。


これは "Initialize Particle" の Lifetime Mode が [Random] か [Direct Set] で入力可能なプロパティが変化するためでした。

現在 [Random] になっているため「エミッタの概要」の方でも連動して Lifetime Min, Lifetime Max しか出ていません。
[Direct Set] にすると Lifetime だけ表示されます。

ただ「エミッタの概要」だけ見た時、どっちが選択されているか分かりづらいので、下記方法でプルダウンのメニューも一緒に登録しておく方がいいと思います。



[入力] とついてないものはプルダウンメニューになっているようです。

今回の場合は Lifetime Mode を親にし、その下に [入力] と付いたプロパティを追加することで「エミッタの概要」も見やすくなります。

画像に注意点を記載しましたが、階層を弄ったりしていると「エミッタの概要」に反映されていないことがあるのでその場合は Niagara Editor のタブを一度閉じて開き直すか、反映しないものを消して再登録することで反映するようでした (コンパイルでは反映しなかったです)


サマリビューの登録を便利にするTips

サマリビューから手動で登録する時、名前順でもなければ、プルダウンメニューに関連しているプロパティ毎に並んでいる訳ではなさそうでした。


先程の画像ですが Lifetime Mode に関連するものが順番に並んでいないです(Mesh Renderer とか Sprite Size Mode が間にあって見にくい)

他にいいやり方があるかもしれませんが、下記方法で登録するのが分かりやすかったです。


モジュールのプルダウンメニューを右クリックから登録


別のプロパティで "Color Mode" を例に挙げてみます。
右クリック> 追加先エミッタサマリ をクリックするとサマリビューに登録されます。

サマリビューで子入力を追加する


サマリビューに登録された "Color Mode" を右クリックし「子入力を追加」すると、画像のように関連する入力プロパティが一気に追加されます。追加漏れとかを考えるとプルダウンメニューと連動するものを一気に追加する場合はこっちの方がいいかもしれないですね。

おまけ

UE5.4 で機能追加?


UE5.3.2 ではモジュール側で [入力] プロパティを右クリックで追加しようとしてもメニュー内に存在しませんでしたが、UE5.4.4 で確認するとメニューが追加されていました。

セクションとカテゴリ


セクションと呼ばれる、フィルタ用のボタンを自分で作成したり、見やすいようにグループ分けすることが出来るカテゴリを追加したりも出来ます。


セクションへの追加方法があれ?と思ったので一応記載しました。
セクションへ追加をするには作成したカテゴリをドラッグして追加するようです。

サマリビューの左側にある各プロパティは直接追加出来ないようでした。カテゴリをフィルタするためのボタンがセクションということになりそうです。


Display Name/Tooltip Override


プロパティ名やマウスオーバー時の Tooltip を自分で設定も可能です。
デフォルトのままでもいいと思いますが、変えるなら分かりやすい名前にした方がいいと思います。

それではまた!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2024/07/25 22:02

【UE5】レベルシーケンサの再生と逆再生をBlueprintで制御する検証

皆様、こんばんは!

以前、レベルシーケンサの再生や逆再生など、再生周りの操作を Blueprint を使って遊んでた時のプロジェクトを改めて起動し、機能追加とかしてみようと思ってたのですが、個人的によく分からない部分もあったため備忘録として残しておきます。

やることはレベルシーケンサにアニメーションシーケンスを入れて再生などしたものです。

本記事はただの検証とその結果を書いた記事なので、いつも以上によく分からないことが沢山書かれているので注意して下さい!

UE 5.1.1 で作成してます。


適当なレベルシーケンスを用意


シーケンサの作成が本題ではないので詳しい内容は割愛しますが、 MF_Run_Fwd(走りアニメ) を使って左から右に移動させるものを作成してます。

再生をコントロールする UI を作成


コンテンツブラウザで右クリック> ユーザーインターフェース> ウィジェットブループリント と選択し WBP_Sequence というものを作成しました。

UI の構成はこんな感じにしています。
ボタンの見た目や名前と内部の処理が一致してませんが、各UIの役割は以下の通りです。

Stop(Button):押すと一時停止します。

Play(Button):押すと再生します。一時停止中の場合、その場から再生を再開します。

PlayBack(Button):押すと逆再生します

PlayForward(Button):押すと通常再生に戻します(機能は Play と同じですが、実装に使った関数が違い、挙動の違いが確認出来ました。後述しています。)

Seekbar(Slider):スライダを動かすことでスクラブ(再生位置を調整)する機能です。


レベルシーケンスを変数にして使いやすくする


WBP_Sequence のグラフで右クリックし「On Initialized」を出し、「Set Input Mode UI Only」+「Set Show Mouse Cursor」で UI 専用の操作にしてみました。

※ 今回の例だと「On Initialized」ではなく「Construct」でも同じですが、初期化の処理は1回実行されればいいので「On Initialized」を利用しました。

更に「Create Level Sequence Player」の Return Value から変数へ昇格し、以降シーケンサのあれこれはこの変数を利用します。
(最初スクラブのテストをしていたので変数名は Scrub Sequence としています)



「On Initialized」の続きの部分です。

先程変数へ昇格した Scrub Sequence から引っ張り「Get End Time」を出します。この Return Value は "Qualified Frame Time 構造体" になっており、構造体を分割をすると表示される Value(Integer型)でシーケンサの最終フレーム(時間?)を取得できます。
これも変数に昇格し "End Frame" という名前にしました。

最後に Seekbar から引っ張り「Set Max Value」の "In Value" ピンに「Get End Time」で取得した値を渡し、スライダの最大値をシーケンサの最終フレームと同じにします。


"End Frame" に入る具体的な値ですが、この例だと 72 になります。


そしてレベルブループリントで「Create Widget」から「Add to Viewport」し、開始時にシーケンサを再生する冒頭の動画の挙動ができます。後は UI の操作と連動する部分を作成していきます。

再生・一時停止



再生は「Play」、一時停止は「Pause」を利用するだけなので簡単です。「Stop」という関数もありますが、これは停止後に「Play」すると最初から再生されるので挙動が違います。

また、シーケンサが最後まで再生された後にもう一度「Play」を呼ぶと最初から再生になります。


余談ですが、再生ボタンをクリックすると一時停止のアイコンに変わり、もう一回クリックすると再生のアイコンに変わるような、1ボタンで「Play」⇋「Pause」を切り替えれる UI がいいかなと思いました。


逆再生・順再生



逆再生は「Play Reverse」という関数が用意されており、呼ぶと現在の再生位置から逆再生が始まります。

順再生は普通の再生と同じく「Play」を呼んでいるため、現在の再生位置から普通に再生を再開しているという挙動です。

気になる点がありまして、この動画の5秒あたりで「Play Reverse」を呼んでシーケンサの最初に戻った所に注目すると、開始位置に戻っているのにピタッと止まってないことに気づきました(少し長めにアニメーションが再生されている)

また、順再生の方も同じくシーケンサの最後まで再生された時にピタッと止まってませんでした。

理由はよく分からないが原因は分かった


MF_Run_Fwd の0フレーム目(開始時)に Anim Notify を仕込み、アニメーションが開始した瞬間が分かるようにしました。

なぜそういう挙動になっているのかは分かりませんでしたが「Play Reverse」でシーケンサの最初に戻った時に MF_Run_Fwd(走りアニメ)が再生されていたのが原因でした。

画像にはないですが、同じ手法で MF_Run_Fwd 終了時にも Anim Notify を仕込んでシーケンサを最後まで再生させると同じくアニメーションが再生され続け、その終わりで Anim Notify が実行されました(シーケンサの終了より少し遅れて Anim Notify が実行された)

細かい所ですが仕様的にそういうもんじゃないか...という気持ちを抑え、どうにかシーケンサと連動してアニメーションがピタッと止めれないかと色々確認してみました。


検証1:When Finished で挙動が変わる


この挙動ですが、レベルシーケンス上に追加したアニメーションを右クリック> セクションの編集> When Finished を "Keep State" にしているとこうなるようでした。

これはシーケンサの再生が終わった時に固定したいものがある時に利用するプロパティです。例えばドアを開けるカットシーンがあった時に、ドアを開きっぱなしにしておくなどが出来ます。

"Keep State" を "Restore State" に変更した時の挙動がこちらです。

ピタッと止まりましたが Idle になりました。走りアニメーション中に止まって欲しかったので想定してた結果にはなりませんでした。

"Restore State" は再生する前の状態に戻ります。
ドアの例だと、シーケンサの再生が終わったらドアが閉まった状態に戻ります。

検証2:「Play To」を使って解決


※上記の「Play Reverse」「Play」を「Play To」に置き換えた画像


※元の「Movie Scene Sequence Playback Params を作成」

When Finished を "Keep State" にしている挙動の方が理想だったので "Keep State" のままで何か出来ないかも確認していると「Play To」を使うことで解決出来ました。

「Play To」の "Playback Params" 入力ピンから引っ張り、「Movie Scene Sequence Playback Params を作成」を出して構造体ピンを分割した状態の画像です。

「Movie Scene Sequence Playback Params を作成」の "Position Type" が [Frame] の場合、Frame Number の Value の値を利用するようです。


この数値はレベルシーケンサ上のフレームと同じ扱いのようです。
UI の逆再生ボタンを押すと「Play To」で現在の再生位置から 0フレームへ向けて再生されるので実質逆再生になります。

順再生ボタンを押すと、今回 End Time が 72 のシーケンサなので、現在の再生位置から72フレームへ向けて再生されるので順再生になりますが、「Play」と違い 72フレーム目に来た時ピタッと止まります。

▼ それがこの動画です

動画の最後に、逆再生後に普通の再生(「Play」を呼ぶ)ボタンを押した時は最後がピタッと止まってないことが確認できます。


検証結果:「Play」「PlayTo」


なにかの設定等で回避出来たのかもしれませんが、とりあえず今回の検証で分かったことは、再生するアニメーションを Keep State にして「Play」でシーケンサの最後まで再生した場合そのアニメーションの1サイクルが終わってないとそのまま再生され続けることが分かりました。

「Play Reverse」で逆再生した時、0フレームに戻ったタイミングでそのアニメーションを再度再生して止まるという結果になりました。


アニメーションの1サイクルとは画像で示したシーケンサ上の「|」こんなアイコンの所です。今回のシーケンサでは2サイクル目のアニメーションが再生されますが、2サイクル目が終わる前にシーケンサが終了してしまうため、残りのアニメーション終了まで再生されたということだと思います。

「Play」と「PlayTo」で何か処理が違うんですかね...
今まで「Play」「Stop」「Pause」くらいしか使ったことなかったので色々知れて勉強になりました。


スライダを使ったスクラブで再生位置を調整


こんな感じでスライダを使って再生位置を変更できます。
再生中のスライダが連動して動いていませんが、シーケンサの現在の再生位置を取得し続けるような仕組みをどう実装すればいいか分からなかったため今回は未実装になりました。

後述する「Set Playback Position」を WBP_Sequence の Tick で使えばそれっぽい挙動は出来たのですが、一時停止中などシーケンサを止めている場合でも常に実行され続けるため余分な処理が続くな...と思いました。



完成した Blueprint を先に貼っておきます。
先程スライダ(変数Seekbar)の「Set Max Value」を End Time である 72 に設定したのでスライダの値は 0~72 の間になっています。

スライダの値をそのままシーケンサのフレームへセットすることで実現できます。


「On Value Changed」はスライダの値が変更される度に呼ばれます。スライダを左右に動かしている間も値が変わるので呼ばれます。

Scrub Sequence から引っ張り「Set Playback Position」を出します。これがシーケンサの再生位置を直接変更できる関数のようです。

これも構造体ピンを分割していき、Frame Number の Value に「On Value Changed」で変更された値 Value を繋ぎます(Float から Integer への変更のため、切り捨ての Truncate が使用されています)

「Play To」の時も出てきましたが、"Position Type" が [Frame] の場合、Frame Number の Value の値を利用するようです。


「On Mouse Capture Begin」はスライダ上をクリックした時に1度呼ばれます。そのままスライダを動かしている間は呼ばれません。
こちらはスライダをクリックした時に「Is Playing」でシーケンサが再生されているかチェックし、再生中であれば「Pause」を使って一時停止させています。

「On Mouse Capture Begin」の方が先に処理されますが、スライダ上をクリックした = 値が変わったという事でもあるのでその後「On Value Changed」も処理されます。

スライダの値を再生位置の指定にそのまま使えるので処理自体は結構簡単ですね。

おわりに

この検証ですがネットで調べても全然情報がなく色々なノードや設定を変更してこういうことなのかな...というのが分かったのですが個人的にかなり苦戦してました。

例えば「Get End Time」で取得した 72 という数値。これは記事にあったシーケンサの最終フレームを取得出来ます。

しかし「Play To」や「Set Playback Position」で値をセットしたのは Frame の Value が使われています。取得は Time でセットが Frame だったので混乱してました。

そして "Position Type" の [Frame] で、[Time] を選ぶこともできるんですが、その場合は Time の値が利用されます。Frame の Value に何を指定していても関係なくこれも混乱していた原因の一つです。

しかも構造体ピンを分割とかしないと見つけられないこともあり、最初これを何に使うのか?むしろ使わない?ということも含め全然わかりませんでした...

そしてシーケンサの0フレーム・最終フレームへ到達した時のアニメーションがピタッと止まらない等々、分からないことが続いていたとは言えかなり勉強になりました。

場合によっては「Play To」での再生もいいかもしれないなということで今回は終わりにします。


それではまた!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2024/01/09 19:09

【UE5】プロジェクト起動時のエラーFailed to load special material~

経緯

別プロジェクトにあった Static Mesh を本プロジェクトへ移行し、モデリングモードで Pivot の位置を修正しようとしたところ UE が落ち、もう一度同じことをしたら再度落ちました。

それ以降、プロジェクト起動時に下記エラーで起動しなくなってしまいました。


エラー内容

Fatal error: [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\UnrealEngine.cpp] [Line: 2852] Failed to load special material 'InvalidLightmapSettingsMaterialName' from path ''.
(' ' で囲われた部分はエラーによって違う可能性があります)

指定のマテリアルがうまくロードできなかったエラーなんでしょうか。


方法1:プロジェクトのバージョンを上げる


プロジェクトのあるフォルダを開き .uproject ファイルを右クリック>「Switch Unreal Engine version」をクリックします。


現在のプロジェクトより上のバージョンを選択した後、再度プロジェクトを開き直すと問題はありませんでした(例えば 5.1> 5.3)
プロジェクトのバージョンアップが望ましくない場合は下記手順でも回避できました。

方法2:iniファイルを少し編集する

※ プロジェクトは開きましたが、これでいいのか判断できないため自己責任でお願い致します。


"開かないプロジェクト"/Saved/Config/WindowsEditor 内にある「Engine.ini」を開いて下記の行を探します。

[/Script/Engine.Engine]
InvalidLightmapSettingsMaterialName=None

この二行を削除するとプロジェクトを起動できるようになりました。


上記以外にも同じ名前はヒットしましたが関係なさそう?でした。一応記載しておきます。

"開かないプロジェクト"/Intermediate/Config/CoalescedSourceConfigs/Engine 内にある「Engine.ini」

"開かないプロジェクト"/Saved/Temp/Win64/Engine/Config 内にある「BaseEngine.ini」


参考リンク

https://forums.unrealengine.com/t/fatal-crash-loading-project-failed-to-load-special-material/302550/8


ここに記載されていた 「yourproject」/config!DefaultEngine.ini には上記の二行はなく、PreviewShadowIndicatorMaterial という単語もありませんでした。

私のエラーは「'InvalidLightmapSettingsMaterialName'」だったのですが、このフォーラムは「'PreviewShadowIndicatorMaterial'」だったのかもしれません。


参考になれば幸いです。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2024/01/09 12:00

【UE5】フォルダやコメントの色などで使うカラーを別プロジェクトでも使う

皆様、こんにちは!

今回は以前使ってたプロジェクト内で利用していたフォルダやコメントなどのカラー情報(下記画像)を別プロジェクトでも利用したい場合についてです。

他に方法があったら申し訳ございませんが、手動でのコピペ作業になっているので備忘録として残しておきます。
※2024-01-15 追記
プロジェクトごとに手動コピーしなくても共有できる方法があったため追記



↑これを別のプロジェクトでも利用したい

プロジェクトごとにコピーする

この後の作業でテキストをコピペするため、一応新しいプロジェクトを開いている場合は閉じておきます。

そして以前作成したプロジェクトフォルダの中に下記ファイルがあるので探します。

"Projectフォルダ"/Saved/Config/WindowsEditor の中にある
EditorPerProjectUserSettings.ini を開きます。
(ただのテキストデータなのでメモ帳などで開けます)


次に、検索(Ctrl+F)等を使い [ColorThemes] を見つけます。
フォルダやコメントのカラーを変更している場合は例えば下記のような感じで見つかると思います。

この [ColorThemes] 内にあるもの(画像だと「Theme0Label12=」まで)をコピーし、新しいプロジェクトにも同じ場所に EditorPerProjectUserSettings.ini があるので、空いてる場所のどこでもいいので貼り付けます。

保存して閉じ、新しいプロジェクトを開き直せばカラーピッカーの画面に色が反映されていると思います。


上記の方法を Engine や Project 問わず共有する

恒吉星光先生がこのようなポストをされていました。
https://x.com/seiko_dev/status/1745387005960425580?s=20

前述の方法では作成したプロジェクトごとにコピーをしなくてはいけませんでしたが、 恒吉星光先生の方法では Engine や Project 問わず共有する方法となっています!


ファイルを置く場所:
C:\Users\"User Name"\Documents\Unreal Engine\Engine\Config

Documents 以下のフォルダは私の PC にはなかったので、新規フォルダを上記階層になるように作成していきました。そして、Config フォルダ内に下記ファイルを置きます。


ファイルの名前:
UserEditorPerProjectUserSettings.ini

これも新規テキストファイルを作成し、名前と拡張子をこのように付けて保存すれば OK です。
(先程の EditorPerProjectUserSettings.ini のファイル名の頭に User がついただけです)

このファイルの中身に先程手動でコピーした [ColorThemes] の内容を張り付けて保存すれば、プロジェクトや UE のバージョン問わずカラーピッカーの情報が共有されます。

試しに UE5.1.1 と UE5.3.2 でそれぞれ新規プロジェクトを作成して確認した所、問題なく共有できていることを確認出来ました。
これで毎回必要な時にコピーする作業がなくなるので激熱ですね!


自分用メモ

[ColorThemes]
Theme0=新テーマ
Theme0Color0=(R=0.000000,G=0.000000,B=0.050980,A=1.000000)
Theme0Label0=
Theme0Color1=(R=0.000000,G=0.000000,B=0.356400,A=1.000000)
Theme0Label1=
Theme0Color2=(R=120.000000,G=0.902736,B=0.527115,A=1.000000)
Theme0Label2=
Theme0Color3=(R=112.332787,G=0.935911,B=0.262251,A=1.000000)
Theme0Label3=
Theme0Color4=(R=0.000000,G=0.861111,B=0.577580,A=1.000000)
Theme0Label4=
Theme0Color5=(R=0.000000,G=1.000000,B=1.000000,A=1.000000)
Theme0Label5=
Theme0Color6=(R=243.033600,G=0.906248,B=0.250000,A=1.000000)
Theme0Label6=
Theme0Color7=(R=243.033875,G=0.862021,B=0.658375,A=1.000000)
Theme0Label7=
Theme0Color8=(R=229.965408,G=0.950293,B=1.000000,A=1.000000)
Theme0Label8=
Theme0Color9=(R=0.000000,G=0.422420,B=1.000000,A=1.000000)
Theme0Label9=
Theme0Color10=(R=19.947052,G=1.000000,B=1.000000,A=1.000000)
Theme0Label10=
Theme0Color11=(R=165.337906,G=1.000000,B=0.799103,A=1.000000)
Theme0Label11=
Theme0Color12=(R=180.000000,G=0.787769,B=1.000000,A=1.000000)
Theme0Label12=

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

わんころのUE5勉強会 2024/01/02 12:00

【UE5】Actor Component内に実装したBlueprint Interfaceを利用する

皆様、明けましておめでとうございます!

今回は Blueprint Interface(以下 BPI) の実装を、Actor Component 内で行った場合の処理を記事にしてみました。
※ BPI の細かい使い方についてはここでは解説しておりません


まずは通常の Actor BP で実装をおさらい

例えば BP_ThirdPersonCharacter に「Line Trace By Channel」でヒットした時に、該当の Actor に BPI を使って通知するという処理を実装したとします。

ターゲットが "Hit Actor" になっているので、この BPI を実装している Actor 側でヒット時の処理を行うような想定です。




そこで、BP_Cube という Static Mesh にキューブをセットした Actor を用意し、BPI の設定と中身を実装した例です。




レベルに置いたキューブに LineTrace がヒットして、画面に Hit と表示されたのがこの画像です。

次は Actor Component にこの BPI を設定した場合を見ていきます。
※ BP_Cube に設定した BPI は必要ないので削除して大丈夫です



Actor Component 内で BPI を使用する

まずは Actor Component を作成するため、コンテンツブラウザで右クリック>「ブループリントクラス」から、[Actor Component]を選択して適当な名前を付けておきます。



これも先程同様、「クラス設定」>「実装インターフェース」で BPI を設定し、中身を「Print String」にしておきました。




そして BP_Cube の「コンポーネント」パネルにある[+追加]から、先程作成した Actor Component を追加します。
(画像では AC_Sample となっています)



BP_Cube に BPI を実装した Actor Component が追加されたので、同じ結果になると思いきや...


ヒットしているのに Hit という文字が出ていません。

これは、LineTrace を行った時のターゲットが違うためです。

先程はヒットした Actor 自身(BP_Cube)がターゲットになっていましたが、今度は Actor に追加した Actor Component がターゲットになるため下記のように変更します。



"Hit Actor" から引っ張り、「Get Component by Class」か「Get Components By Class」を出し、それをターゲットに繋ぎます。

"Component Class" には先程作った Actor Component を指定します。

Components By Class は複数形なので配列になっていますが、BPI のターゲットにそのまま繋ぐことができます
これで Actor BP で追加した Actor Component の BPI に処理を送信できるようになります。


今回の例では LineTrace にヒットした Actor に対してですが、もし操作キャラクターに追加した Actor Component に通知を送りたい場合は
「Get Player Character」>「Get Component by Class」>BPIのターゲットへ繋げばいいということになります。


画像は使いまわしですが正しくヒットと表示されると思います。
以前 Actor Component 内の BPI 実装に引っ掛かったことがあったのを思い出し、今年初の記事にしてみました。

それでは皆様、今年も宜しくお願い致します!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

« 1 2 3 4 5 6 7

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索