投稿記事

2024年 01月の記事 (3)

わんころの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 実装に引っ掛かったことがあったのを思い出し、今年初の記事にしてみました。

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

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

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

月別アーカイブ

記事のタグから探す

限定特典から探す

記事を検索