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
に保存されます
表示列を変えて以降の表示は、ここに保存された内容で表示されます