D9speedのEditor拡張が共有する補助処理と、普段使いの右クリックメニューです。オブジェクト検索、ヒューマノイド対応付け、階層パス、コンポーネントコピー、ファイル名の処理に加えて、Unity Utilityの各機能を収録します。
D9speed.EditorUtils。D9speed_BaseEditorUtils。説明板プレハブ作成は D9speed.EditorUtils.GuideBoard と Renderer~/guide_board_renderer.dll を使用します。DLLはWindows標準のフォント描画機能でPNGを生成します。TextMeshPro・TMP Essential Resources・別途インストールするフォントアセットは不要です。
FindSceneObjects<T>()は有効なシーンオブジェクトを取得します。trueを渡すと非アクティブも含めます。GetObjectId()はEditorセッション内の識別子を返します。
| 操作場所 | 機能 |
|---|---|
Projectの右クリック → CopyFullPath | ファイル・フォルダのフルパスをコピー。複数選択とPackages内の実体パスに対応 |
Projectの右クリック → CopyAssetsWithDependency | 選択したアセット群/フォルダを複製し、複製対象どうしの参照をコピー先へ変更 |
Hierarchyの右クリック → Copy Animation Property Path | 最も近いAnimatorを基準にしたパスをコピー。なければPrefabルート、シーンルートを使用 |
Hierarchyの右クリック → 選択オブジェクト名をコピー | 選択したオブジェクト名を Body,Skirt,Glasses のようにカンマ区切りでコピー。親子の同時選択・非アクティブ・同名オブジェクトにも対応 |
Hierarchyの右クリック → このヒエラルキー配下を検索 | 選択階層のパスをUnity Searchで検索 |
Unity Search → bs:smile / h:t:SkinnedMeshRenderer bs:smile | 読み込み中のシーンのSkinnedMeshRendererで、名前にsmileを含むブレンドシェイプを検索。結果からGameObjectを選択 |
Componentの右クリック → コンポーネント名をコピー | コンポーネントの型名をコピー |
Componentの右クリック → ここから下のコンポーネントをコピー | 選択コンポーネント以降をまとめてコピー |
Component/Hierarchyの右クリック → コピーしたコンポーネントを新規貼り付け | シーンオブジェクトへ追加。Undo対応 |
| Hierarchyの右クリック → メインカメラ関連の2項目 | 対象へカメラを向ける/対象の+Z方向から正対。Undo対応 |
D9speed > Transform Mirror Tool | X軸方向のミラー複製。左右名・Constraint/PhysBone/Colliderの対称化と作成ペアの事前表示 |
D9speed > Tools > 説明画像つき板ポリプレハブ作成(EditorOnly) | 文章を画像にし、EditorOnlyのQuadプレハブとPNG・Unlitマテリアルを保存 |
Alt + R | 選択したシーンオブジェクトのローカルTransformをリセット。Undo対応 |
Ctrl + L(macOSはCmd + L) | Inspectorのロック/解除を切り替え |
| Hierarchy | コンポーネントに変更があるPrefabインスタンスのルートへ変更マークを表示 |
Transform Resetの割り当てはUnityのShortcutsにあるCustom/ShortCutEX/TransformResetで変更できます。
Inspectorのロックは Edit > Shortcuts の Custom/ShortCutEX/InspectorLock で割り当てを変更できます。初期設定はCtrl+L(macOSはCmd+L)です。同じキーを使う別の操作がある場合は、Shortcutsで割り当てを調整してください。複数のInspectorがある場合は、フォーカス中のInspector、マウス下のInspector、開いているInspectorの先頭の順に1つだけ切り替えます。HierarchyやSceneからも操作でき、Inspectorが開いていない場合は何もしません。
Unity Searchでbs:smileのように入力します。bs:はEditor Coreが追加する専用プロバイダで、読み込み中のシーンにあるSkinnedMeshRendererのsharedMeshを調べます。名前の一部で検索でき、大文字小文字は区別しません。空白を含む名前はbs:"happy smile"と入力します。検索結果には該当GameObjectと一致したブレンドシェイプ名を表示し、EnterまたはダブルクリックでGameObjectを選択します。メッシュが未設定のRendererや、読み込まれていないシーン・Prefabアセットは対象外です。
Unity標準のHierarchy検索にもbs:フィルターを追加しています。h:t:SkinnedMeshRenderer bs:smileと入力すると、コンポーネント種別とブレンドシェイプ名を組み合わせて絞り込めます。空白を含む名前はh:t:SkinnedMeshRenderer bs:"happy face"と入力します。こちらの結果表示と選択操作はUnity標準のHierarchy検索に従います。
0.1.4で、Fluent 2のトークン設計を基にしたUI Toolkitの共通スタイルを試験導入しています。Unityのライト/ダークに合わせて色を切り替えます。対象一覧へGameObjectやPrefabをドロップして、設定後に「ミラーを作成」を押します。「一覧をクリア」は一覧だけを空にし、シーンやアセットは削除しません。
狭いウィンドウでは設定部分がスクロールし、実行ボタンは下部に表示されます。カスタム基準点を使わないときは座標欄を無効にし、ワールド原点を基準にします。対象と各オプションはスクリプトの再読み込みでも保持します。
対象を追加すると「これから作る対称化ペア」に、左側へ作成元/現在の参照、右側へ作成予定先/対称化後の参照を表示します。「選択中を追加」「選択行を外す」「候補を更新」も利用できます。親と子を同時に追加しても子を二重複製しません。既存の対称オブジェクトは上書きせず、同名なら作成名に _mirror_1 などを付けます。
_L ↔ _R、.L ↔ .R を交換します。小文字および Hand_L.001 → Hand_R.001 にも対応します。左右名がない複製ルートには従来の _Mirrored を付け、左右名がない子の名前は維持します。VRChat SDKは必須依存にせず、導入されている場合に対応します。複製範囲外の TargetTransform を駆動するVRC Constraintは既存オブジェクトを動かさないよう複製側を無効化し、警告を表示します。MeshColliderの頂点形状・描画メッシュ・AnimationClipのパスやアニメーション値は反転しません。回転の反転を外した場合は形状全体の完全な鏡像にならない場合があります。
共通スタイルはEditor/uiにあります。独自のEditorWindowへ適用する場合は、CreateGUI()からEditorUiTheme.Apply(rootVisualElement)を呼びます。開いたままのテーマ変更にはEditorUiTheme.RefreshTheme(rootVisualElement)をOnInspectorUpdate()から呼びます。クラスd9_ui_rootの配下だけに作用し、共通フォント設定を引き継ぎます。現在の適用先はTransform Mirrorです。
アセット複製は既存のコピーを上書きせず、別名で作成します。参照置換はUnityのYAMLテキスト形式が対象です。選択範囲の外にある依存アセットは追加コピーせず、元の参照を維持します。バイナリ形式のアセット内の参照置換には対応しません。
Unity 2022.3 / Windows用のEditor専用ツールです。画像生成にはWindowsのシステムフォントを使います。板ポリゴンのマテリアルはBuilt-in Render Pipelineの Unlit/Texture を使います。
D9speed/Tools/説明画像つき板ポリプレハブ作成(EditorOnly) を開きます。同じフォルダーへ .prefab、_image.png、_material.mat を保存します。既存のアセットは上書きせず、同名の場合は連番を付けます。プレハブは EditorOnly タグ付き、ColliderなしのQuadで、高さ1 m・幅は画像の縦横比に合わせます。Unity標準のQuadと Unlit/Texture を使うため、正面はローカル-Z側です。シーンへ自動配置はしません。ビルドではEditorOnlyの説明板が除外されます。PNG単体の保存も可能です。
日本語の描画にはWindowsのシステムフォントを使います。フォント欄にはインストール済みの一覧が表示されます。「自動」でメイリオがない場合は既定のシステムフォントに切り替わります。描画結果をプレビューで確認してください。フォントファイルは配布物に含めません。作成されたプレハブはPNGとマテリアルだけを参照し、フォントや専用スクリプトを参照しません。
D9speed > SettingsまたはEdit > Preferences > D9speed Toolsで設定できます。
設定は利用者のローカルEditorPrefsへ保存します。フォントの既存キーを維持しているため、更新後も設定を引き継ぎます。未公開のカメラ拡張、HTTP制御、Discord通知・認証情報はCoreに含めません。
案内ページからVCC/ALCOMへリポジトリを追加します。
VCC/ALCOMで各ツールを導入すると、本パッケージも依存パッケージとして導入されます。
既存のEditorToolやD9speed_UnityUtility.csがある場合は、バックアップしてから重複する機能を整理してください。旧UtilityとCore 0.1.2を同時に有効にするとメニューが重複します。個人用通知機能が同じファイルにある場合は、その部分を分離して残せます。旧settingProvider.csの共通設定はCore側へまとめ、未公開ツールの設定は各ツール側へ分離してください。元ファイルを自動削除するlegacyFolders・legacyFilesは設定していません。
独自部分はMIT Licenseです。詳細は同梱のLICENSE.mdを参照してください。
アセット複製はNarazaka氏のCopyAssetsWithDependency(k7a氏の実装から派生)を改修しています。当該部分のzlib形式のライセンス表記と改修の明記をEditor/copy_assets_with_dependency.csに保持しています。
連絡先: d09pseed@gmail.com
io.github.d9speed.editor_core
https://github.com/d9speed/unity_editor_tools/tree/main/packages/io.github.d9speed.editor_core
0.1.13 (変更履歴)
2022.3.22f1 以降
なし
なし
なし