ObjectMixer で、Level 上の Actor のプロパティを編集する方法を紹介します
UE5.1 から、LightMixer という新しい UI が追加されています
(UE5.0 にある Env.LightMixer とは別物です)
実はこの LightMixer、ObjectMixer という汎用の編集 UI と、LightComponent 用の ObjectFilter の組み合わせで実現してあり
ObjectFilter を自作すれば、任意の Actor を一覧化し編集することができます
※ 記事執筆時点でLightMixerはベータ機能です
思い通りに動かない場合や、機能が変更される可能性があります使い方#
Filter クラスの作成#
まずは ObjectFilter を作成します
新規 Blueprint で、親クラスに ObjectMixerBlueprintObjectFilter を選択して作成します

対象クラスの設定#
Filter クラスを開き、 GetObjectClassesToFilter をオーバーライドしましょう
ここで指定するクラスは、Actor だけではなく、Component で指定することもできます

ObjectMixer で使う#
LightMixer を表示し、設定から Open Generic Object Mixer Instance を選択すると、ObjectMixer が表示されます

ObjectMixer の設定で、ObjectFilter Class に先程作成したクラスを設定すると、 GetObjectClassesToFilter に指定した Class に関係する Actor が ObjectMixer 上に表示されます

一覧のヘッダー部分にある三点マークをクリックすると、表示するプロパティを選択できます

その他#
各種関数の設定#
ObjectFilter は、各関数をオーバーライドすることでカスタマイズします 主なものは以下の通りです
| 関数名 | 概要 |
|---|---|
| GetObjectClassesToFilter | ObjectMixer の対象とするクラス(Actor または Component) |
| GetObjectClassesToPlace | ObjectMixer の Add ボタンで作成できるクラス(Actor) |
| GetColumnsToShowByDefault | デフォルト表示する項目(プロパティ名) |
| GetForceAddedColumns | 常に表示する項目 |
| GetColumnsToExclude | 表示しない項目(プロパティ名) |
| GetObjectMixerPropertyInheritanceInclusionOptions | 親または子のプロパティを含んで表示するか |
| GetObjectMixerPlacementClassInclusionOptions | Add で作成するクラスの検知パターンを指定する |
表示するプロパティについて#
GetObjectMixerPropertyInheritanceInclusionOptions をオーバーライドすると、対象の親や子のプロパティも表示できるようになりますIncludeAllParentAndChildren あたりに設定しておくと、ほぼすべての対応するプロパティが表示されます
トラブルシューティング#
出ない Property があるんだけど…#
表示できない Property があるようです
よく使うものとしては Vector は表示されません
おそらく構造体に関しては編集できないと思われます
Add が動かない#
現時点で Add のところに任意のクラスを出す方法が見つかってません
AActor は検知されるのに、作成したクラスは検知できてない感じがします
一応ベースである LightMixer はまだベータ機能なので…
設定値はどこに…?#
表示する列などを編集した場合、設定値はプロジェクトフォルダ下の Saved/WindowsEditor/ObjectMixerSerializedData.ini に保存されます
表示列を変えて以降の表示は、ここに保存された内容で表示されます
