Skip to content

Standalone Tool Windows ​

A set of independent tools that can be opened from the main menu under さたにあしょっぴんぐ/エディタカスタマイザー/ (Satania Shopping / Editor Customizer).

ToolWhat it does
Component FinderSearch the scene by component type and select all matches at once
SkinnedMesh Bounds Batch SetterBatch-set the Bounds of multiple SMRs to match a reference
Humanoid Bone Name DumpExport the HumanBodyBones → actual bone name mapping as JSON / C#
Mirror PlacementMove objects to their mirrored position, or duplicate and place them there
Transition Condition FinderSearch Transitions across all layers by Condition and select them all at once
Transition Reverse Conditions (Return Helper)Auto-generate return transitions from the negated conditions of the selected Transitions
AnimationClip Loop MakerAuto-detect a good loop point and turn the clip into a looping clip
Breath Animation BuilderAdd breathing and sway to a Humanoid clip (with in-scene preview)
AnimationClip SplitterSplit curves into Animator-related and everything else (or by Humanoid bones)
AnimationClip Path EditorReplace / add prefix・suffix / remove part of only the selected curve paths, remove Missing curves
AnimationClip Binding CheckerCheck that multiple clips have matching bindings (for WD OFF)
RichText BuilderBuild rich text such as <b> / <color> and copy it
SerializedProperty BrowserBrowse every SerializedProperty of any Object with its path (also shows the AnimationClip propertyName form)
Asset Reference TreeShow asset reference relationships as a tree
Copy Asset ValuesCopy contents between assets of the same type
Hierarchy Path ToolCompute and copy the relative path from Root → Target

Component Finder ​

Pick a component type, and the tool lists every instance of that type in the whole scene (or under a specified Transform). You can select multiple entries and push them to Selection, which is handy for cases like "select every PhysBone and change a value on all of them at once".

SkinnedMesh Bounds Batch Setter ​

Specify a reference Transform, and the localBounds of the selected SkinnedMeshRenderers are batch-set to the same world position and size. A gizmo is also drawn in the Scene view. Useful when every outfit has its own inconsistent Bounds.

Humanoid Bone Name Dump ​

Extracts the actual bone name (or Hierarchy path) corresponding to each HumanBodyBones entry from a Humanoid Animator and writes it out. The output can be a JSON file, JSON on the clipboard, or a C# Dictionary initializer.

Mirror Placement ​

Moves the registered objects to the mirrored position and orientation relative to a pivot, either in place or as duplicates ("move in place" / "duplicate and place").

  • Register targets by drag & drop or with "選択中を追加" (Add Selected)
  • Choose the flip axis (X / Y / Z); there is also a "向き補正 180°" (180° Orientation Correction) option for front/back-symmetric meshes
  • Undo reverts everything in a single step

Transition Condition Finder ​

Specify an AnimatorController (there is also a button to pick up the Controller currently open in the Animator window), and the tool searches across all layers for Transitions that contain the specified Condition. Answers "where was that transition that uses this parameter with this condition?" in one shot.

  • Three levels of match precision: parameter name only / + Mode / + Mode + Threshold
  • Transitions from AnyState / Entry / sub-state machines / state machines are included
  • Matching Transitions can be checked to select several at once, and they are pushed straight to Selection — for reviewing them in the Inspector or handing them over to Transition Copy & Paste

Transition Reverse Conditions (Return Helper) ​

Computes and displays the "conditions under which it no longer holds" = negated conditions of the selected Transition(s), and auto-generates return transitions (destination → source) from them. Turns "it transitions on ON, so I also want the return transition on OFF" into a single click.

  • Multiple Transitions with the same source → destination are reversed together (where the expansion of the negation requires it, they are generated as multiple return transitions)
  • Cases that need attention are flagged with warnings: reversing Greater ⇔ Less misses the exact threshold value / negating a Trigger is meaningless / the time condition of Has Exit Time is not negated
  • The generated return transitions can be reverted with a single Undo

AnimationClip Loop Maker ​

Auto-detects a "good loop point" in an AnimationClip and turns it into a looping clip.

  • Two methods: cut at the loop point (trim) / blend the end smoothly into the start (seam blend)
  • The search range is set on a timeline UI, and moving it re-searches live

Breath Animation Builder ​

Creates a copy of a Humanoid AnimationClip with breathing and sway added. Open it from the menu AnimationClip/Breath Animation Builder, or right-click an AnimationClip in the Project view → 「Breath Animation Builder で開く」 (Open in Breath Animation Builder).

  • Only Humanoid muscle curves are modified; everything else (RootT/RootQ, BlendShapes, Transforms, Animator parameters, etc.) is copied as is
  • Breathing … the chest / upper chest / spine / both shoulders / neck / head muscles swing with a cosine wave from the exhaled state (the original pose) to the inhaled state. The period is rounded so that an integer number of breaths fits the clip length (the effective period is shown in the window). Per-muscle weights can be adjusted
  • Sway (off by default) … adds Perlin noise scaled by a per-body-part weight × amplitude. With looping enabled the start and end join smoothly, and the pose at time 0 always matches the original
  • Preview … pick a Humanoid avatar in the scene and press 「プレビュー開始」 (Start preview). Setting changes apply immediately, and 「元のクリップを表示」 (Show original clip) lets you compare with the clip without breathing. Stopping restores the avatar (the scene is not modified)
  • Save … 「別名で保存...」 (Save as) writes a new .anim (choosing an existing file replaces its contents while keeping the GUID); 「元のクリップを上書き」 (Overwrite original) rewrites the source clip (undoable). Read-only clips such as those inside an FBX can only be saved as a new file
  • Length (default 15 s; for a looping clip with motion it is rounded up to a multiple of the clip length), key interval, loop and seed are shared settings. Clip settings such as Loop Blend and Root Transform are inherited from the source clip

AnimationClip Splitter ​

Splits a clip's curves into Animator-related (Humanoid muscles / Animator parameters) and everything else, and writes them out as two clips.

  • Humanoid ボーンのカーブだけを分ける (Split only the Humanoid bone curves) (toggle) … Turning it ON shows an Animator field. The tool collects the Humanoid bones mapped in that Animator's Avatar (the Transforms for Hips / Spine / …) and splits the clip into the Transform curves (position / rotation / scale) on those paths versus everything else (other bones, BlendShapes, Animator curves, etc.). Handy for pulling just the body-bone motion out of a Generic bone animation. The preview also shows how many of the bones were found in the clip. The split and export (suffixes, destination, inherited clip settings) work the same as the normal split

AnimationClip Path Editor ​

Batch-edits the curve paths of a clip, but only the paths you tick in the list. Add the target clips (more than one is fine), tick paths in the list, pick an operation, check the preview and Apply (undoable). It replaces the old "AnimationClip Path Batch Edit" (prefix on every path); select all and add a prefix to get the same result. The window uses the same left-hand tab column as Editor Setting, with a 「Path Editor」 tab and a 「MissingRemover」 tab; the target clips are shared by both tabs.

  • 置換 (Replace) … Replaces the search string with the replacement (a partial match inside a path is enough). Case sensitivity and regular expressions can be toggled
  • prefix / suffix 追加 (Add prefix / suffix) … Adds text before / after the selected paths. With 「階層として追加する」 (add as hierarchy) ON, a / is inserted automatically (Armature → Armature/Hips); OFF concatenates the text as-is (_1 → Hips_1)
  • 一部を削除 (Remove part) … Removes the given text from the paths (e.g. remove Costume/ to move the curves up one level)
  • The path list can be filtered, with select all / deselect all / invert for the visible rows. If the edit would make two curves collide on the same path and property, the preview shows them and Apply is blocked
  • MissingRemover tab … Pick an Animator and the tool lists every curve that cannot be resolved from its root (what the Animation window shows as Missing!: the GameObject / Component at the path is gone, the property does not exist, muscle curves on a non-Humanoid Animator, etc.) and removes them from the target clips in one go (with a confirmation dialog, undoable)

AnimationClip Binding Checker ​

Checks whether multiple AnimationClips consist of the same Path / Attribute (curve bindings), and lists the mismatched spots per clip.

Essential for WriteDefaults OFF workflows

With WD OFF, unless every clip in a layer animates the same set of properties, the previous value lingers when switching. This tool lets you verify at a glance that they match.

  • "結果をコピー" (Copy Results) outputs the report as text

RichText Builder ​

Assemble <b> / <i> / <size> / <color> segment by segment and build rich text while watching the preview, then copy it. For VRChat group descriptions and the like.

  • Gradient text decoration — Specify a Gradient and the color is sampled per character to create gradient text
    • The "なじませ" (Blend) slider blends abrupt color keys, which would otherwise make just one or two characters stand out, into the surrounding colors
    • The gradient field supports right-click copy / paste (two-way with Unity's gradient fields)
    • The output field shows the character count (a gradient costs roughly 23 characters of tags per character, so use it to check the limit of wherever you are pasting)
  • Import from RichText — The 「RichText から読み込む...」 (Import from RichText...) button at the top opens a window; paste existing rich text there and press 「読み込む」 (Import) to parse <b> / <i> / <size> / <color> into one segment per run of identical styling (replaces the current segments; there is a toggle to append after the existing ones instead)
    • Unsupported tags are kept as plain text. Gradient output becomes one color segment per character
  • The default size is 23

SerializedProperty Browser ​

Expands any UnityEngine.Object (Component / GameObject / Material / ScriptableObject, etc.) as a SerializedObject and lists every SerializedProperty with its propertyPath, type and current value, with a filter and foldouts; everything shown can be drag-copied. For looking up "what is the propertyPath of that field on this Component?".

  • For writing AnimationClip curves, properties whose propertyPath differs from the propertyName (e.g. m_BlendShapeWeights.Array.data[N] → blendShape.〇〇) also show the AnimationClip form
  • Formerly called "AnimationClip Binding Browser" (it lived in the AnimationClip group); the tool itself is unchanged

Asset Tools ​

  • Asset Reference Tree — Shows asset reference relationships as a tree
  • Copy Asset Values — Copies the contents of A into B between single assets of the same type (B's name and references are kept)
  • Hierarchy Path Tool — Computes and copies the relative path from Root to Target

MIT License