spine-godot(Godotエンジンへの Spine 対応版)がだいぶ良さげに動いていたので、かんたんに紹介する記事を書きました
目次
実行ファイルのダウンロード
spine-godotを利用するにはエンジンビルドが必要なのですが、実行ファイルをビルドしたものが提供されているので、少し試すだけなら、spine godotランタイムドキュメント のページからダウンロードするのが早いと思います
macOS版のみの問題点
macOS版は野良実行ファイルは動かせませんので、実行権限を与えて実行する必要があります。
またディスクへのアクセス権を設定しないと、以下のダイアログが出続けてしまう問題があります
いつもなら、このあたりの設定で出なくなりそうなのですが、私の環境では解決策が見つかっていません
本格的に使うときにもう少し調べてみようかと思います
SpineSprite
spineデータを読み込む場合には「SpineSprite」というノードを使う必要があるみたいです
このノードを作成して、インスペクタからリソースを読み込ませると、Spineデータを表示することができます。
対応データ
spine-godotが対応しているのは v4.1以降の Spineデータとなります。それ以前のデータの読み込みは正常にできないようなので注意が必要です。なお、なぜか公式のSpineboyサンプルは v4.1 に変換しても spine-godotでは表示できなかったので、spine-godotに含まれるサンプルを使用した方が良さそうです。
アニメーションをスクリプトで制御する
アニメーションの制御は get_animation_state() でアニメーションを取得し、set_animaton() で再生します
extends Node2D
# SpineSpriteを取得
@onready var spine = $SpineSprite
func _ready() -> void:
# アニメーションを取得
var anim = spine.get_animation_state()
# "run" という名前のアニメーションを ループあり、トラック0 で再生する
anim.set_animation("run", true, 0)
シグナル
SpineSpriteのシグナルは以下のものが用意されています
- animation_started: アニメーション開始
- animation_interrupted: アニメーション変更時
- animation_ended: アニメーション終了
- animation_completed: アニメーションループ時
- animation_disposed: アニメーション破棄時
- animation_event: ユーザーイベント
Spineからのデータエクスポート
Spineからデータをエクスポートする場合は、必ず v4.1以上を指定します
また、.atlasと.pngを出力するため「パック」にもチェックを入れておきます。
生成された、.atlas / .png / .json (または .skel) をGodotプロジェクト内の同一フォルダに配置するとインポートできるようになります
より詳しい情報
より詳しい情報はサンプルコードやヘルプ、ドキュメントを読みます
サンプルコードはspine-runtimesここからコードをダウンロードして「spine-godot/example」フォルダにあります。
ドキュメントはspine-godot Runtime Documentに公式ドキュメントがあります。
参考ページ
- spine-godot (Github):ビルド済みの実行ファイルやサンプルがあります
- spine-godot Runtime Document:公式のドキュメント
- spine-runtimes:サンプルコードはここからダウンロードして「spine-godot/example」フォルダを調べます