何はともあれ、キャラクターが表示できないとどうしようもないので、キャラクターを表示するクラスを作成。
tmlib.js には、AnimationSprite と、言うクラスがあって SpriteSheet クラスの素材をつかって、キャラクターのスプライトを管理、アニメーションをいろいろ作成できるようになってます。
SpriteSheet クラスは、.tmss という拡張子で json ファイルを用意することで、AssetManager から取得可能です。
もろもろ詳しくは、tmlib.js の AnimationSprite を使ってコマ送りアニメーションさせてみよう TM Life を参考に~
tmlib-rpg では、今のところ
- Character クラスは、内部で使うキャラクター情報のクラス
- SpriteCharater クラスは、Character を表示するためのクラス
と、言う感じ。RGSSの構成と同じ。
でもって、Character は、hash で初期化するので、json を渡せば良い…
こうしておけば、そのうち Character 自体を、AssetManager で管理すれば、ゲームデータとして、管理するのも簡単かな~?と
今のところの構成をメモ
ASSETS =
'sample.character':
_type: 'json'
spriteSheet: 'sample.spritesheet'
mapX: 0
mapY: 0
moveSpeed: 4
'sample.spritesheet.hiyoko': 'img/hiyoco_nomal_full.png'
'sample.spritesheet':
_type: 'tmss'
image: 'sample.spritesheet.hiyoko'
frame:
width: 32
height: 32
count: 18
animations:
down: frames: [7,6,7,8], next: 'down', frequency: 4
up: frames: [10,9,10,11], next: 'up', frequency: 4
left: frames: [13,12,13,14], next: 'left', frequency: 4
right: frames: [16,15,16,17], next: 'right', frequency: 4
Character には、spriteSheet を指定して、SpriteCharacter は、基底クラスがAnimationSprite なので
Character.spriteSheet で初期化
上のサンプルは、hiyoko のpng 素材を使った、spriteSheet の RPG サンプルになってます。
上下左右に動くときのアニメーション。frequency は調整の必要があるけど…これはmoveSpeed にあわせて変えるべきかも?
この後、実際にキャラクターの能力とかの設定になってくるのだけど、これはRPGのシステムに影響するので、tmlib-rpgをフレームワークぽくするにはちょっと考える部分。あまり作りこんでもシステムが作りたいRPGに合わないとか云々…RGSSでは、みんな好き勝手に変更してたので、出来るだけ改造しやすいように、tmlib-rpg もしたいなぁ~
とかとか思いつつ、まだまだ作成中…