はじめに
この前Unityでメダルゲームを作って遊んだので、その時に学んだことをQ&Aの形式でアウトプットしたいと思います。
筆者のスペック(?)
どんな状態で制作に入ったのかを話しておきます。
- Unityを使うのは初めて
- 3Dゲームを作るのも初めて
- C#は書いたことない
普段からPythonは書いているので、C#を書く上で、だいぶ障壁が減っていた感じはしますが、そこまで複雑なものは書かないので、完全な初心者でもOKです。
Q&A
Q.視点移動ってどうやってするの?
A.Altを押しながらドラッグしてください
以下の内容は後で貼るリンクから動画を参照すると良いです
Q.モノってどうやって置くの?
A.左にあるヒエラルキーってところで右クリして、3Dオブジェクトを選ぶと、候補が出てきます。筆者はCube(四角柱)やCylinder(円柱)を使ってみました。既に設置してあるものを選んだ状態で生成すると、それらを一つの塊として扱えます。また、これをAssetsという下のところにドラッグアンドドロップすることで、使いまわせるようになります。プレハブ化というらしいです。
Q.モノの形ってどうやって変えるの?
A.Sceneの画面上部に手のマークがあるので、その横のタブを選んで形や位置を変えられます。さらに隣には角度を変えるものもあります。自分でいろいろ試してみた方が早いです。
Q.モノの色ってどうやって変えるの?
A.下のAssetsで右クリックしてcreateを選択するとMaterialというのがあるので、まずはそれを作成し、色などの設定を変更します。出来上がったMaterialは、色を変えたいモノに、ドラッグアンドドロップすることで適用できます。
Q.動く床ってどうやって作るの?
A.C#で動かすためのスクリプトを組んで、それをMaterialと同様に、ドラッグアンドドロップで適用します。
Q.他にはC#でどんなことができるの?
A.メダルゲームでいえば、ランダムな位置から出現させたり、特定の方向からメダルを射出したり、様々な使用方法が考えられます
Q.じゃあC#はどうやって書くの?
A.下のAssetsで右クリックしてcreateを選択すると、MonoBehaviour Scriptというのがあるので、それを選んでください。できたファイルは好きなエディタから書き換えたらOKです。C#が書けない人はAIに書いてもらいましょう。
Q.重力の影響を受けるようにするには?
A.インスペクターの一番下にあるAdd ComponentからRigidbodyというのを追加しましょう。
参考動画
追加で動画に載っていなかったQ&Aです。
Q.摩擦係数とか反発係数をいじるには?
下のAssetsで右クリックしてcreateを選択するとPhysics Materialというのがあるので、まずはそれを作成し、数値を変更します。その後、Materialと同じように、適用したいモノに、ドラッグアンドドロップしてください。
Q.画面にUIを出すには?
ヒエラルキーから3Dオブジェクトを生成したように、UIというのがあるので、まずはCanvasを生成します。その後、Canvasの下にTextなどを生成していけばうまくいきます。C#を使うことで、画面に変数の中身をTextとして表示することも可能です。
まとめ
- Unityのエディタでドラッグアンドドロップを活用して、オブジェクトを編集する
- 出来上がったオブジェクトに動きをつけたり、オブジェクトの生成、破棄にC#を活用する
メダルゲームの作成を通じて、基本的に以上の2点で進めていく感覚が、なんとなく掴めた。
最後に
ここまで読んで下さりありがとうございました。ゲームの情報を受け取って、処理を走らせて、ゲームに反映させるとかは、Pythonでのゲーム制作と変わらないですね。とりあえず、どんなことができそうかのイメージはついたので、最初に扱う題材として悪くなかったと思います。ちなみに学習時間は4時間ほどです。