リファレンス URL:skeleton_animation_list(sprite, list);

戻り値/無し。

スプライトが spine を用いたボーンアニメーションの場合に利用する関数。

指定したスプライトに格納されている全アニメーション名を取得してリスト(ds_list)へ格納する。


spine を使って作成されたボーンアニメーションは各モーションの呼び出しに固有識別子を利用する仕組みとなっている。skeleton_animation_list 関数で得た全モーションの名前を GML の標準機能/データ構造の一つリストds_list)で文字列として受け取り、このリスト(一次元配列)に格納された文字列を使ってアニメーションを呼び出すことができる。


参考動作:Blue_Ninja

※ HTML5 で Spine Animation を動作させる場合、サーバ設定で .skel 拡張子を MINE へ追加する必要があります。ただしこれはサーバ環境にもよる。

スクリプト・サンプル
// Create Event に記述する部分/初回に一回だけ実行 list = ds_list_create();// リスト用の配列を初期化 skeleton_animation_list(SkeletonAnimation, list);//第一引数には sprite を指定する //リストには Spine で作成されたアニメーションの固有識別子が全て格納される //この辺りの作業は実際に Spine を使った製作の経験が無い人だと分からないと思う //一次元配列にリストを利用することで Sort など便利な関数も利用できるようになる counter=0;//タイミング調整用としてインスタンス変数「couner」を確保 MotionIndex=0; skeleton_animation_set(list[| MotionIndex]); //=========================================; //ここからは Step Event に追加するアクションとして counter += 1; if counter == 100 { MotionIndex += 1; if MotionIndex>=ds_list_size(list){//インデックスを0に戻す MotionIndex=0; }; skeleton_animation_set(list[| MotionIndex]);//格納された識別子を呼び出し counter=0;//カウンターを0に戻す }; //カウンターが100になったら次のアニメーション動作へ切り替え //=========================================; //ここからは DrawGUI Event に追加するアクションとして var a; //NOTE: if you need to check if a data structure exists, //you can use the ds_exists() function. if !ds_list_empty(list) {//実行する前にリストが空でないか確認する儀式 a = ds_list_size(list); var b,c,d; b=200;c=20;d=20; draw_text(0,b,"Total Animation Number = "+string(a)); for (var i=0; i < a; i+=1) { draw_text(0,b+c,"Index "+ string(i)+" = "+string(list[| i])); c+=d; }; }; //アニメーションを一覧として出力
Functions/skeleton_animation_list

Leave a Reply

Your email address will not be published. Required fields are marked *