パート5: コインとポイントの追加
イントロダクション
パート4 が完了したので、今なたはレベルとプレイ可能なキャラクターを持っていて、走ったりジャンプしたりできるようになりました。
ここでは、プレイヤーに目的を与える必要があります。このチュートリアルの部分では、コインを集められるようにし、スコアを追加して、それを追跡します。
ブロックに隠れたコインは、マリオの中でも最も象徴的な特徴の一つです。このチュートリアルでは、その機能を作成することから始めましょう。
レンガにコインを隠す
レンガに当たる
最初のレンガを作る方法は、必要なコインの数に応じてすぐに変更できるようにします。レンガが完成したら、その複製を作成し、好きな場所に配置できます。
このチュートリアルはパート4に基づいているので、ハブからパート4プロジェクトを分岐させていることを前提としています。
まず、コインを保持するレンガの1つを選択します。オブジェクトプロパティから「動作」ボタンをタップして、動作エディタを開きます。
「オブジェクト」カテゴリから 衝突 動作を追加します。 衝突 動作は、指定された2つのオブジェクトが触れ合うたびにイベントをトリガーします。
追加した衝突動作をタップして、そのプロパティを表示します。選択可能なオブジェクトの箱が2つあり( オブジェクトA と オブジェクトB と呼ばれています)、最初のもの( オブジェクトA )は既に選択されています。これが動作を適用する対象です。このままでも構いませんが、変更したい場合はタップして変更できます。
空の箱は2つ目のオブジェクト( オブジェクトB )のもので、衝突動作が比較するものです。空の箱をタップし、パート4で追加したプレイヤーキャラクターを選択します。
オブジェクトが選択されたので、どの部分が オブジェクトB の衝突イベントをトリガーするかを変更できます。すべてのトグルをオフにして、「 上に 」オプションだけをオンにします。これで、衝突動作はプレイヤーキャラクターの上部がレンガに触れたときだけ機能します。
プレイヤーの頭がレンガに触れる場合を確認したら、今度はレンガを上下にバウンドさせるようにします。これを行うために、移動するための「移動する」動作を使用します。
「変換」カテゴリから 移動する 動作を追加し、前に追加した衝突動作に接続します。
移動する 動作をタップして、そのプロパティを表示します。プレイヤーがレンガに当たったときにレンガを上に移動させたいので、 Y値 を変更します。この値を小さい数に設定します。私は 0.20 メートルを使用しました。
また、 継続時間 も変更する必要があります。継続時間は移動の完了にかかる時間です。デフォルトでは継続時間が1に設定されていますが、これはレンガが1秒で0.2メートル移動することを意味します。これは私たちの需要には遅すぎます。継続時間を 0.10 秒に変更します。
注: 継続時間をゼロに設定すると、オブジェクトは新しい位置に瞬時に移動します。スムーズにアニメーションしません。また、「線形」というテキストが含まれた箱に注意してください。これは、移動に適用されるモーションツイーン効果です。動作に継続時間が設定されている場合、この効果に基づいて移動します。
それでは、レンガが戻ってバウンドするように、もう1つの 移動する 動作を追加して、前のものに接続します。
再度、プロパティを変更します。今度はレンガを下に移動させたいので Y値 を負の数に変更します。レンガを元の位置に戻すために、 -0.20 メートルを移動させます。継続時間も 0.10 秒に変更してください。
これで、再生ボタンを押すと、プレイヤーは下からレンガを叩くことができ、レンガが上下にバウンドします。しかし、いくつかの問題に対処する必要があります。
-
ロジックに小さなバグがあります。プレイヤーがレンガが元の位置に戻るのを待たずに素早くジャンプし続けると、レンガはずっと上に移動し続けます。
-
レンガは永遠にバウンドし続ける。いくつかのコインを持っているだけで、空になったら停止させたい場合は?
-
まだコインを提供していません。
まず、問題1に対処します。これは実際には修正が簡単なバグです。プレイヤーがそれに当たった瞬間に衝突動作をオフにし、動作が完了したら再度オンにします。
これを行うために、「カスタム」カテゴリに切り替え、「 動作オフ 」を追加し、これを 衝突 動作に接続します。
次に、 動作オフ のプロパティから、「 動作を選択 」のラベルの空の箱をタップします。リストから、正しい衝突動作を見つけます。このリストにはすべてのオブジェクトからすべての動作が表示されます。リストはオブジェクト名に基づいてソートされています。
バウンドが完了したときに、衝突動作を再度オンにする必要があります。これを行うには、 カスタム カテゴリから 動作オン を追加し、2つ目の 移動する 動作に接続します。動作のプロパティでは、再度オンにするための 衝突 動作を選択してください。
問題2については、ボックスコンテナーを使用して、各レンガが保持するコインの量を設定します。このようにすることで、特定のレンガに持たせるコインの数を簡単に変更できます。
まず、 カスタム カテゴリからボックスコンテナーを追加します。これは他のものと接続しないため、画面のどこにでも配置できます。また、「コイン」という名前を付けて、後で見つけやすくすることができます(動作の名前変更方法はパート4をチェックしてください)。
コインボックスコンテナーの動作プロパティから、 デフォルト値 プロパティを3に変更します。これがレンガが保持するコインの数です。
次に、「論理」カテゴリから 値を追加 動作を追加し、以前に追加した2つ目の 移動する 動作に接続します。この 値を追加 動作を使用して、プレイヤーがレンガを叩くたびに追跡します。
「 値を追加 」動作が接続されたら、それをタップして動作プロパティを表示します。プロパティには2つの入力フィールドが表示され、 値を追加 動作は入力値の合計を出力します。
この場合、プレイヤーがレンガを叩くたびに追跡するために、上のフィールドに1、下のフィールドには 値を追加 動作の合計を第二の入力フィールドに出力します。
これにより、動作が実行されるたびに合計が増加します。最初に動作が実行されると、 1+0 になります。前回の合計が保存されているため、2回目に実行されると 1+1 になります。
次に、追加された値の合計が以前に追加された コイン ボックスコンテナーの値と等しいかどうかを確認する必要があります。
これを行うには、「IF」動作を「論理」カテゴリから追加し、前のステップの 値を追加 に接続します。
IFが接続されたら、タップして動作プロパティを表示します。IF動作は特定の条件が満たされているかを確認します(2つの入力フィールドと選択した条件に基づいて)。
この場合、 追加値 動作の合計を出力し、最初のフィールドに置きます。
次に、ボックス内の値をIFの2番目に出力します。
ここに値を入力すると、次に接続される動作は追加値の合計がコインボックスコンテナーに格納されている値と等しい場合にのみ実行されます。
次に、衝突動作をオフにし、プレイヤーがこれ以上コインを取得できないようにグラフィックを変更します。これを行うには、 カスタム カテゴリから新しい 動作オフ 動作を追加し、IFに接続します。以前と同様に、オフにする 衝突 動作を選択します。
プレイヤーにコインがこれ以上残っていないことを示すために、「変換」カテゴリから グラフィックを変更 動作を追加し、IFに接続します。
接続されたら、 グラフィックを変更 動作プロパティから新しいグラフィックを選択します。動作プロパティの2番目のボックスをタップし、新しいグラフィックを選択します。
今、プレイボタンを押すと、レンガを3回叩くことができ、止まります。
ポイント獲得
UIの設定
次に残るのは、実際にポイントを獲得し、レンガを叩くとコインを収集することです!
まず、プレイヤーが持っているポイントの数を表示するために、画面の隅にカウンターを追加します。
そうしたら、動作エディタから戻り、主編集者に戻ります。次に、画面右側の3つのドットをタップして レイヤー バーを表示します(画面のエッジからスワイプすることもできます)。
グローバルUI レイヤーを選択します。UIレイヤーは、シーンの他のレイヤーの上に存在し、通常はボタン、ジョイスティック、ラベルに使用されます。それらはまた同じ位置に固定されており、シーン内の他のコンテンツと一緒に移動します。
注: グローバルUIレイヤーに配置されたオブジェクトは、プロジェクト内のすべてのシーンに存在します。特定のシーンにのみ存在するものを作成する場合は、シーンUIレイヤーを使用してください。
グローバルUIレイヤーが選択されている状態で、ドックの スペシャルオブジェクト フラスコアイコンをタップするか、シーンにドラッグします。
ポップアップから ラベル を選択し、ラベルがシーンに配置されます。
新しく追加したラベルをタップして、オブジェクトプロパティを開きます。ラベルプロパティから、テキストの色、フォント、表示するテキストなどを変更できます。
大きなテキストボックスをタップし、テキストを「ポイント:」に変更します。
次に、「整列」をタップして整列プロパティを展開します。 幅 を 110 、 高さ を 64 に設定します。
注: これらを0に設定すると、テキストエリアが削除され、テキストが横に無制限に成長します。
ラベルプロパティがすべて設定されたら、 移動/変換 ツールを使用して、新しいラベルを画面の隅に配置し、プレイヤーの視界を妨げないようにします。
ラベルの位置を決めたら、もう1つのラベルをシーンに追加します。これを使用してポイントを表示します。今度は、テキストを 0 に設定します。プレイヤーはスタート時にポイントがゼロから始まるためです。前回とは異なり、指定された幅と高さを設定します。幅を 500pt 、高さを 64pt に設定します。これにより、テキストが表示可能な指定エリアが設定されます。このエリアに収まりきらないテキストがある場合、切り取られます。
また、水平方向の整列を 左寄せ ( フラッシュ左寄せ )に設定します。
ラベルプロパティが完了したら、「ポイント」タイトルの横に配置します。
ポイントを獲得する
次に、コインを獲得するたびにポイントを増加させる必要があります。主レイヤーに戻り、コインのあるレンガの動作に戻り、必要な動作を追加します。
「UI」カテゴリから「 スコアに追加 」動作をドラッグし、以前に追加した2つ目の 移動する 動作に接続します。
次に、 スコアに追加 動作をタップし、 無限スコア トグルをオンにします。このトグルがオフの場合、次の動作は指定のスコアに達したときにトリガーされます。また、 「0」 ラベルが正しいオブジェクトとして選択されていることを確認してください。 スコアに追加 動作は、シーン内のランダムなラベルを自動的に選択します。
プレイボタンを押すと、プレイヤーがレンガを叩くたびに1ポイントを獲得します。
今、パート3で学んだように、このレンガを複製してレベル全体に配置できます。
個別のコイン
最初のコイン
時には、ブロックの中に隠さずに、レベル全体にコインを追加したい場合があります。これは比較的簡単で、今説明します。
まず、コインのグラフィックをシーンに追加し、それをタップしてオブジェクトプロパティを表示します。
オブジェクトプロパティの一番下で、 物理 タブが選択されていることを確認します。
物理タブにいる間、コインを通り抜けられるようにします。これにより、プレイヤーはそれを通り抜けながら止まったり遅くなったりしません。
次に、コインの 衝突境界 を調整します。衝突境界は、オブジェクトの物理的な形状を定義します。衝突境界は、オブジェクトの視覚的な外観とは異なるサイズや形状である場合があります。衝突境界を調整するには、衝突アイコンをタップします。
「衝突エディタ」から、左側のツールパレットを使用して、ユニークな衝突形状を修正および作成できます。
このガイドでは、「 円 」オプションを選択して、円形の衝突境界を作成します。
次に、円の緑の点をドラッグして、衝突境界をサイズ変更します。衝突境界をコインと同じサイズにします。注意: 衝突境界がオブジェクトよりも大きいと、プレイヤーはコイングラフィックの真ん中に物理的に触れる前に、すでにそれと相互作用することができます。
衝突境界の作成が完了したら、ツールパレット内のチェックマークアイコンをタップして、新しい形状を受け入れて保存します。
今度は、コインをタップしてオブジェクトプロパティを表示します。今度は、コインの動作エディタを開きます。
「オブジェクト」カテゴリから「 衝突 」動作を画面に追加します。前と同じように、衝突動作のプロパティを開き、緑の宇宙人プレイヤーを オブジェクトB として選択します。
次に、「UI」カテゴリから スコアに追加 動作をドラッグし、衝突動作に接続します。再度、動作プロパティから 無限スコア トグルをオンにし、正しいスコアラベルが選択されていることを確認します。
最後に、「オブジェクト」カテゴリから オブジェクトを破壊する 動作を追加し、衝突動作に接続します。これにより、プレイヤーがそれに当たるとコインが完全に消去されます。
プレイボタンを押すと、コインにぶつかると消えるようになります。
これで終わりです!これであなたのプラットフォームゲームではコインを集めることができるようになりました。この時点で、コインを複製してレベル全体に配置するだけです。コインの配置には創造的になってみてください!
パート5の完成版はハブからダウンロードでき、すべての動作を見ることができます。
パート6では、敵を導入してゲームに少し難易度を追加し始めます。

