同人ゲームサークル reverse snare 開発ブログ

主に2DSTGを作ってる同人ゲームサークル reverse snareの開発記、イベント・作品宣伝を行うブログです。

UnityEditor拡張 edge2アニメデータの読み込み

blg.jpg

blg2.jpg

blg3.jpg

以前windowsFormで作成していたedge2のアニメーションデータxml->ゲームで使用するアニメデータに整形・データ追加のツールをUnityのエディタ拡張で作ってみました。

過去にツイッターで見たEDGE1のアニメデータ(テキスト)の読み込みツール

とほぼ同じ?使ったのが結構前なのでうろ覚えですが

画像をunityプロジェクトに取り込んでspriteシート設定を割り当てる。

アニメに使用するspriteシートのrect割り当てやループ設定・回転許可などの設定はscriptableObjectに保持する。

上記ツールはソースが見れるのですが知識0ではほとんど理解できなかったのでググりまくった。

エディタ拡張

https://anchan828.github.io/editor-manual/web/reorderblelist.html

http://kan-kikuchi.hatenablog.com/entry/ReorderableList

過去ソースを移植した時にソリューションを2つに分けられて困ってたけど、エディタ拡張でEditorフォルダ使うからなのね。

画像取り込み

https://qiita.com/sapphire_al2o3/items/54a6d8ac321d6e1d9b79

EditorUtility.OpenFilePanel()で開くダイアログで画像を指定して読み込み。

https://qiita.com/harhogefoo/items/91fd13a8ab0a51def7e4

エディタウィンドウ表示用。全体を取り込んでからアニメデータに基づいて切り抜き。

edgeのyの0原点は上だが、unityは下が原点のため、反転計算が必要。

https://answers.unity.com/questions/943797/editor-script-to-slice-sprites.html

sprite保存時のrect割り当て。

SpriteMetaDataの配列をsprite.spritesheetに入れる。

コンボボックス的なやつ

https://docs.unity3d.com/ja/current/ScriptReference/EditorGUILayout.Popup.html

disabledなGUI

http://tiri-tomato.hatenadiary.jp/entry/20140318/1395104788

EditorGUI.BeginDisabledGroup(bool);

EditorGUI.EndDisabledGroup();

画像・spriteシート保存した後のunity Projectウィンドウ更新

https://qiita.com/thaladabar/items/8e74cd30d3a4294d07ad

AssetDatabase.Refresh();ではspriteシートが表示されないため、

AssetDatabase.ImportAsset( パス, ImportAssetOptions.ForceUpdate );

保存したspriteのspritesheet読み込み

http://kan-kikuchi.hatenablog.com/entry/MultipleSprite_LoadAllAssetsAtPath

画像保存後、再度読みだしてscriptableObjectに設定する。(冗長な処理な気がする)

画像保存とscriptableObject保存だけ行っていてこのデータでゲームを動かしていないので、ちゃんと動くかは今後の実装のお楽しみ。

あ、ンスプブGWで半額セール中です。(告知が遅い)

http://www.dlsite.com/home/work/=/product_id/RJ196354.html