fc2ブログ

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

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

≫ EDIT

UE5 指定した「GameplayTag」がアクター(Actor)などのオブジェクト(Object)に設定されているかチェックする(Has Matching Gameplay Tag)

指定した「GameplayTag」がアクター(Actor)などのオブジェクト(Object)に設定されているかチェックする方法です。

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

・アクタのGameplay Tagを判別する方法
https://forums.unrealengine.com/t/gameplay-tag/1144833

方法としてはこちらの方法みたいです。

・How to use gameplay tags in blueprint without casting?
https://www.reddit.com/r/unrealengine/comments/rvvecs/how_to_use_gameplay_tags_in_blueprint_without/

「Has Matching Gameplay Tag」ノードを使うことで
アクターに指定した「Gameplay Tag」が設定されているかどうか確認できるようです。
アクターのGameplayTagをチェック000
「Target」には「Gameplay Tag」を持つオブジェクトを指定します。
「Tag to Check」にはチェックしたい「Gameplay Tag」を指定します。

使い方はこんな感じに。
アクターのGameplayTagをチェック001

「Gameplay Tag」は使うことが結構多くなると思いますので、こういった機能は覚えておいたほうがよさそうですね。

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

≫ EDIT

UE5/UE4 「UNREAL FEST 2023 TOKYO」

「UNREAL FEST 2023 TOKYO」についてのまとめです。

公式サイトはこちら。

・UNREAL FEST 2023 TOKYO
https://unrealengine.jp/unrealfest/2023/

公式アーカイブページはこちら。

・State of Unreal + | UNREAL FEST 2023 TOKYO


・クライシス コア -ファイナルファンタジーVII- リユニオン開発における心得と制作手法 | UNREAL FEST 2023 TOKYO



・『Hi-Fi RUSH』のリズムアクションはどうやって生まれたのか!?【UNREAL FEST 2023 TOKYO】



・『Hi-Fi RUSH』開発事例 グラフィックスと最適化紹介【UNREAL FEST 2023 TOKYO】



・Unreal Engine to 漫画 | UNREAL FEST 2023 TOKYO



・もしも、 Unreal Engine CG映像クリエイターが「UEFN」を使ってみたら。 | UNREAL FEST 2023 TOKYO



・UE5で実現する映像制作の新境地 | UNREAL FEST 2023 TOKYO



・東京メトロ銀座線渋谷駅移設プロジェクト ~Twinmotionによる課題解決策と今後の展望~ | UNREAL FEST 2023 TOKYO



・走行デザインレビューシステムの紹介 | UNREAL FEST 2023 TOKYO



・プラグインによる効率的なエンジン拡張 - stelllaで実現するメタバース開発 | UNREAL FEST 2023 TOKYO



・モバイルインディーの挑戦 ”クマムシさん惑星と英語ロギア” | UNREAL FEST 2023 TOKYO



・「LinkRH」インディーゲーム制作・しくじり事例紹介&よきゲーム開発生活を続けるには? | UNREAL FEST 2023 TOKYO



・UEインディーゲームクリエイター座談会 アート編 2023 | UNREAL FEST 2023 TOKYO

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

≫ EDIT

UE5/UE4 存在するすべてのアクター(Actor)の中からタグ(Tag)を指定して配列で取得する(Get All Actors with Tag)

存在するすべてのアクター(Actor)の中からタグ(Tag)を指定して配列で取得する方法です。

公式ドキュメントはこちら。

・Get All Actors with Tag
https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Utilities/GetAllActorswithTag/

「Get All Actors with Tag」を使うことで、存在するアクター(Actor)の中から
指定したタグ(Tag)のみ配列で取得
することができます。
GetAllActorosWithTag000.jpg
「Tag」には取得したいタグ(Tag)を指定します。

実際に使う場合はこんな感じになると思います。
GetAllActorosWithTag001.jpg
指定したタグ(今回はBlog)が設定されているアクターを取得してます。

この処理自体は結構思い処理になるので、結果をどこかに保存して扱うか、
デバッグ用途に使うのがいいのかなと思います。

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

≫ EDIT

UE5/UE4 存在するすべてのアクター(Actor)の中からクラス(Class)を指定して配列で取得する(Get All Actors Of Class)

存在するすべてのアクター(Actor)の中からクラス(Class)を指定して配列で取得する方法です。
別記事でも触れているのですが、検索性が低かったので再度のメモです。

公式ドキュメントはこちら。

・Get All Actors Of Class
https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Utilities/GetAllActorsOfClass/

「Get All Actors Of Class」を使うことで、存在するアクター(Actor)の中から
指定したクラスのみ配列で取得
することができます。
GetAllActorosOfClass000.jpg
「Actor Class」には取得したいクラスを指定します。

実際に使う場合はこんな感じになると思います。
GetAllActorosOfClass002.jpg
指定したクラス(今回はBP_BlogActor)を取得して実行することができると思います。

この処理自体は結構思い処理になるので、結果をどこかに保存して扱うか、
デバッグ用途に使うのがいいのかなと思います。

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

≫ EDIT

UE5/UE4 2023/06 の無料マーケットプレイスコンテンツと永続コンテンツ(無料の永続コンテンツはなし)

2023/06 の無料マーケットプレイスコンテンツと永続コンテンツのメモです。

公式情報はこちら。

・2023年06月の無料マーケットプレイスコンテンツ
https://www.unrealengine.com/ja/blog/featured-free-unreal-marketplace-content-june-2023

無料コンテンツについては期日がすぎると無料でなくなるので公式情報や他のサイトさんを見たほうが良いかと思います。
こちらでは永続コンテンツについてのメモを残しておきます。

と思ったのですが2023/06は無料の永続コンテンツはないようです。残念…。
とはいえ期限ありの無料コンテンツでダウンロードできるのでそれだけでもとても助かります!

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

≫ EDIT

UE5/UE4 存在するすべてのアクター(Actor)の中からクラス(Class)とタグ(Tag)を指定して配列で取得する(Get All Actors Of Class with Tag)

存在するすべてのアクター(Actor)の中からクラス(Class)とタグ(Tag)を指定して配列で取得する方法です。

公式ドキュメントはこちら。

・Get All Actors Of Class with Tag
https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Utilities/GetAllActorsOfClasswithTag/

「Get All Actors Of Class with Tag」を使うことで、存在するアクター(Actor)の中から
指定したクラスのタグが設定されているもののみ配列で取得
することができます。
GetAllActorosOfClassWithTag000.jpg
「Actor Class」には取得したいクラスを指定します。
「Tag」には取得したいタグ(Tag)を指定します。

実際に使う場合はこんな感じになると思います。
GetAllActorosOfClassWithTag001.jpg
指定したクラス(今回はBP_BlogActor)のタグ(今回はBlueprint)が設定されているアクターを取得しています。

この処理自体は結構思い処理になるので、結果をどこかに保存して扱うか、
デバッグ用途に使うのがいいのかなと思います。

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

≫ EDIT

UE5/UE4 「Begin Play」の処理が二回実行されてしまう場合の対処方法(Generate Abstract Class)

「Begin Play」の処理が二回実行されてしまう場合の対処方法についてです。
備忘録メモとなります。

こちらのツイートを見かけたのでメモとなります。
上記のツイートで触れられてる記事はこちらのようです。

・BeginPlayが2度処理されるのは何故?
https://forums.unrealengine.com/t/beginplay-2/490042/6

昔からまれにある現象で、umapの定義が何らかの影響で壊れるのか、初期化時にLevelScriptActorのInstanceが複数生成されることがあるようです
AnswerHubでもForumでもそこそこの件数の相談が上がっています
観測範囲上では原因はつかめていないようで、もし再現性があるようであればバグ報告してみてください

とのことで、症状が起きるとドツボにはまりそうですね…。

対応方法としては以下のようなもので直ることがあるようです。

・対象のLevelのLevelBlueprintを開き、 ClassSettings の GenerateAbstractClass をONにする
・一度コンパイルする
・対象のLevelをリロード(再度オープン)する
・GenerateAbstractClass をOFFに戻し、コンパイルする

起こるかどうかは稀のところですが、こういったバッドノウハウは覚えておいたほうがよさそうですね。

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

≫ EDIT

UE5/UE4 存在するすべてのウィジェット(Widget)の中からクラス(Class)を指定して配列で取得する(Get All Widgets Of Class)

存在するすべてのウィジェット(Widget)の中からクラス(Class)を指定して配列で取得する方法です。
別記事でも触れているのですが、検索性が低かったので再度のメモです。

公式ドキュメントはこちら。

・Get All Widgets Of Class
https://docs.unrealengine.com/5.1/en-US/BlueprintAPI/Widget/GetAllWidgetsOfClass/

「Get All Widgets Of Class」を使うことで、存在するウィジェット(Widget)の中から
指定したクラスのみ配列で取得
することができます。
GetAllWidgetsOfClass000.jpg
「Widget Class」には取得したいクラスを指定します。
「Top Level Only」には直属の子だけを対象にするかを指定します。
GetAllWidgetsOfClass002.jpg

実際に使う場合はこんな感じになると思います。
GetAllWidgetsOfClass001.jpg
指定したクラス(今回はBP_BlogWidget)を取得しています。

この処理自体は結構思い処理になるので、結果をどこかに保存して扱うか、
デバッグ用途に使うのがいいのかなと思います。

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

≫ EDIT

UE5/UE4 C++で列挙型(Enum)を文字列(FText)や「Enum名」を含めた文字列(FString)に変換する(GetDisplayValueAsText、GetValueAsString)

C++で列挙型(Enum)を文字列(FText)や「Enum名」を含めた文字列(FString)に変換する方法です。

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

・[C++] EnumをString化する
https://zenn.dev/aziogroup/scraps/5326994431719e#comment-3be3d2d8f2fa82

「StaticEnum< Enum名>()->GetDisplayValueAsText(定義名)」で定義名のみを取得。
StaticEnum< Enum名>()->GetValueAsString(定義名)」でEnum名を含めた定義名を取得できるようです。

実際にやってみました。

まずはこんな感じで「Enum」を用意しました。

UENUM(BlueprintType)
enum class EBlogEnum : uint8
{

One = 0,
Two,
Three,
Count,
};


上記「Enum」の定義を文字列に変換してみました。

// Enum を文字列に変換
// Enum名は含めない : Override Root Scale
FText aEnumText = StaticEnum< EBlogEnum>()->GetDisplayValueAsText(EBlogEnum::One);
UE_LOG(LogTemp, Log, TEXT("EnumText = %s"), (*aEnumText.ToString()));

// Enum名を含める : ESpawnActorScaleMethod::OverrideRootScale
FString aEnumString = StaticEnum< EBlogEnum>()->GetValueAsString(EBlogEnum::Three);
UE_LOG(LogTemp, Log, TEXT("EnumString = %s"), (*aEnumString));


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

LogTemp: EnumText = One
LogTemp: EnumString = EBlogEnum::Three


こういった機能は便利なので覚えておきたいですね。
デバッグ機能としても優秀だと思います。

こちらに別の方法もありますので一応メモしておきます。

・C++で列挙型(Enum)を文字列(FString、標準文字列)に変換する(GetNameStringByIndex)
http://kagring.blog.fc2.com/blog-entry-651.html

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

≫ EDIT

UE5/UE4 複数のアセットのパラメータをプロパティマトリックスを使って一括で編集する(Property Matrix)

複数のアセットのパラメータをプロパティマトリックスを使って一括で編集する方法です。

公式ドキュメントはこちら。

・プロパティ マトリックス(Property Matrix)
https://docs.unrealengine.com/4.27/ja/Basics/UI/PropertyMatrix/

プロパティマトリックス(Property Matrix)という機能を使うことで複数のアセットの編集ができるようです。
プロパティマトリックス(Property Matrix)へのアクセスはドキュメントを見る限り二通りあるようです。

[Details (詳細)] パネルの 検索 ボックスに隣接する Property Matrix ボタンで、 現在の選択内容に関連する プロパティマトリックス を起動します。

コンテンツ ブラウザ でアセットを選択し、右クリック して、Asset Actions を選択します。次に、コンテキスト メニューから Bulk Edit via Property Matrix (プロパティ マトリックスを用いたバルク編集) を選択します。

今回は後者のアセットアクションからアクセスして編集してみようと思います。

まずは一括編集したいアセットを複数選択します。
プロパティマトリックス000
今回はアニメーションモンタージュで試してみることにしました。
上記画像では3つのアセットを選択しています。

次にアセットを複数選択した状態で右クリックするとでるメニューから
「アセットアクション(Asset Actions)」の「プロパティマトリックスで一括編集(Bulk Edit via Property Matrix)」を選択
します。
プロパティマトリックス001

すると、こんな感じでプロパティマトリックスによる編集ウィンドウが開きます。
プロパティマトリックス002
あとはこのウィンドウでアセットの値を編集するだけになります。

試しに編集してみるとこんな感じになりました。
プロパティマトリックス003
選択していたすべてのアセットに対して編集が行われたのがわかると思います。

できればあまり一括編集をしなくてはならない事態にはなりたくないとは思いますが、
いざという時にはなるべく効率よくできるといいのかなと思いますので、使っていければと思います。

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

≫ EDIT

UE5 「Print String」がどのアセットから出力されているかを確認する(bp.BlamePrintString)

「Print String」がどのアセットから出力されているかを確認する方法です。

こちらのツイートを見かけました。
「bp.BlamePrintString」をコンソールコマンドに入力することで、どのアセットから出力されているかが可視化できるようです。

というわけで試してみます。
PrintStringのノードの位置000
こんな感じのノードを組んでみました。
「P」キーを押すたびに「Print String」で文字を表示しているのですが、
毎回「bp.BlamePrintString」を切り替える。といった処理を挟んでいます。

結果はこんな感じになりました。
PrintStringのノードの位置001
一番最初の「Print String」(最下段)は普通に「Hello」と出力されているのですが
二番目の「Hello」はその上にどのアセットなのかの情報が追加されて文字が出力されています。

一人で作っているときはあまり役に立つことはなさそうですが、
多人数で再制作している場合など、誰かが出力した「Print String」がある。みたいな場合などには使えるのかなーと。

こういったちょっとしたデバッグ機能もあると嬉しいですね。

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

PREV | PAGE-SELECT | NEXT