• 日本語
  • 複数のスケルトンのアニメーションをマージする方法について

Related Discussions
...

バージョン3.8です。初歩的な質問ですみません。現在分けて管理していたスケルトンを1つに合成して新しくスケルトンを製作しようとしているのですが、お教えいただきたい点があります。

以下は例え話になるのですが、異なる手に武器を持ったキャラクターを別のスケルトン上で管理していたとします。
【右手に武器を構え、武器を振るキャラクター・アニメーションのみがあるスケルトンA】
【左手に武器を構え、武器を振るキャラクター・アニメーションのみがあるスケルトンB】
がすでに完成し、これらから、新しく
【左右の手で同時に武器を振るアニメーションがあるスケルトンC】
を作ろうとしています。

これを行わなければならない対象が数えられる程度の数ならアニメーションを作り直せばよいのですが、なにぶん多いもので、効率化を図る必要があります。

ふつうはAとBを合成しても違和感が出るものと思いますが、私のプロジェクトでは、
【スケルトンAから右手の動きを、スケルトンBから左手の動きをコピーし、胴体の動きのみがあるスケルトンCのベースに移植(合成)】
ができればうまくいくのです。

これまでは、スケルトンをまたいだアニメーションの合成の方法がわからず、実際の環境上で
【スケルトンAとBの必要な部分のみを胴体の動きのみがあるスケルトンCのベースに重ねて描画】
することで解決していましたが、開発の都合上これらを一つにまとめたいのです。
何かうまい方法はあるでしょうか。

こんにちは!

ご質問の件ですが、あらかじめ分かれていたスケルトンの一部を1つにマージする作業は、残念ながらあまり簡単に行う方法がありません。
ただアニメーションについてはSpineメニューの プロジェクトインポート...(Import Project...) から開けるプロジェクトインポートダイアログのインポートのオプションで アニメーション を選択していただくことでインポートが可能です。
その際、インポート元のスケルトンとインポート先のスケルトンの間でボーンやスロットなど各要素の名称が揃っている必要があり、名称が異なっている要素がある場合はそのタイムラインは無視されます。
逆にこれを利用して以下のようなことは可能です。


【前提:スケルトンCを素体とし、スケルトンAから右手の動きだけをインポートする場合】
1.スケルトンCの右腕〜右手のボーンやスロット名がスケルトンAの名前と一致していることを確認する
2.右腕〜右手以外はスケルトンCの元々の動きを残したいので、スケルトンAと被らない名前に変更する
3.プロジェクトインポートよりアニメーションをインポートする
4.右腕〜右手のキーだけが残ったアニメーションがインポートされるので、
 それらのキーをコピーして必要なアニメーションにペーストする


なお、アニメーションのインポートを行なった際、同名のアニメーションは自動的に別名に変更されてしまうので、たとえば元のアニメーション名が attack だった場合、attack2 のようになってしまうので注意してください。改名されたアニメーションの方に必要なキーがインポートされているはずですので、それらのキーをコピーして元の名前のアニメーションにペーストしてください。
※バージョン4.1では同名のアニメーションを上書きするオプションが追加されたので、このマージ作業が少し簡単になっています。

アニメーションのインポートについてはユーザーガイドのこちらのページでも解説されています:
インポート - Spineユーザーガイド: アニメーション

残念ながらアニメーションのインポートはコマンドライン経由で行うことが出来ないため、これらの作業を自動化することができません。そのため、お手数ですが都度プロジェクトインポートウィンドウを開いてインポート元のSpineプロジェクトやインポートしたいアニメーションを手動で選択していただく必要があります。

手順が多くて恐れ入りますが、ご参考になれば幸いです。

ありがとうございます。なかなか手順が多くて大変ですが、一つずつ進めていこうと思います。

名前の変更について念の為ひとつだけ補足させていただきますと、検索と置換を使用すればボーンやスロットに簡単に接頭辞や接尾辞を追加できます。検索と置換ウィンドウを開くには以下のボタンを押してください。

オプションの 正規表現(Regular expression) にチェックを入れた後、検索(Find) 欄に「」を入力して 置換(Replace) の欄に好きな文字列を入れると選択した要素の名前に一括で接頭辞を追加できます。接尾辞を追加したい場合は 検索(Find) 欄に「$」を入力してください。範囲(Scope)プロジェクト全体(Entire project) になっている場合、変更したくない要素まで置換候補に挙がることがありますが、置換したくないものは右側の置換結果のプレビューリストでチェックを外すことができます。その他、あらかじめ置換対象をツリービューで選択してから実行することもできます。

今回のケースのように名称に何かしらの分類を加えたい場合には大変便利なので、ご参考になれば幸いです。