ケータイFlashゲーム制作レクチャー

第4回 アクションゲームレクチャー(3) キャラの作成と当たり判定

この記事を読むのに必要な時間:およそ 0.5 分

PCのHP(耐久)バーを作る!

HP(耐久)バーは,PCがトラップと衝突した際に減少する仕様になっている。HP(耐久)バークリップの作り方は,実物を見た方が分かり易いので,以降の解説と合わせて,flaファイルGameAct_04.flaFlash CS3用のものまたはFlash 8用のものをご覧頂きたい。

Fla画面6 HP(耐久)バークリップ内

Fla画面6 HP(耐久)バークリップ内

HP(耐久)バーの作り方としては,HP(耐久)を表す青色のムービークリップを,PCのHP(耐久)状態分,X座標方向にずらしていく(はみ出す部分はマスクで隠している)⁠そうすると,下地の赤色面積が増えていき,どんどんダメージを受けているように見える仕組み。

bar1 = bar._xscale / ../../../:hp_max; //[1]

bar._x = (../../../:hp_max - ../../../:pc_hp) * bar1; //[2]

[1] ダメージ受けて減る1メモリを,HP(耐久)バーの長さ÷最大HP量で算出し,変数bar1に保持しておく

[2] HP(耐久)最大値その時点でのHP(耐久)量したHP(耐久)残量bar1乗算し,その分HP(耐久)バークリップをX座標方向にずらす

メダルを作り,PCとの当たり判定を作る!

それでは次に,PCが触れることによってゲットできるメダルの作成へ移ることにする。このメダルは,1つで500点になる。

実際のflaファイルGameAct_05flaFlash CS3用のものまたはFlash 8用のものを確認してほしい。

Fla画面7 メダルクリップ内

Fla画面7 メダルクリップ内

Fla画面7はメダルクリップ内だが,構造は単純で,PCとメダルクリップとの当たり判定を行い,衝突したらメダルゲットへ移行する。3フレーム目のメダルゲットからタイムライン最後までの間は,このメダルクリップが画面外へ外れるまでの間である。画面外へ外れたらフレーム1へ戻して再びメダルをステージに配置している。

(1)スコアへの加算

ルートにあるスコア変数「Score」へ加算している。

/:Score += ../../:scr_medal;

(2)PCとメダルクリップとの当たり判定を作る

前回にも記したように,FlashLite1.1には,ムービークリップ同士の衝突判定を行える「hitTest関数」が無いため,それに代わる判定を何かの方法で行うしかない。そこで筆者は,ゲーム制作本来の方法である「座標範囲による判定」を行っている。

if (../../:pc_dmg == 0) { //[1]
 if (_x - 32 <= ../pc:_x and _x + 32 >= ../pc:_x) { //[2]
  if (_y - 32 <= ../pc:_y and _y + 32 >= ../pc:_y) { //[2]
   gotoAndPlay ("get");
  } else {
   gotoAndPlay (1);
  }
 } else {
  gotoAndPlay (1);
 }
} else {
 gotoAndPlay (1);
}

[1] PCがダメージ状態でなければ,PCとメダルクリップとの当たり判定を行う

[2] ここで,PCとメダルクリップとの座標範囲による当たり判定を行っている。詳しくは下記の図で解説

画像

画像

画像

このように,クリップの基準点を中心とした座標範囲を当たり有効範囲と設定し,クリップ同士の当たり判定を行う。この方法なら,両者がどのように動いて衝突しても当たり判定が行える。ここでとても重要なのは,当たり有効範囲の調整である。

当たり有効範囲の重要性

例えば≪衝突例②≫≪衝突例⑤≫を見ると,PCとメダルクリップは接触しているが,これはメダルゲットとみなしていない。プレイした感触として確実にゲットしたと見えなければならないからだ。‥が,当たり有効範囲がシビアになればゲーム難易度は上がっていくので,有効範囲を甘くするか辛くするかのさじ加減はとても重要となる。これがトラップやエネミーとの当たり判定なら,もっと重大である。


[参考]操作ケースによる番号キーの使用例

今回のアクションゲームでは,番号キーの5キーのみ使用しているが(実は決定キーも対応させてある)⁠ゲーム内容によっては複数キーが必要になってくる。そこで,番号キーの使用例を参考にまとめてみた※3)⁠

※3
もし右利き左利きに対応させたいなら,タイトル画面で選択させフラグとして保持すれば良いだろう。

画像

正直なところ,番号キーでの操作はゲームに向いているとは言いがたい。入力スピードを要求されたりアクション性が高くなるほど操作難となる。そのため,操作性(キー設定)を意識したゲーム内容やゲームシステムの検討が必要となる。また,キャラの操作キーと「YES」⁠NO」などの選択キーが同じだと,キャラ操作の勢いで選択肢を選ばず押してしまう危険性があるので,選択肢は別キーにしておく,選択肢の前にキー入力を受け付けない間をとる,⁠よろしいですか?」確認をするなどの対策が望ましいだろう。

以上で4回目は終了~!次回は,アクションゲームレクチャーの最終回!トラップの作成やPCとの判定を中心にレクチャーします!次回お楽しみに♪

著者プロフィール

西村直樹(にしむらなおき)

クリエイティブスタジオ Studio無限界 代表。アニメーターを経て,ゲームクリエイターとなる。ゲーム制作では,企画シナリオ,ディレクション,絵関連など幅広くこなし,ゲームクリエイターとして現在で19年となる。また,ゲームスクール,アミューズメントメディア総合学院にて,創立年から企画系講師を行い,クリエイター育成にも携わっている。現在は,マネジメントを行いつつ,コンシューマゲーム,ケータイコンテンツ,書籍執筆,その他様々なプロジェクトを進めている。

Studio無限界
URLhttp://www.mugenkai.com/


藤田和久(ふじたかずひさ)

プログラマ/テクニカルスーパーバイザー。メインフレームと呼ばれる大型コンピュータのシステム開発から,WebサイトのCGI,そしてケータイFlashに至るまで様々な環境のプログラミングに携わる。現在はStudio無限界の活動の傍ら,都内複数の専門学校において講師として,ゲーム制作,Webサイト制作,システムエンジニアリングなどの授業を担当。 また,Studio無限界とは別にFMS(個人)として,システムエンジニアリングの分野でも 活動している。

Studio無限界
URLhttp://www.mugenkai.com/