プロジェクトタブからAnimationClipをAnimatorに加えるEditor拡張
アニメーション編集でVeryAnimationなどを使っているとき、操作できるAnimationClipはAnimator(AnimationController)に加えられているものだけだ。
プロジェクトウィンドウにあるClipをAnimatorタブにドラッグアンドドロップすればいいのだが、地味に面倒くさい。
そこで、少し汚い方法だがEditor拡張を書いてしまう。
AnimationClipを追加したいキャラの名前を決め打ちで書いているのがアレだが、実用上はそこまで困らない。
スクリプトの内容
using UnityEditor; using UnityEditor.Animations; using UnityEngine; public class AnimConMenu { [MenuItem("Assets/Add to anim-controller")] static void AddToController() { if (Selection.activeObject is AnimationClip) { var key = "R1N4_V2_mine01 (1)"; //ここに対象にしたいキャラの名前を入れる AnimationClip clip = (AnimationClip)Selection.activeObject; var animator = GameObject.Find(key).GetComponent<Animator>(); if (animator == null) return; var controller = animator.runtimeAnimatorController as AnimatorController; ; if (controller == null) return; Motion motion = (Motion)clip as Motion; controller.AddMotion(motion); } } }
var key = のところを、自分が使っているキャラの名前に変更するのを忘れないこと!
このようなスクリプトを「AnimConMenu.cs」といった名前でEditorフォルダに保存する。
実行手順
こんなAnimatorに、
この「mikarup_st006.anim」を加えたいとする。
(繰り返しになるが、一回きりならドラッグアンドドロップすればいいだけである。ただAnimatorタブを開きに行くなどの手順が面倒くさいので……)
さきほど書いたスクリプトにより、Add to anim-controllerというメニュー項目ができている。
実行すると、たしかに「mikarup_st006」が加わった。
VeryAnimationでも……
VeryAnimationでもこの通り、選択できるクリップのリストに「mikarup_st006」が加わっている。
選択すれば、先程のハゲ頭がやっていたポーズと同じポーズになっている。
あとはVeryAnimationの「Tools - Create New Clip」の「Duplicate」でも使えば、元のクリップを残したまま新しいAnimationClipを編集することも可能だ。
(逆に最初の段階でProjectタブからCTRL+Dで複製し、それをAdd to anim-controllerするのでももちろん良い)
メリットは
プロジェクトタブで「よし、このClipを元に新しいClipを作ろう」と思ったときに
- Animatorタブを選択して
- 元々選んでいたClipを改めて選択して長距離移動のドラッグアンドドロップをし
- Animatorタブをまたウラに戻す(常時開いていてもだいたい邪魔なだけでメリットがない。普通はSceneやGameタブを大きく開いているはず)
とかやるのは案外面倒である。
ちょっとした時間の短縮だが、VeryAnimationを使っている場合はけっこう作業しやすさが増すと思う。