投稿記事

無料プランの記事 (64)

わんころの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/08/11 22:36

【UE5.3】Enhanced Input User Settingsという新しい仕組み

皆様、こんばんは!

今回は UE5.3 で登場した「Enhanced Input User Settings」についてどういうものか触れてみたという記事です。5月頃に下書きを保存して放置していたため公開しました。

※ 分からないなりに検証したものなので間違ったことが書かれている可能性があります

Enhanced Input User Settings とは

Enhanced Input に加わった新しい仕組みです。主にキーコンフィグで利用する事になると思いますが以前と比べ扱いやすくなっています。



この機能は以前 Player Mappable Input Config(以降頭文字を取って PMIC) を使って操作していました。

このアセットに Input Mapping Context(IMC) を登録しておき、キーコンフィグで利用するキー情報を取得する時に使われてましたが UE5.3 で非推奨になり、代わりに「Enhanced Input User Settings」を使うよう仕様変更がありました。

それに伴い「Add Player Mappable Config」などの PMIC に関わる関数が廃止されたようです。
(AddPlayerMappableConfig has been deprecated, please use UEnhancedInputUserSettings instead. という記載が見つかりました)


Enhanced Input User Settings を利用する前に


この機能を利用するには「プロジェクト設定」>「Enhanced Input」 の中にある "ユーザー設定を有効化(実験段階)" にチェックを入れる必要があります。(この機能は執筆時点で実験段階のため今後に注意)


「Enhanced Input Local Player Subsystem」から「Get Enhanced Input User Settings」を出すことで利用できますが、上記の "ユーザー設定を有効化(実験段階)" にチェックが入ってないと戻り値が無効な値になります。

「Get Enhanced Input User Settings」から "拡張入力>ユーザ設定" のカテゴリを見ると利用できる関数一覧が表示されます。


Register Input Mapping Context で IMC を登録


「Get Enhanced Input User Settings」から引っ張り「Register Input Mapping Context」「Register Input Mapping Contexts」という二つの関数があります。

どの IMC を利用するのかを Enhanced Input User Settings に教える(登録する)関数のようです。

Contexts の複数形の方は IMC を Set で指定することが出来るのでまとめて登録する場合はこちらを利用します。



これに伴い「Add Mapping Context」に若干仕様変更がされています。
「Add Mapping Context」の構造体ピンを分割(もしくは Modify Context Options を作成)すると現れる "Notify User Settings" のフラグです。

これにチェックを入れておくと「Add Mapping Context」で指定した IMC を「Register Input Mapping Context」もしてくれるので少し楽が出来ます。キーコンフィグで使われる IMC ならチェックを入れておくといいと思います。

※「Add Mapping Context」時、明示的に "Notify User Settings" のフラグをチェックしておかないと自動で登録してくれないので注意

「Add Mapping Context」はしたいけどまだ登録はしなくていい場合はチェックを外しておき、必要なタイミングで「Register Input Mapping Context」を呼べば大丈夫です。



「Remove Mapping Context」も同じで Options ピンを分割すると "Notify User Settings" のフラグがあります。
このフラグにチェックを入れておくと指定の IMC を外す(Remove)時に「Unregister Input Mapping Context」してくれます。
こっちは登録解除の通知をするために使います。

※「Remove Mapping Context」時、明示的に "Notify User Settings" のフラグをチェックしておかないと自動で登録解除してくれないので注意



指定の IMC が登録されているかを調べるには「Is Mapping Context Registered」を使います。関数を見た感じ複数個調べる関数はなさそうでしたので1個ずつ調べる必要がありそうです。

キーコンフィグしたいキーを設定する


IMC で設定した IA_Jump を例に見てみます。
UE5.1 では "Is Player Mappable" のチェックを入れて編集していた項目が新しくなっています。
※ UE5.2 でこの仕様に変わってた気がしますが、容量の関係で UE5.2 がないため正確でない可能性あり

"Setting Behavior" を [Override Settings] に変更します。
次に "Player Mappable Key Settings" を [Player Mappable Key Settings(Experimental)] に変更することで以前のような入力画面が展開されます。

最低限 "名前" があれば良さそうです。
"名前" は主に Blueprint などでアクセスします。この名前と一致したものを別のキーに置き換える時に利用します。
試しに 名前:KB_Jump としました。


名前:KB_Jump を取得してみる


Enhanced Input の Subsystem から「Get Enhanced Input User Settings」> 「Get Current Key Profile」> 「Get Player Mapping Rows」と呼びます。

「Get Player Mapping Rows」の戻り値は Name型が Key/Key Mapping Row構造体がValueのマップです。

画像では「For Each Loop」を使って "名前" の所を全て出力しています。今回の例では KB_Jump しか出力されませんが、上記 [Player Mappable Key Settings(Experimental)] で設定したキーが他にもあれば全て出力されます。


「Map Player Key」を使ってキーコンフィグ

「Get Enhanced Input User Settings」から引っ張り「Map Player Key」を出します。画像は "In Args" を分割して表示したものです。

Map Player Key Args構造体になっており、いくつかのプロパティが表示されます。今回は下記三つを触っています。

"Mapping Name" にキーコンフィグする名前を指定します。
先程 IMC で指定した "名前"「KB_Jump」になります。

"New Key" に新しいキーを割り当てます。
直にマウス右クリックを指定しましたが、本来は UI と連動したキーコンフィグを想定しているはずなのでユーザが入力したキーをここに接続すれば良さそうです。このピンは Key構造体 になってます。

"Slot" は [First] を指定しました。最初に見つかったスロット(恐らく名前?)を "New Key" に置き換えます。

これでプレイするとスペースキーでのジャンプはできず、右クリックでジャンプが出来るようになります。キーコンフィグがめっちゃ簡単に扱えるようになりましたね。


気になったので [Unspecified] や [Second] など指定してみました。
“Create Matching Slot if Needed" のフラグが ON か OFF で挙動が変わります。

ON の場合、スペースキーでも右クリックでもジャンプしました。
恐らく一致したスロットがなかったので新しくスロットが作成され、右クリックでも反応するようになったのだと思います。
(後述の「On Settings Changed」が発行された事も確認)

OFF の場合、一致するスロットが見つからなかったのでキーの変更は行われませんでした。
(後述の「On Settings Changed」は発行されませんでした)



「Apply Settings」と「Save Settings」

もう一度プレイし直すとスペースキーでジャンプするデフォルトの挙動に戻ります。以前はユーザが入力したキー情報は SaveGameObject を使って保存したり工夫が必要でした。

...が、なんと関数が用意されました。


先程の「Map Player Key」でキーコンフィグ後、「Get Enhanced Input User Settings」>「Save Settings」を呼ぶだけです。ゲームを再起動しても新しいキーで置き換わっているのでめっちゃ楽になりました。(今までのは一体...)

画像には別の関数「Apply Settings」を載せてますが、この関数を呼ばなくても「Save Settings」だけでもセーブはできてました。
(一応「Apply Settings」を呼んでから「Save Settings」しておいた方がいいかも?)



「Apply Settings」が呼ばれると「On Settings Applied」というイベントが発行されるようなので、バインド先の処理にキーコンフィグを適用した瞬間に何か処理したい場合は利用できそうです。


「Map Player Key」を呼んでキーの変更が出来た、もしくは新しいキー(スロット)が追加された場合は「On Settings Changed」というイベントが発行されるようなので、キーを置き換えた瞬間に何か処理したい場合は利用できそうです。
例えば重複したキーがありますとかそういう事ができそうですね。

ちなみに「Save Settings」を呼んでも上記二つのイベントは発行されないようでした。


セーブファイルはどうなってる?

「Save Settings」を呼んだ時にセーブファイルが所定の場所に保存されてました。

エディタ起動:プロジェクトフォルダ/Saved/SaveGames 内
パッケージ化:実行ファイルの場所/Saved/SaveGames 内

に "EnhancedInputUserSettings.sav" というファイルが作成されるようです。


「Map Player Key」の罠

「Map Player Key」の "New Key" の指定で気をつける点があります。
元のキーが "キーボード&マウス" の場合、置き換えるキーも "キーボード&マウス" にしないと変更されないようです("ゲームパッド" なら "ゲームパッド" に)

https://twitter.com/kuriemeiku/status/1783351810759295164

九里江めいくさん、あらんさんにて色々な情報を頂けました!本当にありがとうございます!

また、あらんさんより C++ でこの問題を回避する方法を教えて頂きました!

https://twitter.com/thearan8000/status/1783444436309225570

最後に

仕様がコロコロ変わる Enhanced Input ですが、今回の機能はまだ実験段階のためまた変わる可能性があります。

やっぱり難しいですが、キーコンフィグの実装が簡単になってるのでこれは今後にも期待ですね(白目)

それではまた!

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

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

わんころの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/07/01 22:22

【雑談】UE5を始めて触る方に向けたチュートリアル動画の作成中

皆様、お久しぶりです!
前回の投稿が 2/6 で全然更新してませんでしたね...

先月 X で投稿した内容なのですがこちらでも記載しておきます。
身の周りで色々ございまして、なかなか PC での作業が行えなかったような状況でした。


ようやく戻れたので、現在 UE5 をこれから触る方向けに簡単なミニゲームを作成するチュートリアル動画を公開しようと思っています。


まだ序盤の触りだけですが、ある程度目途が立ったら公開します。
いま公開しても次のパート マダァ?(・∀・ )っ/凵 チンチン になるので公開はまだ先になりそうです...


https://twitter.com/UE5wancoro/status/1804754213802819637

どういうミニゲームかですが、上から降ってくるものを避けたり、得点用のアイテムを拾ったりするものにしました。
ご覧の通り見た目はしょぼいんですが、ブループリントを触る上で以下の機能を触って頂こうと考えています。

  • エディタの基本操作
  • キャラの移動
  • 当たり判定
  • キャスト
  • イベントディスパッチャー
  • レベルブループリント
  • UMG を使った UI
  • ゲームの開始~終了まで

余力があれば
- Megascans を使って見た目を変更
- スコアのセーブ&ロード


この辺りを目指しています。
サンプルのブループリントは出来ているので後はそれを動画化していくような感じです。

私が最初 UE5 を使ってかなり困ったのが当たり判定と、別の BP に通知したりなどの連携でした。
初めてにしてはちょっと難しすぎるかも...と懸念点はあるんですが大事な機能なので上記の構成にしました。


当チャンネルでは初の試みとなる複数パートの動画になるため色々不安な部分はありますが、とりあえず途中で消えないように頑張りたいですね!それではまた!

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

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

わんころのUE5勉強会 2024/02/06 21:19

【自作ゲーム2】新しいゲーム制作の準備を開始します!

皆様、こんばんは!
新年が始まりもう一ヶ月が経過してしまいました...早すぎますね。

1月高熱が2回、腹痛、頭痛など体調を崩しており、今年の滑り出しは上々です。休日は殆ど快復に充てていたので UE は殆ど触れてませんでした。

ようやく落ち着いてきたので新しいゲーム制作を始める準備を開始しました!


とりあえず便利そうと思って買った Ultimate To-Do List
というプラグインですが、UE5 に統合されていることもあって使いやすい印象を受けました。

すぐその場で Trello に送信できたり、レベル上にメモ帳のように残せる機能もあるので忘れやすい自分にとってはいいプラグインでした。

ただ、パッケージ化するとエラーが出てしまい対処方法がわからなかったのでどうしようかなと思っています。プラグインを OFF にした後パッケージ化すれば問題ないないのですが、いちいち OFF にするのも面倒だなと思うので最終サポートに連絡してみようと思っています。


まだ試しておかないといけない機能などがあるため本格的に着手するのはもう少し先になりそうですが、進捗報告はこちらで公開していこうと思っています。



まだほとんど決まってないので変更されるかもしれませんが、一旦雰囲気だけは作っておこうと思いとりあえず1枚だけ画像を上げておきます。

ホラーゲーか純粋な脱出ゲームにするかで悩んでますが、細かい機能テストを行いながら考えたいと思います。


どっちにしてもインタラクトは必須機能なので前回の作品から改良し、コンポーネント単位でのインタラクトが可能になったため、戸棚の扉や引き出しを個別で開けるようになりました。
(以前は Actor 単位でのインタラクトでした)

調べる所が多くなったので何を探したらいいか分からないということがないようにしたいですね...


今年も宜しくお願い致します!

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

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

« 1 2 3 4 5 6 7

限定特典から探す

記事のタグから探す

月別アーカイブ

記事を検索