スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

マップチップを動くキャラクターのアニメーション方法に関する考察

引き続き、ゲーム制作を続けていますが、
マップチップ上を動くキャラクターのアニメーションに関して
ふと、思った事があります。

今まで、マップチップ1つあたり:32ドットで、
キャラクターのアニメーション用の画像が4枚ある場合、


( 現在の座標 % 32 ) / (32 / 4)で画像を切り替えていたのですが、
これ、良くない方法なんじゃ?と思ったのです。
-----------------------------------------------------
※実際に当てはめて考えてみましょう。

主人公が(1,1)のマス目にいて、右へ1マス動くとします。
座標で考えると、(32,32)から、(64,32)へ動きます

( 32 % 32 ) / 8 = 0
( 40 % 32 ) / 8 = 1
( 48 % 32 ) / 8 = 2
( 56 % 32 ) / 8 = 3
( 64 % 32 ) / 8 = 0

この場合、上記のように
式の計算結果の値は0,1,2,3,0のように変化します。
これを画像切り替え番号として使用します。

【参考画像】
FieldChiruno.png


上記の画像を使用した場合、
こんな感じで歩いているように見えます。

分かりにくい計算式ですが、
要は、移動距離が32なんだから、それを4等分(8ドットずつ)にして、
その境界で4枚の画像を切り替えて表示させよう
、という事です。

【参考画像】
FieldChiruno2.jpg


で、コレで実装してたんですが、問題が発生しました。

移動速度を上げたら
意味が分からなくなる
のです。

上記の例で言えば、右へ1ドットずつ移動するから
画像の切り替えが視認できる
ものの、

移動速度が8ドットとかにすると、
点滅するが如く、一瞬で画像が0,1,2,3,0と切り替わるので、
何かガクガク動いているが、歩いている様に見えない
という状態になるのです。


で、出した結論が、
画像の切り替えは
移動中の座標で決めない

というもの。


時間を計っておき、どこを移動していようが、
時間に応じて画像を切り替えるのです。
画像0,1,2,3,0の切り替えを、200ミリ秒間隔で行う、という風に。

そしたら、移動速度を上げても
意外と自然に見えました。


よくよく思い返してみると、
市販のゲームとかでも、この時間によって画像を切り替える手法が使われていた
ような気がします。

(移動していない場合は、その場で足踏みしているように見える)

うーん、何故今まで気が付かなかったのか。

なので、座標による画像切り替えで歩いている(走っている)様に見えない!
と悩んでいる方は、一度

時間による画像切り替えの方法を試してみると
良いのではないかな
と思いました。
自分はこれで行きます。
スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント
コメントの投稿
管理者にだけ表示を許可する



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。