Pythonでゲーム制作

Pythonista+sceneで歩行アニメーションを作成する方法

こんにちは、みやびのです。

今回は、Pythonista+sceneで歩行アニメーションを作成する方法を紹介します。

アニメーションがなくてもオブジェクトの移動は可能ですが、アニメーションを加えることでより自然なアクションで移動させることができます。

簡単なアクションができたら完成度を上げるために歩行アニメーションも活用しましょう。

本記事の内容は以下の通り。

・Pythonista+sceneで歩行アニメーションに必要な処理
・Pythonista+sceneで歩行アニメーションの実装例

Pythonista+sceneで歩行アニメーションの基本

歩行アニメーションに関する基本的な事項について解説します。

歩行アニメーションと画像

歩行アニメーションを追加する場合以下の3種類の画像が必要です。

・立ち絵画像:立ち止まっている時の画像
・歩行画像1:歩いている時の画像1枚目
・歩行画像2:歩いている時の画像2枚目

立ち止まっている時は立ち絵画像を設定します。

歩行中は歩行画像1と歩行画像2を連続で切り替えることで自然な形の歩行を見せることが可能です。
Pythonista歩行アニメーションの仕組み

具体的な処理は以下の通り。

・update()メソッドでオブジェクトの位置情報(object.position)を監視
・オブジェクトのx座標を2で割り余りを求める
・余りの値によって画像情報(object.texture)を書き換える(0の場合は画像1,1の場合は画像2)
・立ち止まっている場合は歩行画像ではなく立ち絵にする

歩行アニメーションの向き

オブジェクトの向きは「object.x_scale」に格納されています。
object.x_scaleの値を変えることで進行方向に合わせてアニメーションの向きを切り替えることが可能です。

具体的な処理は以下の通り。

・進行方向の情報を取得
・進行方向によってobject.x_scaleの値を変える(1 or -1)
・停止中はobject.x_scaleの値を変えない

キャラクターの向きは以下の式で求めることができます。

direction = (a > 0) - (a < 0)

上記式の結果は1・0・-1のいずれかです。
object.x_scaleに0を設定してしまうと画像が消えてしまうので、その場合は-1か1を設定しておきましょう。

また、画像によって前後が異なるので注意が必要です。
(-1が前の画像と1が前の画像がある)

Pythonistaとオブジェクトの向き

キャラクターのアニメーションに関してはPythonistaの「Examples/Game Tutorial/Tutorial Part3.py」が非常に参考になります。

Pythonista+sceneで歩行アニメーションの実装例

基本的に「Examples/Game Tutorial/Tutorial Part3.py」の内容をそのまま実装して画像だけ切り替えればOKです。

内容はほぼ「Examples/Game Tutorial/Tutorial Part3.py」からの引用でコメントを追加しています。
なので基本的にはチュートリアルを動かしつつコードを熟読しておけばOKです。

◆実行例

終わりに

今回は歩行アニメーションを追加する方法について紹介しました。
歩行アニメーションがあるとより自然なアクションができるのでゲームの完成度が高まります。

歩行用の画像を用意すれば簡単な処理を追加するだけで実装できるので是非挑戦してみてください。

Pythonistaについては「Pythonistaの使い方まとめ」にまとめています。

こちらの記事も読まれています

  • この記事を書いた人

みやびの

住んでいるところ:神奈川県。 プログラミング歴は13年ほど。 ※プログラミングに関する無料相談・質問への回答は行っていません。

-Pythonでゲーム制作
-

Copyright© みやびのどっとぴーわい , 2024 All Rights Reserved Powered by AFFINGER5.