Spineに命名規則の考えを取り入れてモーションを使い回そうぜって話
表題の通り!!
プログラムには命名規則って考え方があります。プログラム側が指定してきた名前でファイルや変数を作れば、その名前から内容を判断して大部分の処理をプログラム側が勝手にやってくれるというものです!
Spineでもこの考え方を導入できないかなって思ったわけ。代表的なボーンの名前を統一することで別のスケルトンのモーションを簡単に他のスケルトンに持っていけるんじゃないかって事。
モーション移植ができるか試す
できるだろうとは思うのですが、こういうのは自分でやってみてこそですね、うん。
まずシンプルにrootボーンが左右に動くだけのモーションを作ります。
これを保存。新しくプロジェクトを作り、プロジェクトインポートで上記アニメーションだけを読み込みます。
警告が出ましたかが、同じ名前があったから名前かえたで!! ってだけなので気にしないでOKします。
アニメーションが2つできていることが確認できました。
しっかりとモーションもできていることが確認できました!!
同じ名前ならモーションが移植できることがよくわかりましたね!
名前が違うとどうなるのか
もう少し試しましょう。
もう1つ、boneという名前でボーンを作ってみました。このモーションを移植してみます。
警告が増えました。boneが無いぞって警告です。
アニメーション自体は移植できています。
アニメーション自体は移植し、rootは動きますが、boneは新しく作られず、紐付けもされていないためアニメーション内にはキーが設定されていません。
ここからわかることは、同じ名前のモーションなら他から移植でき、新しくボーンを作ってくれたりすることはないということ! なるほどね?
アニメーション移植の仕様
・同じ名前のアニメーションが移植先にあっても名前は上書きされない。
・同じ名前のボーンにアニメーション設定が移植される。
・同じ名前のボーンがなければそのアニメーション設定は消去される。
この仕様を上手く使えば、様々なスケルトンで同じモーションを流用できるということですね!!!
どう名前をつけるか
ちょっと思いつかないため、この考えを一部取り入れているAfter EffectsのキャラクターリギングアニメーションプラグインDuikを参考にしようと思います!
確かSpineの公式ドキュメントのどっかにも名前は決めた方が良いぜ的な事が書かれていたような記憶もあったのですが、もはやどこで見たのかも思い出せません。
べべ~~ん
左右の腕はleftとかrightとかじゃなくて、2,3,4と番号を振る形みたいです。これはおそらく多脚とかモンスターとかでもリギングに対応できるためでしょう。なるほどなるほど。
Hipが中心で、ここが軸で体全体が動き、手首や足首にIKのターゲットがあります。ふんふん。
わりかしシンプルだなって印象です。基本的にはDuikに即していこうと思います。
ボーン構築
グーグル画像検索などで「7頭身 アタリ」とかで探すと、様々なベース画像がでてきます。それらから自分の好みを見つけましょう。で、それをSpineに取り込んでボーンを組みます。
まあ各ボーンの長さは適当でも良いと思います。結局は素材に合わせて変えていくことになりますし。
とりあえず左半身。hipから始まり、spine1、2と背骨。hipから足、spine2から腕が出ています。
腕と足を複製。反転させます。
基本の完成。Spineはボーンが名前順で並ぶので、これで腕は腕、足は足って感じで隣り合ってならんでくれます。
あと、例ではlとrでボーンを分けてるんですが、作業している途中で左右どっちだっけ?と間違えまくったので見て左から1、2って感じで番号仕様に変えました;;。
個人的によく使うコンストレイントを仕込む
個人的によく使う定番コンストレイントを仕込みます。腕足のIK、胸への肺エンジン、腰、頭の体外コントローラーです。文字だけだとマッドサイエンティストですね。
仕込みました。各自やりやすい物があると思うのでここでは説明しません(腰のコントローラーがちょっとミスってるのは後で修正しました)。ボーン構成はCGWORDで連載されている柴田章成さんのボーン構成に多大な影響を受けています。
この連載と、そこで配布されているspineプロジェクトファイルはめちゃくちゃ勉強になりますのでまた見ていない方はおすすめです!
私はSpineの基本を習得するために初めから最後までこの連載に助けられました。感謝ぁ!!! また、おそらくこれ実際にゲームなどで利用したプロジェクトデータだと思うんですよ。実際の運用するためのノウハウが詰め込まれていて、それを読み解くのにも良い題材だと思います。
さて、名前はtemplate_human_7とでもして保存します。7は7頭身の7です。templateが先に来てるのは、名前順で並べ替えたときにtemplateが先に来るようにです。
同じ要領で4頭身の物も作ってみます。ここからはちょっと楽です。元となる7頭身のものから各部位を調整するだけですからね。この時コンストレイントがおかしくならないように注意してください。
4頭身のテンプレートで簡単なアニメーションを作ってみる。7頭身へと持って行ってみます
少しぎこちないけれどほぼほぼ問題無く動いています!!
これ、手がおかしいのはikを使っているから、各ボーンを使ったキーフレームなら問題無く移植できると思います。少なくとも頭身がほぼ同じボーン間であればそこまで問題無いかなって感触です。しばらくこの手法で弄ってみようと思います。
この記事が気に入ったらサポートをしてみませんか?