 |
 |
|
|
 |
|
 |
「カンフーファイター」制作舞台裏
 |
| |
[お知らせ] 今回使用したFLAファイルがこのページの最後でダウンロードできます
米光:今回は、全体の構成を見てみましょうか。
荻原:はい。じゃぁ、まずレイヤーとフレームから。
米光:レイヤーってのは、透明のシートみたいなものを想像すればいいんだよね。
荻原:そうです。アニメのセルみたいなものですね。
米光:そのレイヤーに、いろんな絵を置いていって。
荻原:重ねて画面を構成するわけです。
米光:「カンフーマスター」って、レイヤーいっぱいですね。
荻原:ほんとうはもっと少なくてもいいんですけど、まぁ、いつもだいたいこんな感じでやってるので、こうなってます。
米光:上の二つは、アクションスクリプト(ac)とラベル(label)を設置。残りの7つに画像が配置されてる、と。
荻原:タイトル画像(title)、ボタン(b)、スコア表示(score)、ライフ表示(life)、敵(eSet)、プレイヤー(pSet)、背景(bg)と分けて配置しています。こういう階層になっています。
米光:これって、たくさん分けてるのは、どうして?
荻原:うーん、単純に作りやすいから。
米光:それにくらべて、タイムラインは2コマ。
荻原:そうですねー。昔は、もっと多かったんですが、だんだんシンプルに、2コマで作るようになってきました。
米光:えーと、1コマ目がゲーム開始前で、2コマ目がゲーム中なわけですね。ゲームオーバーは?
荻原:ゲームオーバーも2コマ目。プレイヤーなどの制御を止めて、ゲームオーバーの文字を重ねてます。
米光:Flashって、たとえばプレイヤーの絵そのものにアクションスクリプトをつけたりするんだよね。
荻原:そうです。制御するアイテムにスクリプトをつけます。たとえば、「カンフーマスター」では、プレイヤー、敵、背景などにアクションスクリプトが組み込まれています。
米光:背景にも!
荻原:プレイヤーを動かす時、プレイヤーの位置を動かすんじゃなくて、背景を動かしてるんです。では、「背景とプレイヤーを配置して、キーを押すと移動する」ってところまでを作ってみますか。
米光:了解。まずbgのレイヤーを作って、そこに背景の絵を配置。その上にレイヤーを作って、pSetって名づけて、プレイヤーの絵を配置、と。
米光:あら、プレイヤー小さい。
荻原:プレイヤーの絵(ムービークリップ)のプロパティで縦横の大きさを変えられます。とりあえず、それぞれ倍の大きさに。
米光:で、プレイヤーのムービークリップ内のキーフレームに右キーを押した場合のアクションスクリプトをつけるんですね。
荻原:こんな感じですね。
if (Key.isDown(39)) {
//右
_root.speed = -2;
_xscale = 200;
gotoAndStop(2);
}
|
|
if( ){ }
条件分岐。( )の条件を満たした場合、{ }の処理を行う
Key.isDown( )
キーが押されている状態を調べる。右矢印のキーコードは39なので、Key.isDown(39)は右矢印が押されているかどうかを調べるの意。
|
米光:もしキーを右に入れたら、以下を実行せよ、と。
_root.speed = -2;
なので、speedの値を-2にするんですね。
荻原:そう。で、このspeedの値は、bgのアクションスクリプトのここで使われるんですよ。
this.onEnterFrame = function(){
_x += _root.speed;
if (_x > 0) {
_x -= 78;
} else if (_x < -78){
_x += 78;
}
}
|
米光:_x += _root.speed;ってのは、_x にspeedの値を加算せよ、と。_x ってのは、背景のX座標。
荻原:そう。背景の絵を、speedの値だけX座標ぶんずらすわけです。キーを右に入れたときはspeedは-2になっているので、背景の絵が、左に2ドットずれるんですね。
米光:右キーを押した場合のスクリプトで、_xscale = 200;ってあったのは?
荻原:これはプレイヤーの向きです。キーを左に入れたときは、_xscale = -200;になってるんです。そうするとプレイヤーキャラクターの向きが反対になる。
米光:ほう。_xscaleって横幅を指定しているわけですよね。200って200%?
荻原:そう。最初にプレイヤーの大きさを倍にしたから、100%じゃなくて200%になってます。
米光:で、キーを左に入れたときは-200%だから、反対側に200%横幅伸ばしてるってことで、反対向きになるわけか。
荻原:そうそう。
米光:右キーと反転した感じで、左キーを入れたスクリプトをつけて、これで、いったんパブリッシュしてみよう。
米光:あら? キーを一度入れると、止まらずに動きつづける。
荻原:あぁ。speedが2になったままになってるからですね。プレイヤーのアクションスクリプトに、これをつけたします。
else {
_root.speed = 0;
gotoAndStop(1);
}
|
else { }
ifの後につけて、条件を満たしてない場合に実行する
|
米光:えーと、右キーを押していたら、speedに2を入れて、そうじゃない場合は、speedに0を入れる。0になると、背景が止まる。というわけですね。
荻原:これで、キーをはなせば、止まりますよ。
今回は、とりあえずここまで!
次回「ゲームデザイン研究所」は、「ゲームの勝敗って何?」を予定している。
乞う御期待!
米光一成(よねみつ・かずなり)
1964年生まれ。広島県出身。コンパイル、スティングを経てフリーランス。
「ぷよぷよ」「トレジャーハンターG」「バロック」「キングオブワンズ」などを企画監督脚本。ゲームデザイナー、ライター、講師
として幅広く活動中。著作に『日本文学ふいんき語り』(麻野一哉・飯田和敏・米光一成/双葉社)、『デジタルの夢でメシを食うた
めにボクらは!』(米光一成編著/マイクロマガジン社)がある。
「こどものもうそう」ブログを更新中。
荻原貴明(おぎわら・たかあき)
1976年生まれ。群馬県出身。(株)デジタルビイムを経て2004年9月に独立し、フリーランスとして活動開始。
現在は、Niftyが運営する「デイリーポータルZ」「Game@Nifty」にてFlashゲームを制作。
主にFlashを使ったサイト制作、ゲーム制作を中心に活動中。
●米光一成&荻原貴明 一覧へ●
●ご意見・ご感想をお寄せ下さい●
|
 |
|
|
|
 |
|
|
|
|
|
|
 |
 |
|
|
|
|
|
|
|
 |
 |
 |
|
 |