TexTransToolのMaterialModifierをAO Material Editorへ移行するUnity Editor拡張です。
HierarchyでGameObjectを右クリックし、TTT MaterialModifierから次のいずれかを選択します。
AOMEへ移行(このGameObject)AOMEへ移行(子階層を含む)Prefab由来の対象では、Prefab資産、すべての派生Prefab Variant、必要な依存Outer Prefab、およびそれらへ依存するAssets配下のSceneをまとめて移行できます。Build Settingsに含まれないSceneも対象です。複数対象またはPrefab資産を変更する場合は、実行前にVariant、変更対象Outer Prefab、依存Sceneの一覧、instance数、property/activity override、削除、Sceneローカル追加の件数が表示されます。
Hierarchyで選択したMaterialModifierがPrefab/Prefab Variant資産で定義されたComponentの場合、確認画面に最初の定義元資産を警告表示します。Sceneでローカル追加されたComponentには表示しません。
Prefab資産の一括移行は、対象MaterialModifierが属する最も内側のPrefab資産から開始します。派生Variantは親から子の順に処理され、元MaterialModifierの明示Override(親と同値のOverrideを含む)を継承AOMEへ対応付けます。派生Variant側で元GameObjectへ子や別Componentなどが追加されている系統は、確認画面で選択不可になります。
対象Prefabを内包するOuter Prefabは全階層を再帰探索し、選択対象MaterialModifierのMaterial/Shader/RenderQueue/property/activity/削除Overrideがある資産だけを内側から外側の順に移行します。親と同値の明示Overrideも保持します。Overrideのない通過Outer Prefabは検査しますが保存しません。同じPrefabが同一Outer内に複数ある場合も、nested instanceごとにOverrideを対応する継承AOMEへ移します。Outer固有MaterialModifierと無関係なOverrideは変更しません。
依存Sceneでは、instance固有のMaterial、Shader、RenderQueue、property、activity、削除Overrideを継承AOMEへ移します。対象Prefab instanceのscope内に安全なSceneローカルMaterialModifierが追加されている場合は、SceneローカルAOMEを作成します。閉じたSceneは一時的にAdditiveで開き、変更時だけ保存して元どおり閉じます。既に開かれているcleanなSceneは移行後も開いたままです。
Prefab/Variant/変更対象Outer Prefab/依存Sceneは変更前にLibrary/GokouKotori/TTTMaterialModifierToAOME/Backupsへまとめて退避します。途中のPrefab/Scene保存失敗やキャンセル時は全対象ファイルと、開いていたScene構成、active Scene、Selectionを復元します。成功時はバックアップを削除します。
移行後も元のMaterialModifierは保持されますが、そのGameObjectはEditorOnlyかつ非Activeになります。AOMEは同じ親の別GameObjectへ作成されます。AOMEのenabledには、非Active化する前のTTT有効状態が設定されます。
RenderQueueは、TTT側で変更が有効かつ移行後の有効Shaderの既定値と異なる場合だけ数値を移します。それ以外はAOMEの既定動作へ任せます。TTTでShader変更が有効でもShaderが未設定の場合は、AOME側のShader変更を無効化して警告します。
元GameObjectに子、別Component、複数MaterialModifier、カスタムTagがある場合は、EditorOnly化と非Active化による副作用を避けるため移行しません。依存Outer Prefab上にある選択対象GameObjectのTag Overrideだけは例外としてEditorOnlyへ置き換えます。
影響するSceneに未保存の変更がある場合、または対象Prefab/Variant/変更対象Outer Prefab/Sceneが読み取り専用の場合は、ファイルを変更する前に一括移行を中止します。
Outer固有MaterialModifierは移行対象外です。ただし、選択対象MaterialModifierのGameObjectへOuter側で子、別Component、複数MaterialModifierなどが追加され、元GameObjectのEditorOnly化または非Active化で巻き込まれる構成は、部分的な結果を作らず一括移行を中止します。
TTT/AOMEの実装型には直接参照せず、完全型名、Reflection、SerializedObjectで必要構造を検証します。
com.gokoukotori.ttt-material-modifier-to-aome
未設定
0.3.0
2022.3 以降
なし
なし
gokoukotori