Spineにリファレンスビデオ/連番画像動画を取り込む
Spineはボーンアニメーションツール。一般的な連番アニメーションには対応していません。これは設計思想から来るものですが、一方で不便なことも多々あります。
その最たる物がリファレンスビデオなんじゃないでしょうか。歩く、走る、といった参考モーションが同じタイミングで同期して隣、または背後にあれば作業の効率はぐっとあがります。私みたいな素人なんか特に。
で、この方法はいくつかあります。
最初に出てくるのがこれ。公式さんがやっている手法ですね。大量の画像をぶち込んで1つのアタッチメントに割り当て、表示をマクロで切り替えることで連番アニメーションの表現をしています。
上手く動くのですが、アタッチメントに大量に画像を割り当てる時点でSpineが固まります(正確には動いているのですが大量の画像の処理に操作不能になる)。その後のマクロ設定もまた時間がかかりますので大変です。
で、こっち。上記の操作をSpine外でjsonファイルを作成することで回避できます。手法自体は一緒。ありがとう先人たちよ。貴方たちのおかげで私はこうして楽ができます。pythonっていうプログラムが必要になります。
私はwindosなのでwindowsの方法で書きますが、macでも多分できるはずです。まずpythonをダウンロードします。4年前のスクリプトで、python2.7以上を使えよ!! と言われているので素直に2.7の安定バージョンを使用します。
インストールをしたらcmdを開き、引数を入れてpyファイルを実行します。
--output JSON_FILE 必須、出力するjson名。例:"my_image_sequence.json"
--images WILDCARD_PATH 必須、相対パスフォルダとイメージのワイルドパス。例:"my_images/*.png"
--images_root FOLDER_PATH オプション、フォルダまでのパス。デフォルトだと現在のフォルダ。例: "assets/images/"
--merge SPINE_JSON_FILE オプション、対象のスケルトンファイル。無い場合は空スケルトンにアタッチします。例:"my_existing_skeleton.json"
--bone NAME オプション、アタッチするボーン名、デフォルトはroot。
--framerate NUMBER オプション、フレームレート。デフォルトは30
基本的には--outputと--imagesをつければオッケーって感じ。
まず、cmdを開いてスクリプトがある場所まで移動します。私の場合は適当にデスクトップにまず置きました。
cd C:\Users\hogehoge\Desktop\spine_sequence-master
その後、pyファイルに引数をつて実行します。サンプルの連番イメージがありますのでそれを利用します。
spine_sequence.py --images spine_sequence_tutorial_files\images\fancy\*.png --output test.json
- 30 images found.
- Saved new json file: test.json
--- 0.01364 seconds ---
結果が出てスクリプトと同じ場所にtest.jsonファイルが生成されました。
後はこれをspineでデータインポートで読み込み、保存します。これでこの連番アニメーションがspineのスケルトンデータとして保存されます。
これを実際利用したいスケルトンデータで開けば、同時に再生することができます。
すばらしい!!
もちろん、リファレンスビデオとして利用する以外にも、様々なことに利用できると思います。繰り返しになりますが先人たちに感謝!
この記事が気に入ったらサポートをしてみませんか?