0
0

エディタの外観をカスタマイズする

Posted at

調査に時間がかかった為、自分へのメモも兼ねて投稿します。

UE5系から、エディタにテーマを設定し、ヘッダーやウインドウのフレーム、文字の色を変更して、
外観をカスタマイズできる『テーマ』機能が用意されました。

検証環境

UnrealEngine 5.3.1
Windows11 Pro

テーマのつけ方

まずは、以下の設定まで行きます。

編集 → エディタの環境設定 → アピアランス → Theme → アクティブなテーマ

テーマ作成.png

アクティブなテーマ』は、最初は、編集できないデフォルトのテーマがセットされています。
左から二つ目のボタンを押すと、デフォルトのテーマを複製します。
ボタンを押すと、『テーマエディタ』が開いて、テーマをカスタマイズが可能となります。
カスタマイズできる内容は、かなり細かい為、説明はしませんので、実際にさわってご確認ください。

テーマエディタ.png

テーマについて

複製して作成したエディタのテーマは、JSON形式で保存されます。
エディタ起動時は、ユーザーフォルダプロジェクト内エンジン内の三つの場所からロードが行われますが、
また、JSONファイルは、ユーザーフォルダに保存・作成される点は注意してください。

※ Windows11 Proの場合
ユーザーフォルダ
C:\Users\actasuser\AppData\Local\UnrealEngine\Slate\Themes

プロジェクト内
プロジェクトのルート/Content/Slate/Themes

エンジン内
エンジンのインストールフォルダ\Engine\Content\Slate\Themes

気になる方は、『USlateThemeManager::LoadThemes』の動作を追ってみてください

テーマの設定

テーマは、Saved以下の『EditorPerProjectUserSettings.ini』に以下の内容で記録されています。

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

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0