見出し画像

Spineにリファレンスビデオ/連番画像動画を取り込む

画像1

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のスケルトンデータとして保存されます。

これを実際利用したいスケルトンデータで開けば、同時に再生することができます。

画像2

すばらしい!!

もちろん、リファレンスビデオとして利用する以外にも、様々なことに利用できると思います。繰り返しになりますが先人たちに感謝!

この記事が気に入ったらサポートをしてみませんか?