サンプルデータのインポート#
1:Fserverから「1_Slope_2020.zip」をPCにコピーしてダブルクリックし、エクスプローラーが表示されたら「展開」をクリックする(下記からDLしてもいい)。
https://drive.google.com/file/d/18MJ51aD3ghoseNYDTEnNdhwCW6wcwbps/view?usp=sharing
5:Unity Hubで「リストに追加」をクリックし、展開して生成した「1_Slope_2020」フォルダを選択する。この時、フォルダを開いて図のように「Assets」「Project Settings」フォルダが表示されたら、「フォルダーの選択」をクリックする。それ以外の階層では読み込めないので注意。
6:Unityのバージョンが「2019.4.1f1」になっているか確認する。もし違っていたら、メニューから正しいバージョンを選ぶ。
7:プロジェクト欄に「1_Slope_2020」が表示されたら、プロジェクトをクリックする。
ワンポイントテクニック
※不要なプロジェクトは「・・・」(縦3つ)メニューを開き、「リストから削除」を選択すれば削除できる。なお、このときデータはストレージから削除されずに残る。
シーンファイルの実行から作業準備まで#
9:プロジェクトエリアから「Tamakorogashi」フォルダを開く。
11:続いて「Slope」アイコンをクリックする。このUnityロゴマークのアイコンをしたファイルがシーンファイルだ。
12:シーンビューにステージが表示され、Hierarchyにアセットがリスト化される。Hierarchyの一番上のオブジェクトが「Slope」になっている点に注意しよう。その後、再生ボタンをクリックすると、デモが始まる。
13:デモはボールが落下してバウンドし、ゴールに到達するとファンファーレが鳴るというものだ。デモ中に「RETURN」キーを押すとリスタートする。
14:ある程度デモの内容を確認したら、再び再生ボタンをクリックしてプログラムを終了させよう。その後、「File」→「Save as」を選択する。
15:新たに「Slope_Master」と入力して保存しよう。
16:プロジェクトエリアのAssets直下に、新たにシーンファイル「Slope_Master」が作成される。
17:「Slope_Master」をプロジェクトエリアで「Assets」→「Tamakorogashi」フォルダにドラッグ&ドロップで移動させる。
18:再び「Slope」アイコンをクリックし、Hierarchyの先頭オブジェクトを「Slope_Master」から「Slope」に変える。以後はシーンファイル「Slope」に対して修正を加えていく。
最初からやり直したい場合
※最初からやり直したい場合は「Slope_Master」をクリックすれば、元の状態に戻せる。その際は「Slope」アイコンを削除し、「Slope_Master」を「Slope」にリネームする。その後「Save as」で新しく「Slope_Master」を作成し、あらためて「Slope」をクリックして、「Slope」シーンファイル上で作業をしよう。
注意点
※作業は必ず「Slope」シーンファイル上で行おう。でなければ、RETURNキーでリスタートできなくなる。また、随時「Save」(Ctrl+S)で上書き保存して、フリーズなどの事態に備えよう。
ステージのレベルデザイン#
21:はじめにHierarchyで「BG_Space」を選び、Inspector欄のSprite RenderからVisibility Optionsを選んで、隠しメニューを開く。その後、Order in Layerの値を「-1」にしておこう。これで背景が一番奥になる。
20:また、HierarchyでInspectorのTransform→Spaceのパラメータを増減すると、背景を拡大・縮小できる。Positionのパラメータで場所の移動、Rotationのパタメータで角度を変えられる。
21:プロジェクトエリアでAssets→Tamakorogashi→Prefabsを選択し、プロジェクトエリアに表示される各種のPrefabをHierarchyエリアにドラッグ&ドロップすると、シーンビューに新しいオブジェクトを表示させられる。
22:なお、配置したばかりのPrefabは既存のオブジェクトと重なっていることが多い。
23:そのため、場所が不明なときはHierarchyエリアでオブジェクトを選択して、移動させよう。
注意
プロジェクトエリアは倉庫で、Hierarchyはシーンビューに配置されるオブジェクトの一覧表だ。シーンビューからオブジェクトを削除するときは、Hierarchy上で削除しよう。プロジェクトエリアのアイテムを削除すると、復活させられないので注意!
24:何度もプレイと修正を繰り返して(=イテレーションを繰り返して)楽しいステージを作ろう。
Prefabsの種類#
Slope##
Slopeはボールが上を伝って転がり落ちる斜面だ。Transformで大きさ・角度・位置を修正できる。
Slopeの大きさを変更したら、InspectorのBox Collider 2Dの値を修正し、slopeの大きさと緑色の枠の大きさをあわせておこう。この緑色の枠が、いわゆる「当たり判定」に相当する。
Rotate##
Rotateは自動的にくるくる回転する板で、当たり判定を持っている。InspectorのAuto RotateにあるRotation Speedのパタメータで回転速度を変えられる。値が正なら右回り、負なら左回りになる。
Bound##
Boundはボールが高く跳ね返るバネだ。反射係数はBoundのInspectorからBox Collider 2D内にある「Extra Options」を開く。その後、Material欄にある「Bound」アイコンをクリックする。
続いて「Bound」アイコンを選択する。このBoundアイコンはFisix Material 2Dとよび、オブジェクトの反射度合いを設定できる。
InspectorにBoundの反射係数が表示される。Frictionで摩擦係数、Buncinessで反射係数を、それぞれ変更できる。
Boundを増やす##
プロジェクトエリアからBoundのprefabsをHierarchyにドラッグ&ドロップすると、シーンビュー上に新しいBoundが配置される。ただし、これだけでは音が鳴らないので、あらためて設定する必要がある。追加したBoundのInspectorから「Condition Collision」にある「Custom Action()」の「None(Object)」メニューをクリックしよう。
Select ObjectウィンドウのSceneメニューから「Sound」アイコンを選択する。
「No Fliction」メニューから「AudioSource」→「PlayOneShot(AudioClip)」を選択する。
プロジェクトエリアのAssets→Tamakorogashi→Audioを選択し、「Jump01」ファイルをドラッグ&ドロップして設定する。これでボールが跳ね返ると音が鳴るようになる。
Boundごとに反射係数を変える##
複数のBound Prefabsで個別に反射計数を変更したい場合は、新たにPhysics Material 2Dを作成し、反射係数を変えたいPrefabsに設定すれば良い。まず、プロジェクトエリアでAssets→Tamakorogashi→Visualを選び、右クリック→Create→Physics Material 2Dを選択する。
新しいマテリアルに名前(Bound2など)をつけて、Bouncinessの値を調整する。
設定したいPrefabsを選択し、Box Collider 2DのExtra Optionsを開いて、Materal欄に新しく作ったPhysics Material 2Dをドラッグ&ドロップする。
Ball#
Ballの色を変える##
Ballの色を変えるのは簡単だ。HierarchyからBallのInspector→Sprite Renderer→Colorでカラーピッカーをクリックし、任意の色に変更すれば良い。
Ballの重さを変える##
Ballの質量を変えるには、HierarchyからBallを選択し、InspectorからRigidbody 2Dでパラメータを変更すればいい。各パラメータの意味は下記の通り。
Mass 質量
Friction 摩擦
Angular Friction 角摩擦
Gravity 重力
Ballを増やす##
Ballを増やすには、プロジェクトエリアからBallをHierarchyにドラッグ&ドロップする。そのままではシーンビューでオリジナルのBallと同じ場所に表示されるため、場所を移動させる。追加されたBallには独自のパラメータを設定できる。
Move Floor#
Move Floorは一定ルートで移動する板。Insopectorの「Patrol」で速度や移動ルートを設定できる。Speedのパラメータで速度が変わり(マイナスにすると逆方向に移動する)、Stopsの座標を変えるとUターンの座標を変えられる。
InspectorのPatrolにある「+」ボタンをクリックし、新しい座標を設定すると、新しい巡回ルートを設定できる。3つ以上のポイントを設定するとUターンではなく、一定軌道を周回する。ただし、このままでは保存されないので、もうひと手間が必要だ。
同じように「+」ボタンをクリックして、もう一つルートを設定する。その上で「ー」ボタンをクリックしてルートを削除すると、一つ前のポイントが保存される。
Burn##
BurnはBallが当たると反射して消える板。プロジェクトエリアからHierarchyにドラッグ&ドロップして、シーンビュー上で場所を移動させれば良い。ただし、このままではBallが当たっても音は鳴らない。そのため「Boundを増やす」と同じように、別途設定する必要がある。
「
まずCondition Collisionの「None(Object Menu)」をクリックして、Select Objectウィンドウを表示する。
次にSceneメニューをクリックし、None(Object)メニューをクリックして、「Sound」アイコンをクリックする。
次に「No Friction」メニューをクリックし、AudioSource→PlayOneShot(AudioClip)を選択する。
この時点でオリジナルのPrefabsに設定されているオーディオファイル「powerup04」が設定されている。別のオーディファイルに変更してもOKだ。実際にゲームを起動して、ボールが当たったら音が鳴るか確認しよう。
Particle##
HierarchyのParticleを選択し、InspectorのBox Collider 2DのScaleの値を変更すると、星の瞬きの出現する範囲を変えられる。またObject Creator AreaのOther Option欄にあるSpawn Intervalの値を変えると、明滅の間隔を変えられる。なお、Particleはオブジェクトであって、Prefabesではない。FlagRedと同じく数を増やす必要が無いため、Prefabsには設定されていない。