栞代わりの制作メモ

・ツクールやMMF2などで作ったモノや できるまで

CF2.5 アクティブオブジェクトの動かし方

うきわで海を渡るステージ
インディゲームクリエイターでの
製作が続いています。
現段階でステージ2のボス前まで
ひとまず遊べるというところです。

このツールの前身である
MMF2(Multimedia Fusion2)を
使い始めたときは何からはじめたらいいのか
っていうところからはじまったのですが
使ってくると 多少は慣れるものですね。

チュートリアルのブロック崩しを作ったあとは
PEPOSOFTのPEPOさんのゲームやったり、講座見たり、
Mr.Grotesque さんの講座動画見たりと
MMF2のWiki見たりと
このツールがどんな機能もっているのかとか
どうすれば2DACT作れるのか、調べたものです。

さて、今回はそんな初心に帰る意味合いもこめて
アクティブオブジェクトの自分なりの動かし方を
メモっておこうかなぁと思います。

まずは 下準備です。
【フレームエディタ】で 右クリックして
【オブジェクトを挿入】を選択。
そこから【アクティブ】を選択して
できたアクティブオブジェクトの
プロパティの【イベント】を見ましょう。
2014092204.png

そこにあるオブジェクトグループを
クリックすると
【編集】ってボタンが出てくるので
ボタンを押して、
出てきたウィンドゥの【追加】を押します。

ここで設定するグループは
本当はどれでもいいのですが
分かりやすいように
【移動可能】あたりを追加するのがいいでしょう。

次にイベントリストエディタに移ります。
2014092203.png

こんなイベントを組みます。

このイベント自体は
60分の1秒の間に 右方向に変数Aの値の分だけ進み
下方向に変数Bの値の分だけ進むというものです。

組み方について、非常に細かい説明をすると。

①【新しい条件】をクリックして
その中にある【移動可能】のアイコンを選んで
そこから【変数】→【フラグ】→【フラグが有効】を選択。
式を入力するウィンドゥが表示されますが
最初から0が入っているので
そのまま【OK】を押します。

②次に条件文の下にある
【ここにアクションを挿入】をクリック。
【移動可能】のアイコンを選んで、
【位置】→【X座標を変更】を選択。

ここで計算式が出てきます。
変数Hの値が 変数Hと変数Aと変数Mの和 になるようにします。
インディゲームクリエイターを使っている場合は
計算式のウィンドゥの下にアイコンが並んでいるので
そこから【移動可能】を選択。
【値】→【値AからN】→【変数Hを読み出し】とクリックすると
計算式に 

変数 H( "Group.移動可能" )

という式が表示されますね。
+ボタンを押して、同じようにして変数A+変数Mまでやります。

③アクションが1つ設定されたら
そのアクションを右クリック。
【挿入】と選択して、アクションを更に追加できます。
それで【変数】→【変更】とやると
またしても 計算式のウィンドウが登場します。

このままだと変数Aの値が変更されることになるので
「値を選択」の下にある【変数A】をクリックして
下に並んだ変数から【変数H】をクリックして
変数Hを変更するようにします。

計算式のほうには、X座標を変更したときと同じような手順で

変数 H( "Group.移動可能" ) + 変数 A( "Group.移動可能" )

と入れます。

④同様にして 
【Y座標を変更】と【変数I】の変更
のアクションも挿入します。

⑤新しいイベントを作って、
そっちの条件を 【移動可能のフラグ0が無効】に設定します。
そして、アクションも変数H、変数IにそれぞれX座標,Y座標を代入して
最後に【フラグ】→【有効に設定】で
計算式は0のまま、設定します。


同じイベントが出来上がったと思いますので
どういうイベントができあがったのかの解説を。

各種フラグを次のように使ってできあがっています。
変数A=右方向に進む速度。
変数B=下方向に進む速度。
変数H=X座標。
変数I=Y座標。
変数M=一時的なX座標。
変数N=一時的なY座標。
フラグ0=位置と変数H、変数Iの初期化用。

X座標を変更で X座標+変数Aとやると
座標はかならず整数になってしまうため、
変数A=0.5 などの小数を含む細かい数が上手く反映されなくなってしまいます。
そのため、変数HをX座標、変数IをY座標としてわざわざ使っています。

変数H,変数IをX座標、Y座標として使う場合、
特に値をいじっていない場合、どこにオブジェクトを置こうが
(0,0)にオブジェクトが移動してしまいます。
変数H,Iともに初期状態では0だからです。
これを防ぐために条件に 【フラグ0が有効のとき】、移動できるように設定しています。
初期状態ではフラグ0は無効になっているので
【フラグ0が無効のとき】に 変数H、IにX座標、Y座標を代入して
その後【フラグ0を有効】にして 動かせるようにしています。

また、位置座標を変更するアクションを使うとき(例えば、オブジェクトを瞬間移動させたいとき)
にも注意が必要です。
座標を変更した後に 変数HにX座標、変数IにY座標を代入するアクションを
入れないとうまく座標変更が機能しません。

変数M、Nはそれぞれcos,sinを代入すると
円運動がしやすいようにするための設計です。

また、オブジェクトグループの設定を使っているので
【移動可能】をオブジェクトグループに設定してやるだけで
もうそのオブジェクトは 変数Aと変数Bの値によって
動くようになります。

例えば、新しいイベントを1つ作って

条件:フレームが開始(チェス盤とチェスのナイトのアイコンの中にあります)
アクション:アクティブの変数Aを1に変更 

とすれば、右に動くアクティブオブジェクトが出来上がります。
数を大きくすれば、速く動くようにもなりますし
-の値にすれば、左に動くようになります。
関連記事
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://jtrshiogawa.blog.fc2.com/tb.php/166-b2ff764d
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad