Made with TutorFlow
エーアイで作る小さなブロック建築ゲーム完全ガイド
Transcript
今回は、エーアイを使ってブロック建築ゲームを作る方法を学びます。小さな土地に立方体を置き、不要なものを取り除き、自分の建築を保存する遊びです。
最初から無限に広がる世界を作るのではなく、操作とデータが一致する小さな原型を目指します。見た目が立体になっただけでは完成ではありません。置く、消す、材料が変わる、保存して戻す、という流れを順番に確認していきましょう。
土地は縦十六、横十六のマスにします。一番下の地面は消せない層とし、その上の一段目から七段目まで建築できる設定です。使える材料は二十個。
置くと一個減り、自分で置いたブロックを取り除くと一個戻ります。今回は建築の練習に集中し、敵、採掘の時間、空腹などの仕組みは入れません。材料が有限なので、何を残し、何を作り直すかを考えられるようにします。
依頼には、小さな三次元のブロック建築ゲームを作ってください。斜め上から見られる視点で、配置と削除のモードを切り替え、残り材料を表示してください、と書きます。
先ほどの範囲とルールを添え、まず土地と視点だけを作るように頼みます。使うライブラリがある場合は、その名前と読み込み方法も説明してもらいます。 外部の機能を追加する前に、必要なファイルと起動の手順を把握しておきましょう。
ブロックの位置は、整数の座標で管理します。横、奥行き、高さの三つで、一つのマスを表します。同じ場所に二個置かれないよう、位置を一つの識別情報として扱います。
画面に見える立方体と、 そこにブロックがあるというデータは、 役割を分けます。 見た目だけを消してデータが残ると、 空いている場所に 置けなくなることがあります。 エーアイには、データを基準に 表示を更新する構造を 説明してもらいましょう。
最初の版では、地面が表示され、視点を回して全体を見られるか確認します。遠すぎて操作できない、近づくと地面の下へ入る、といった状態を避けるため、視点の距離や角度には範囲を設けます。
土地の端も見えるようにし、どこまで建築できるかを分かりやすくします。まだ配置機能は追加せず、画面の大きさを変えても表示が崩れないかを試します。安定した見え方を先に作ると、次の操作を確かめやすくなります。
次に、どこへ置くかを選ぶ仕組みを作ります。画面上で指した位置から、最初に当たるブロックの面を調べ、その面に隣り合うマスを候補にします。置く前に半透明の立方体を表示すると、結果を予想できます。
上の面と横の面で、候補が正しく変わるかを確認しましょう。内部の座標が小数になってずれないよう、格子に合わせます。見えている候補と、実際に置かれる位置が同じであることが合格条件です。
配置するときは、土地の範囲内か、すでに埋まっていないか、材料が残っているかを先に確認します。すべて満たした場合だけ、ブロックを一個追加して材料を一個減らします。
置けなかったのに材料だけ減る状態を避けてください。同じ場所を連続で押す、材料が零の状態で押す、土地の外を押す、といった操作を試します。成功したときと失敗したときの表示を分けると、何が起きたかを理解しやすくなります。
削除では、自分が配置したブロックだけを取り除けるようにします。地面の保護された層は消せません。削除に成功したときだけ材料を一個戻し、すでに消えた場所を押しても材料を増やさないようにします。
画面上の立方体と座標の記録を、同じ操作で更新します。配置と削除を交互に繰り返し、材料の数が最初の二十を超えないかも確認してください。見た目と所持数の両方がそろって、操作が完成したことになります。
視点を動かす操作と、建築する操作は分けます。配置モードと削除モードのどちらを選んでいるかを、文字とボタンの状態で示します。
画面をドラッグして視点を回しただけで、最後にブロックが置かれないようにします。指やマウスがどれだけ動いたかで、クリックとドラッグを区別する方法が考えられます。
スマートフォンにも対応するなら、実際の画面幅と指の操作で確認し、細かなボタンを詰め込みすぎないようにします。
間違った操作に備えて、一回戻す機能を追加します。最後に何を、どの位置で行い、材料がいくつ変わったかを記録します。配置を戻すならブロックを消して材料を返し、削除を戻すならブロックを戻して材料を減らします。
見た目だけを戻すと所持数が合わなくなります。最初は直前の一操作だけに絞り、何もしていない状態では押せないようにします。履歴を増やすのは、この動きが確認できてからにしましょう。
保存では、配置したブロックの座標と種類、残り材料、データ形式の版をまとめます。読み込み時には、座標が範囲内か、同じ位置が重複していないか、材料と配置数がルールに合うかを確認します。
問題があるデータは途中まで反映せず、理由を表示して読み込みを止めます。現在の建築を失わないよう、確認が終わってから置き換える設計にします。保存した後に一度画面を開き直し、同じ形へ戻せるかを試してください。
ブロックが増えると、表示や操作が重くなることがあります。今回のように範囲と材料数を決めると、まず少ない数で問題を調べられます。
取り除いた物体が内部に残っていないか、同じ形や素材を無駄に作り直していないかを確認します。より大きな世界では、まとめて描画するなど別の工夫が必要になりますが、最初からすべてを追加しません。操作が遅くなる条件を記録し、その原因に合う改善を一つずつ行います。
練習では、二十個の材料で小さな門を作ってみます。左右の柱を置き、上をつなぎ、視点を回して高さと位置を確認します。形が違ったら一回戻す機能や削除で直します。
完成したら保存し、開き直して同じ門が残るかを確かめます。建築の途中で材料が零になった場合も、不要なブロックを戻して作業を続けられるか確認しましょう。一つの作品を作る過程で、基本機能をまとめて試せます。
今回の到達点は、限られた土地と材料で建築し、編集して、保存できる小さなサンドボックスです。
エーアイへの依頼では、見た目の大きさだけでなく、座標、材料、操作、保存のルールを具体的に伝えました。次はブロックの色を一種類増やすなど、小さな拡張を試してください。
変更前の版を残し、配置と削除、材料数、読み込みが変わらず動くかを確かめることが、より広い世界を作る準備になります。