ご覧になっていただきありがとうございます。「ひさよろ」です。
“ありたい自分” で人生を楽しむ大人を増やす
という理念のもと、コーチングを使って
日本人が大志を抱けるゲームをつくる
プロフィールページでご説明した通り、私は上記のような夢を持ち、会社員ながら完全未経験の『ゲーム制作』と『コーチング』を掛け合わせた活動を行っています。
前回は、オンラインスクール「TechAcademy」(以下、テクアカ)のUnityコースを始めた最初の1週間で学んだこと簡単にお話ししました。Lesson0~4の内容です。とても簡単にでしたが。
今回は2週間目で学んだこと、『Lesson5 – 3Dゲームアプリを作ろう(Vol.1)』の内容になります。
最初に言っておきますが、コードなどの詳細は全く紹介しませんので、ご承知おきを。こんな流れでつくるのね。ということを知ってもらえたらと思います。長くなったので次回と合わせて前・後編とします。
私もそんなゲームをつくりたい!と思った方は、ぜひテクアカで学んでみては?
せっかくなので宣伝しておこう↓
ピンボールゲームをつくろう!
Lesson5は、いよいよゲームをつくります。『ピンボールゲーム』です!
ピンボールゲームって何?という方、下のようなゲームです。まさにこれを作りました。
やったことはこんな感じです。
- オブジェクトの配置
- オブジェクトに色を設定
- オブジェクトに当たり判定を設定
- オブジェクトに動きを設定(星の回転、雲の拡大縮小)
- フリッパー操作の設定
- 星と雲にボールが当たったら光る設定
- 失敗したら画面中央に「Game over」と表示
- 画面の右上にスコアを表示(オブジェクトの衝突で増加)
ゲームをつくったことがない人からすると、すごく難しそうに聞こえますね?私は「そんなこといきなりできんの?」と思いました。安心してください、Unityなら簡単にできます。あとはテクアカの指示に従えば。
ひとつづつ説明していきます。
1. オブジェクトの配置
上の画像のように、だだっ広い空間上に9種類のオブジェクトをつくって配置します。
立方体や球、円筒といった簡単な形はUnityの画面で選ぶだけです。複雑な形は、テクアカが準備してくれているので、データをインポートすればすぐ使えます(お金を払うというのはこういうことですね)。
オブジェクトの配置も、位置情報を入力するだけ。回転やスケール(サイズ)変更もできます。
とても簡単!ですが、何の指示もなくつくる場合、位置・回転・スケールは絶妙に設定しないといけないので、その辺を考えるのが大変そうです…。まぁ、ゲーム制作の流れを覚えるためだと考えて今は気にせず進みます。
2. オブジェクトに色を設定
実はオブジェクトを作って配置しただけでは↓みたいな色なのです…。なんとも味気ない。
というわけで、オブジェクトに色を設定していきます。
色の設定は、各オブジェクトごとに行うのですが、オブジェクトの情報を直接書き換えるのではなく、「マテリアルアセット」という色情報を作って、オブジェクトに貼り付けるということをします。
↓の画像を見て何となくイメージがわいてもらえると嬉しいです。
3. オブジェクトに当たり判定を設定
オブジェクトはその場に存在しますが、何も設定をしないとお互いがすり抜けてしまいます。
そこにあるナニカ=お化けみないな存在です。
なので、そのオブジェクトが質量を持っていて重量の影響を受け、別のオブジェクトと出会ったときに当たったと判定できるような設定をする必要があります。
具体的には、「Regidbody(リジッドボディ)」「Collider(コライダー)」のコンポーネントを追加する。
- Rigidbody:物理法則を受けるようにする(剛体)
- Collider: 当たり判定の領域を決める
リジッドボディは機械系エンジニアの私にとっては「剛体」ということなのでイメージできますが、コライダーはというと…
こ、コライダー?仮面ライダーの子供バージョン?チビノリダー(伊藤淳史)?
うん、難しい。接触の当たり判定をさせるには、Colliderをお互いのオブジェクトに設定する、と覚えましょう。
ちなみに、星や雲のCollider設定を外すとこうなります↓
おわかりいただけただろうか………。
ボールが来てもすり抜けてしまい、スコアも加算されません。
ポチっとColliderを設定するだけで、オブジェクト同士が衝突・跳ね返る動きを再現してくれるのです。こういうことが簡単にできるようにしてくれているのが、Unity様ってことですね。
4. オブジェクトに動きを設定(星の回転、雲の拡大縮小)
ここまでは、Unityの画面上でマウス操作でポチポチがほとんどでしたが、ここからが本番といってもいいでしょう。プログラミングが必要になってきます。このピンボールゲームでは、
- 大きな星を回転
- 小さい・大きい雲を拡大縮小
2つの動きをC#というプログラミング言語で書いていきます。(実際はテキストのコピペでできてしまいます)
動きとは、位置とか回転で表しますが、大事なこととして
- ワールド座標(グローバル座標):その空間の原点基準
- ローカル座標:オブジェクトの原点基準
があるということです。
オブジェクトの初期位置は空間(ワールド座標系)のどこにいる、という設定をしますが、そのオブジェクトがそのあとどう動いたかを表すには、オブジェクトを主語にして設定したほうが指示が楽ですね。
どのようなコード(プログラム)を書いたかはここでは説明しません(すいません)。
また今度、どんな関数が出てきたかを私自身の備忘録も兼ねてまとめようと思います。
というわけで
ピンボールゲーム制作の工程はまだ残っていますが、いったん終わりにさせていただきます。図解を描きながらだと疲れますね。
というわけで最後にいつもの、
みんなだんばれ!!
頑なに張るの「がんばる」ではなく、
弾むように張るの「だんばる」で、
一緒に人生を楽しみませんか?
最後までご覧になってくださったあなた、ぜひぜひX(旧Twitter)で交流しましょう!ゲーム制作をしていない方もウェルカムです。人生や働くことを楽しむために、日々くだらないことをつぶやいています。
以上です。
コメント