UIの作り方講座 基礎編カーソル移動を作る パターン1-2

オブジェクトの作成

次に、オブジェクトを作成します。アクションプログラムは次の順番で作っていきます。

[1]カーソル移動を作る
[2]カーソルの位置でボタンを押された時の処理を作る

まずは、[1]カーソル移動を作っていきます。

1[オブジェクト]をクリックします。
2「オブジェクト一覧」枠内を右クリックし、[オブジェクトを追加]をクリックします。
下にある[追加マーク]をクリックしても追加できます。
3オブジェクトの設定ウィンドウがポップアップしますので、「オブジェクト名」を変更します。
ここではcursor1とします。
4アニメーションを選択のプルダウンをクリックし、先ほど作成したアニメーションを選択します。
ここではcursor1とします。
5他の設定はそのままで構いませんので、[OK]ボタンをクリックします。

※ここで設定した内容は、後で変更可能です。オブジェクトの一覧から対象のオブジェクト名をを右クリックし、[オブジェクトの設定]をクリックすれば表示されます。

オブジェクトの設定

オブジェクトは、[アクションプログラム]の横のタブで様々なパラメータを設定できます。 最低限、[基本設定]と[移動とジャンプ]の内容は確認するようにしましょう。

UI用オブジェクトは[消滅後の復活条件:無し]、[重力の影響:0.00]の2つを設定します。

まずは、[基本設定]を変更します。

1[基本設定]をクリックします。
 
2消滅後の復活条件を「無し」に変更します。UI用のオブジェクトは削除しませんので、誤作動を防止するために設定しております。

3その他の設定は変更する必要はありませんが、誤作動防止のため、不要なチェックを外しておきましょう。

次に、[移動とジャンプ]を変更します。 ここでは重力の影響を設定できます。UIオブジェクトは画面に固定させる必要がありますので、重力の影響を0にする必要があります。

※アクションプログラム側でも「重力の影響を受けない」設定があります。  個別に設定するのは面倒なので、こちらで設定しましょう。
4[移動とジャンプ]をクリックします。
5画面をスクロールして、[重力の影響]を0.00に設定します。

これでオブジェクトの設定は完了です。続いてアクションプログラムを作っていきます。

アクションプログラムについて

アクションプログラムについて簡単に解説します。

アクション 画面上を移動する、変数を変更するなどオブジェクトに何らかの動きをさせるプログラムです。
リンク 次のアクションに移行するための条件になります。アクションとリンクをつなぐことで、プログラムなしでゲームを作ることができます。

今回の講座では、↓を入力したらカーソルが一つ下に移動し、↑を入力したらカーソルが上に移動するように作成します。(リンクの条件と画像を変更すれば、横や斜めに移動するカーソルになります。)

アクションプログラムの作成

まずはアクションを追加します。

※初期配置されているアクションが初期アクションとなります。初期アクションはシーンで有効になった瞬間に、登録されているアクションを実行します。

1[アクションプログラム]をクリックします。
2初期配置されているアクションをクリックします。
3右枠のアクション名をクリックして名前を変更します。
ここではNEW GAMEとします。
4「モーション」のプルダウンをクリックし、カーソルが一番上のモーションを選択します。ここでは[corsor1 NEW GAME]を選択しております。
※この画面が出ていない場合は、[割り当てるモーションを選択]をクリックすると表示されます。

続いて、LOAD GAMEの位置にカーソルがあるアクションを作成します。

1「アクションプログラム」枠内を右クリックし、[アクションを追加]をクリックします。
下の[追加マーク]をクリックしても同様に新規アクションが追加されます。

2追加されたアクションをクリックします。
3アクション名を変更します。ここではLOAD GAMEとします。
4「モーション」のプルダウンをクリックし、カーソルが真ん中のモーションを選択します。
ここでは[corsor1 LOAD GAME]を選択しております。

最後に、EXITの位置にカーソルがあるアクションを作成します。

1「アクションプログラム」枠内を右クリックし、[アクションを追加]をクリックします。
2追加されたアクションをクリックします。
3アクション名を変更します。ここではEXITとします。
4「モーション」のプルダウンをクリックし、カーソルが一番下のモーションを選択します。
ここでは[corsor1 EXIT]を選択しております。

リンクの設定

次に、作成したアクションをリンクでつなぎます。 まずは↓ボタンを入力したら、カーソルが移動するような条件を追加していきます。

1リンク元となるアクション(ここではNEW GAME)を右クリックし、[リンクを追加]をクリックします。

2矢印が伸びますので、リンク先となるアクション(ここではLOAD GAME)をクリックします。
ここでリンクが追加されます。

3[NEW GAME]→[LOAD GAME]のリンクをクリックします。
4アクションを切り替える条件から「いずれかの条件が満たされていたら切り替え」を選択します。
※アクションを切り替える条件について解説します
すべての条件が満たされていたら切り替え 「入力に関する条件設定」と「その他の条件設定」の両方が満たされていたら矢印のアクションを実行する
いずれかの条件が満たされていたら切り替え 「入力に関する条件設定」と「その他の条件設定」のどちらか片方が満たされていたら矢印のアクションを実行する
モーションのアニメーションが最後まで実行されたら アニメーションが終わったら矢印のアクションを実行する
アニメーションが無限ループの場合は条件が満たされません。
他の条件と併用できません。併用したい場合は、その他の条件に「モーションの表示が全て終わった」があるのでそちらを利用しましょう。
無条件で切り替え 条件なしで矢印のアクションを実行する

5入力に関する設定の「以下の入力がされた」にチェックを入れます。
6[+]ボタンをクリックします。
7入力に関する条件設定のウィンドウがポップアップしますので、入力に使う操作キーのプルダウンをクリックし、「↓」をクリックします。

8入力方法のプルダウンをクリックし、「押された瞬間」をクリックします。
9選択が完了したら[OK]ボタンをクリックします。
これで[NEW GAME]→[LOAD GAME]のリンクは完成です。

押されていると押された瞬間の違い 「押されている」は対象のボタンが押されていれば矢印のアクションに切り替わります。「押された瞬間」は既にボタンが押された状態の場合、ボタンを離してもう一度押さないかぎりアクションが切り替わりません。 「押されている」を条件にする場合は、リンク先のアクションを注意する必要があります。 例えば、今回のカーソル移動の場合、[NEW GAME]⇒[LOAD GAME]⇒[EXIT]のリンク条件を「↓を押されている」にすると、[LOAD GAME]のアクションにウェイトを入れておかないと、一瞬で[EXIT]に切り替わってしまいます。
後でボタンを押しっぱなしでカーソルを移動させる方法についても紹介します。
続いて、[LOAD GAME]→[EXIT]のリンクを作成します。こちらは今作成したリンクと同じものなので、コピーしましょう。
1作成したリンクをクリックし、[Ctrl]+[C]、もしくは、右クリックからコピーをクリックします。
2[LOAD GAME]をクリックして[Ctrl]+[V]、もしくは右クリックから「リンクをペースト」をクリックします。
3[LOAD GAME]から矢印が出るので、[EXIT]をクリックしてリンクをつなぎます。
これで[NEW GAME]→[LOAD GAME]→[EXIT]は完成です。

次に、[NEW GAME]←[LOAD GAME]←[EXIT]を作成していきます。[NEW GAME]←[LOAD GAME]を作成します。
4アクションを切り替える条件から「いずれかの条件が満たされていたら切り替え」を選択します。
5入力に関する設定の「以下の入力がされた」にチェックを入れ、[+]ボタンをクリックします。
6入力に関する条件設定のウィンドウがポップアップしますので、入力に使う操作キーのプルダウンをクリックし、「↑」をクリックします。
7入力方法のプルダウンをクリックし、「押された瞬間」をクリックします。
8[OK]ボタンをクリックします。
リンク(矢印)の整理は[Shift]キーを押しながらドラッグすると、直線のまま移動できますので便利です。
カラー:の右側の枠をダブルクリックすると色を変更できます。同じ処理のリンクは色を統一すると見やすいのでオススメです。

[LOAD GAME]←[EXIT]を作成します。[NEW GAME]←[LOAD GAME]と同じなのでコピーします。
1[NEW GAME]←[LOAD GAME]のリンクをクリックし、[Ctrl]+[C]、もしくは、右クリックからコピーをクリックします。
2[EXIT]をクリックして[Ctrl]+[V]、もしくは右クリックから「リンクをペースト」をクリックします。
3[EXIT]から矢印が出るので、[LOAD GAME]をクリックしてリンクをつなぎます。
これでカーソル移動のアクションプログラムが完成しました。