【LiveMaker講座 -LiveAction-】
LastUpData...2007.10.04

-[ Section Index ]-

Part.1--Introduction
目的の紹介
Part.2--Explanation
内容の説明
Part.3--Download
サンプルのダウンロード
Part.4--Memory
更新履歴



Part.1--Introduction

LiveMakerでアクションゲームを作成してみよう、というのを実際にやってみました。LiveMakerのヘルプに記載されている内容だけでは、画像を自由な位置に移動させることは出来ませんが、SetProp関数とコンポーネントのパラメータをうまく利用することで、解決の糸口が見えてきます。

LiveMaker独自の部分は画像表示に関わる部分が主で、その他(キャラクターの移動距離の決め方や重力の作用など)は一般的なアクションゲームと同様だと思います。ですので、一応LiveMaker講座と名前の付いてる当ページでは、アクションゲームの基礎については軽く触れる程度にしておきます。アクションゲームについて解説されているサイトですと、二段ジャンプや当たり判定、マップの設定など、より発展的な内容もあると思いますので、参考にしてくださればと思います。

正直なところ、プログラムについてあまり詳しくない方にとっては難しい内容が多く含まれます。このLiveActionならまだよいのですが、LiveAction::CoinGetterのように発展系を考えると、難易度はさらに上がります。僕の書き方もあまりうまくないので、ご質問などありましたら掲示板やメールなどでお尋ね下さい。




Part.2--Explanation

1.アクションゲームの流れ

 多少違いはあると思いますが、アクションゲームの流れはこの図のようになっています。まずはキャラクターや背景の画像表示、変数を設定する”初期化”。次にどのキーが押されたのかを判定する”キーボードからの入力”。そして、入力に応じて”キャラクターの移動を行う”と、”キャラクターの表示”をして入力に戻り、以降ループします。このループは早く行われることが望ましく、ループの中にシナリオノードを入れることは好ましくありません。なぜなら、シナリオノードは何も書いていなくても処理に時間がかかってしまうからです。ですが、ひとつもシナリオノードがないとフリーズしてしまうので、一個だけ入れることにします。原因は不明ですが、ループにはシナリオノードがひとつだけおける、と考えてください。

2.キーボードからの入力

 初期化については見たままなので飛ばして、キーボードからの入力です。ここでは、上図のように条件分岐でどのキーが押されているかを判定します。詳しくはヘルプのシステム変数の項目に書いてありますが、例えば[1]の式は十字キーの→が押されている場合を表しています。同様に[2]は←を表しています。Vkm○○を変えることで他のキーの入力をチェックできます。例えばサンプルでは、移動の↑↓→←キーとジャンプのZキーの入力をチェックしています。

3.キャラクターの移動
 キャラクターの移動では、キャラクターがどこに移動するのかを決定します。基本的には現在の位置座標に移動量を足し算するだけなのですが、移動量は最大最小の制限や重力の影響、慣性の影響などを受けます。また、画面外へ移動しないように、移動後の座標にも制限がつきます。ここも見たままなので詳細は省略しますが、数値を変えていろいろと実験してみると数値の役割が分かると思います。

4.キャラクターの表示
 キャラクターの移動先が決まると、いよいよその位置にキャラクターを表示することになります。まずは、そのために必要な二つのことについて説明します。
 一つは、SetProp関数です。LiveMakerPro用の関数らしく普段はお目にかかりませんが、LiveMaker上で使われている画像やBGMなどのコンポーネントについているプロパティを自由に設定することが可能な関数です。書式はヘルプにあるように、SetProp(コンポーネント名, プロパティ番号, 設定する値) です。コンポーネント名というのは、画像表示のときに設定する画像名になります。
 もう一つは、コンポーネントのプロパティです。LiveMakerでプロジェクトを実行すると、ゲームのウィンドウ以外にデバッグというタイトルのウィンドウが出ますが、その二番目のところにあるコンポーネントで更新ボタンを押してみてください。画像表示や画像文字表示などで設定した名前が出ていると思います。その中から適当に選んでクリックすると、プロパティと値がずらっと表示されると思います。実は、この中には画像を表示する座標も含まれています。
 これでお気づきになったと思いますが、計算ノードで次のように式を記述すれば、指定した画像を任意の座標に表示することが出来ます。

 x-sxというのは、xがキャラクターの座標でsxは画面のスクロール量を表していますが、要するに表示したい座標を入れているだけです。サンプルでは、さらにプロパティ(PR_OFFSETX)を使うことでスクロールした背景を表示していますので、参考にしてみてください。他には、今回は使っていませんが、PR_VISIBLEというプロパティにTRUE/FALSEを設定することで、一時的に画像を見えなくしておくことが可能です(レオアロエのメニュー画面などでは多用しています)。まだ全部は解明できていませんが、ここをいじることでLiveMakerでの制作の自由度はかなり上がると思います。

 さて、だいぶ省略してきましたがこれで説明はおしまいです。とりあえず重要な部分だけ説明しましたが、実際にプロジェクトを見ていろいろと調べてもらえればなと思います。あと、実はあまりアクションゲームを作った経験がないので、変なところなどあるかもしれません。そのときはご指摘をいただければと思います。プロジェクトの解読はやっかいだと思いますが、挑戦してみてくださいませ。




Part.3--Download

■サンプルのダウンロード
サンプルは、そのままでは実行できません。LiveMakerで開いて、ビルドしてから実行してみてください。

サンプル:LiveAction LASample.zip をダウンロードする




Part.4--Memory

2007/10/04
アクションゲームの基礎については自信が余り無いので省略しました。すみません。
いろいろと疑問など浮かぶと思いますが、気軽に尋ねてください。


LiveMaker講座へ戻る


CopyRight 2000-2006, Dreaming Walker All Rights Reserved.