UnityEditor拡張 edge2アニメデータの読み込み
以前windowsFormで作成していたedge2のアニメーションデータxml->ゲームで使用するアニメデータに整形・データ追加のツールをUnityのエディタ拡張で作ってみました。
過去にツイッターで見たEDGE1のアニメデータ(テキスト)の読み込みツール
ドット絵エディタEDGEのアニメーションファイルをUnityで読み込むツールをScriptedImporterで作り直した。fbx読み込みでもだけどやっぱりNotEditableは辛いよねぇ。ソースコード量的にリファレンスに丁度良いのでちょくちょく見返しそう。 / EdgeAnimationDesignerAssistance https://t.co/72CPtq9Jgg
— ERAL (@eral_r_l) 2018年1月2日
とほぼ同じ?使ったのが結構前なのでうろ覚えですが
画像を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で半額セール中です。(告知が遅い)