2021/06/24

【ナビつき! つくってわかる はじめてゲームプログラミング】パンチとキックを使い分けてゲーム作り 解説



この記事は【ナビつき! つくってわかる はじめてゲームプログラミング】でパンチとキックの使い分けたゲームの作り方についての解説です。

なんちゃってリズムゲーム「ゲームID: G 000 FBY 20D」の作りを解説しています。

パンチとキックを別ボタンで行う

さっそくゲーム画面を配置し、ヒトを1体置きます。
このヒトにパンチとキックをさせます。

わかりやすいように、右向きにしておきましょう。


ヒトのアクションは4種類あるのですが、設定できるのは1つだけです。
アクションポートに1がくると設定されたアクションを行います。

しかし、ウラワザとして2,3,4,5がアクションポートにくると、対応するアクションを行うようになっています。

それでは、Aボタンでパンチ,Bボタンでキックを行うようにしてみましょう。

「ボタンをおしたら」のノードンは指定のボタンを押すと1、押していないと0を出力します。これをボタンを押すと3や4を出力するようにすれば良いわけです。

この変更には「けいさん」ノードンで定数と掛け算を行うようにしましょう。
掛ける定数を3にすれば、押しているタイミングで3が出力されます。

3をアクションに繋げばパンチが出せます。

Aボタンを押すと3,Bボタンを押すと4を出力することで、パンチとキックがだせるようになりました。同じようにXボタンで5,Yボタンで2を出力するようにすると、やったぜやターンもおこなえるようになります。

ボタンごとに別の場所のモノを壊す

では、それぞれのアクションの効果を設定します。
「モノをこわす」ノードンをいくつか用意し、「けいさん」ノードンからの出力をつなぎましょう。これで、ボタンに対応して別々の場所のモノをこわせるようになりました。

これで、パンチやキックなどのアクションの使い分けができました。
せっかくなので、このままなにかゲームを作ってみましょう。

画面の右から球が飛んできて、対応するアクションで球を壊すというゲームを作ってみます。

「モノをこわす」ノードンを縦1列にならべ、目印に直方体を少し奥に置きます。


そして、「モノを発射(10コ)」ノードンを画面外に置いて、球を発射させましょう。
球の設定は「見える」「こわれる」「うごく」です。

そして、再生すると……見事キックで飛んでくる球を破壊できるようになっています。

「モノを発射(10コ)」ノードンを縦に並べると、高さごとに別のアクションで破壊するようになります。

ところが、ここで一つ問題が発覚します。
ボタンを同時に押すことで、すべての高さの球が破壊出来てしまいます。

このままでは高さに合わせてボタンを押さなくても、すべてのボタンを押し続けるだけですべての球が破壊出来てしまいます。
ボタンを同時に押している時には、破壊やアクションを行わないようにしないといけません。

ビットフラグをつかってボタン同時押しの抑制

ボタンを同時におしていないかどうかには、ビットフラグを使います。
ビットフラグというのは二進数でそれぞれの桁をフラグとして使う考え方です。

二進数について軽く説明します。
普段、我々が使っている数の数え方は10進数です。

数が10になると次の桁になります。
対して二進数は、数が2になると次の桁になります。
1,2,4,8,16と2倍ごとに桁があがります。
aボタンに1,bボタンに2,xボタンに4,yボタンに8を割り振っておき、すべての出力を足します。
この足し算は二進数では桁の繰り上がりがないため、対応桁が1かどうかを見るだけでボタンが押されているかどうかがわかります。

つまり、1ならaボタン、2ならbボタン、3ならaボタンとbボタンが押されていると分かるわけです。

では、ノードンを配置していきましょう。
「ボタンをおしたら」ノードンと掛け算を行っている定数を1,2,4,8に設定します。

そして、その出力をすべて足し、足した結果を1,2,4,8と比べます。

これで、ボタンが単体で押されているかの判定は完成です。
あとは、「くらべる」ノードンからの出力を掛け算で2,3,4,5にすればアクション設定も完了です。

スコア表示

入力部分ができたので、スコアでもつけてみましょう。
「モノがこわれたしゅんかん」ノードンで球の破壊を検出し、「カウンター」ノードンで数えます。

「カウンター」ノードンの数字を画面に表示すればスコアの完成です。

球の発射タイミング設定

次は「モノを発射(10コ)」ノードンの発射タイミングの処理を作りましょう。
現在はなにも設定していないので、1秒ごとにすべての「モノを発射」ノードンが動いています。

これを、一定時間ごとにランダムなノードンが発射を行うようにしていきます。
まずは、発射間隔を縮めましょう。0.5秒くらいに設定しておきます。

そして、「定数」ノードン、「タイマー」ノードン、「ランダム」ノードンの順に繋げます。

「ランダム」ノードンは1~6を出力するように設定し、「くらべる」ノードンを使って1の時に下、2の時に中、3の時に上の「モノを発射」ノードンが球を発射するようにつなぎます。

これで、「ランダム」ノードンの出力が1,2,3の時に別の高さから球が発射され、4,5,6の時にはなにも発射されないようになります。

リズムゲーム風にしてみる

後は「タイマー」と「カウンター」を使って、数字をカウントダウンするようにし、その「カウンター」が0になればリトライするように作れば、ゲーム部分は完成です。

ですが、音がないと味気ないので、BGMと効果音をつけます。
「モノを発射」ノードンのその他設定で、当たった/こわれた時に音を鳴らさないように設定します。

かわりに、「さわっているセンサー」を「モノをこわす」ノードンと同じ位置に置き、球がさわっている時に対応するボタンが押されたなら効果音を鳴らすようにします。


これで発射された球が壊れた時に、通常の効果音ではなく、設定した効果音がなるようになりました。

そして適当なBGMを鳴らします。

球発射に使っている「タイマー」をBGMの1拍くらいの秒数に設定し、「モノを発射」ノードンと「モノをこわす」の距離も1拍で発射された球が届くくらいの距離に調整すれば、なんちゃってリズムゲームの完成です。

2021/06/07

【Curious Expedition2】ランダム生成される島から財宝を持ち帰る探検ゲーム



この記事では【Curious Expedition2】の紹介を行います。

ゲーム概要

【Curious Expedition2】は未知の島を探検し、遺跡や財宝を探すゲームです。

島の地形やイベントはランダムに生成されます。
探検隊を指揮し、危険をくぐりぬけ、名誉を手に入れていきます。

探検の準備

探検を成功させるには、仲間、装備、道具が必要です。
これらは探検中にも手に入りますが、島に行く前に街でも用意できます。

街では仲間を雇ったり、装備品を購入したりと探検の成功率を高めるようにしっかりと準備を行います。


探検に成功するとスポンサーのレベルが上がり、雇える仲間や使える道具は増えていきます。

街での準備が終われば、次に探検する島を決めます。

島によって、測量を行う、ピラミッドを探す、怪物を倒すといったメインの目標が異なり、地形も砂漠だったり、ジャングルだったり、洞窟だったりと特徴の違う場所を探検することになります。

そして、3つのスポンサーから1つを選びます。
島に上陸する前に予算を使って、救急箱や松明といった使い捨ての道具を購入するのですが、選んだスポンサーによって、異なる道具がいくつか追加されます。

探検

島は6角形のマスで構成されています。

最初は島のどこになにがあるかはまったくわからない状態ですが、移動して見える範囲が広がると、どんどん地形が判明していきます。

高台に上がれば、見える範囲は広がりますし、山があれば視界を遮られます。

視界が広がれば、なにかありそうなロケーションも見つかります。

そのようなロケーションに近付けば、実際になにがあるのかがわかり、調査することでランダムなイベントが発生します。

探検隊は移動ごとに正気度を失っていきます。
沼地や砂漠など移動の難しい地形ほど正気度を失います。
正気度が0になったからといって即座に探検に失敗するわけではありませんが、そのまま移動を続けていると、ペナルティとして狂気イベントが起きてしまいます。

正気度は食糧を食べたり、村や温泉などの特定のロケーションで休憩することで回復します。

しかし、休憩しすぎて探検に日数をかけすぎると、島の周りから紫の霧が押し寄せてくるので、あまりゆっくりもしていられません。

霧がかかると、移動する時に大きく正気度を失いますし、道を見失う事もあります。

島の危険は狂気だけではありません。
あちこちに危険な生物がいて、攻撃を受けることもあります。

ただ、敵対的な生物だけではなく、協力的な原住民や商人などと出会うこともあります。
原住民や商人とは友好的に接し、取引などを行うこともできますし、盗みをおこなったり、原住民が大切にしている神殿から財宝を奪ったりもできます。

そうして、島の探索を続け、目的を達成すれば探検の成功です。
それまでに得た財宝などが清算され、名誉と街での準備に使えるチケットになります。

ほとんどの道具はこの清算時にスポンサーに渡され、次の探検時には使えなくなります。

ロケーションの調査と戦闘

探検隊のメンバーは手に持った装備と自分自身のレベルによって、最高2つのサイコロが与えられます。ロケーションの調査時も戦闘時も、このサイコロを振ることで成功判定がおこなわれます。

サイコロには赤、緑、青の目があり、調査の成功には指定された数、指定された色の目を出す必要があります。

赤は狩りや力比べなど戦闘に関するものが、緑は神殿内の捜索や難破船の調査など探索に関するもの、青は説得など交渉に関連するイベントで要求されます。

戦闘は色だけでなく、目の内容が重要になってきます。
同じ赤色の目でも、ダメージを与えるものや、状態異常を与えるもの、回復を行うものなど、目の種類は様々です。

ターンの最初にサイコロを振り、出た目を消費して、敵と戦います。

レベルによっては、同じ色の目を使って、効果を上げることも出来ます。

探検隊のメンバーと装備

探検隊のメンバー達は様々な職業を持っています。
そして、その職業によってスキルやサイコロに違いがあります。

例えば、商人なら取引で対価を安くできますが、直接敵を攻撃するようなダイス目がなかったりします。

兵士では、銃の攻撃力を上げるスキルを持ち、ダイス目もダメージを与えるものしかありません。

探検隊は手と身体に1つずつ装備を付けることができます。手の装備品は使えるサイコロを1つ増やします。

装備品によっても様々な効果や目の種類があります。

また、探検隊に加えられるのは人間だけではありません。
原住民には人間でない種族がいますし、人間よりも荷物を多く運べるロバや、装備がなくてもサイコロを2つ使える犬などもいます。

職業や装備品によって、探検中の役割が大きく変わります。

遊べるゲームモード

現在はキャンペーンと主催者モードという2つのゲームモードがあります。

キャンペーンにはストーリーがあり、数回の探検ごとに、ストーリーを追うための探検が起きます。

一方主催者モードにはストーリーはありません。
こちらは数回の探索ごとに、戦闘がむずかしくなったり、霧の進行が早くなったりするデメリットを付与されながら探検を続けていくモードです。

感想

地形の構成やイベントなど、ランダムな要素は多いのですが、チームの構成やリソースのやりくり、ロケーションでの判断など、探検全体としてはプレイヤーの判断が大きく影響するため、リプレイ性も戦略性もあるゲームになっています。

1つの島を探検する時間は短ければ10分程、戦闘が多くなりプレイ時間が少し長くなっても30分前後とダレる前に1つの探検が終わり、またすぐ次の探検にでたくなります。

探検は狂気に悩まされ、メンバーに多数の死者が出たりしますが、何を切り捨てるかや、探検自体をあきらめるかなどを考えるのも楽しい体験でした。