調査に時間がかかった為、自分へのメモも兼ねて投稿します。
UE5系から、エディタにテーマを設定し、ヘッダーやウインドウのフレーム、文字の色を変更して、
外観をカスタマイズできる『テーマ』機能が用意されました。
検証環境
UnrealEngine 5.3.1
Windows11 Pro
テーマのつけ方
まずは、以下の設定まで行きます。
編集 → エディタの環境設定 → アピアランス → Theme → アクティブなテーマ
『アクティブなテーマ』は、最初は、編集できないデフォルトのテーマがセットされています。
左から二つ目のボタンを押すと、デフォルトのテーマを複製します。
ボタンを押すと、『テーマエディタ』が開いて、テーマをカスタマイズが可能となります。
カスタマイズできる内容は、かなり細かい為、説明はしませんので、実際にさわってご確認ください。
テーマについて
複製して作成したエディタのテーマは、JSON形式で保存されます。
エディタ起動時は、ユーザーフォルダ、プロジェクト内、エンジン内の三つの場所からロードが行われますが、
また、JSONファイルは、ユーザーフォルダに保存・作成される点は注意してください。
※ Windows11 Proの場合
ユーザーフォルダ
C:\Users\actasuser\AppData\Local\UnrealEngine\Slate\Themes
プロジェクト内
プロジェクトのルート/Content/Slate/Themes
エンジン内
エンジンのインストールフォルダ\Engine\Content\Slate\Themes
気になる方は、『USlateThemeManager::LoadThemes』の動作を追ってみてください
テーマの設定
テーマは、Saved以下の『EditorPerProjectUserSettings.ini』に以下の内容で記録されています。
[/Script/UnrealEd.EditorStyleSettings]
CurrentAppliedTheme=テーマID
デフォルトのテーマを設定するには、『DefaultEditorPerProjectUserSettings.ini』を作成し、『CurrentAppliedTheme』にデフォルトにしたいテーマIDを設定をする事で起動時のテーマを反映させる事ができます。
『テーマID』は、JSONファイルに記載されている為、目的のテーマのJSONを開いて確認できます。
テーマは、テーマIDが被っていなければ、使い回し可能なので、配布する事もできます。
もし、テーマが被っていた場合は、
色については、先にロードされたテーマの情報が使用されるが、
名前(DIsplayName)は後からロードしたテーマが使用される挙動になるみたいです。
しかし、基本的には、被らないようなテーマの管理の仕方をしましょう。
おまけ
以下は、実装のソースコードになります。
自分で調査したい方は、実際にC++のソースコードを追ってみてください。
UEditorStyleSettingsの定義
UnrealEngine-5.3\Engine\Source\Editor\UnrealEd\Classes\Settings\EditorStyleSettings.h
UnrealEngine-5.3\Engine\Source\Editor\UnrealEd\Private\Settings\EditorStyleClasses.cpp
FStyleThemeの定義
UnrealEngine-5.3\Engine\Source\Runtime\SlateCore\Public\Styling\StyleColors.h
UnrealEngine-5.3\Engine\Source\Runtime\SlateCore\Private\Styling\StyleColors.cpp
LoadThemesの定義
UnrealEngine-5.3\Engine\Source\Runtime\SlateCore\Private\Styling\StyleColors.cpp