ツクMVでspineを扱うメモ
これはプラグインではない。
ツクールMV(RPG maker MV)でspineデータが表示されず、あーでもないこーでもないとこねくり回して数週間は悩むことになった過去への自分、あるいは今悩んでるだれかへのメモである。
(spineをツクMVから扱おうという輩は、プログラム知識あると仮定)
まずツクMVのpixi.jsはVer2だが、それでもspine用のメソッドをあらかじめ持ってるので、変にいじくり回す必要はない。
しかし君が一番初めに発見したコードはVer3用で、それをコピペしてもエラーになってる。そうだね?
それから探し回り、Ver2のを見つけているなら、エラーが出ないのは良いが画面にも表示されない…という所だと思う。
で、結論的にはこれが最小形だ。これでぬるぬる動く姿を見られると思う。
var boy; var scene = SceneManager._scene; var assetsToLoader = ["./spineData/zizi.json"]; loader = new PIXI.AssetLoader(assetsToLoader); loader.onComplete = function(){ boy = new PIXI.Spine("./spineData/zizi.json"); var container = new PIXI.DisplayObjectContainer(); container.position.x = 400; container.position.y = 600; scene.addChild(container); // container.addChild(boy); // boy.state.setAnimationByName(0, "walk", true); }; loader.load();
要点は、Ver2用のメソッドであるassetsToLoaderを使い、読ませること(.jsonのデータ形式を勝手に解釈してくれる様子)
そして表示用のコンテナーにspineデータを包んでから、シーンに追加することだ。
ちなみにメッシュ変形などの最新機能を使うと、正しく表示されない? 様子。
このコード内では自分の”zizi.json”というデータを読み込んでるが、
心配なら、公式のspineデータをまず読ませる事にトライすればいいだろう。
Ver2版へのリンク。
(example > .12 Spine)
これが最小形だが、ではScene_Battleに組み込もうとかすると、
onCompleteは非同期読み込み…、つまり「まだ読み込んでないのでカラ」といった事態も起こり得るので、気をつけよう。