12/08/2018, 15:04

Day 2 - Space Shooter

昨日は頭痛が酷く、Unityを触れませんでした。 まだ引きずっていますが、Unityを触れない程ではない。 よし、じゃあSpace Shooterを作っていきます。 Introduce Space Shooter チュートリアルを終わらせると、上の動画と同じゲームが作れるらしい。 序盤にしてはすごいものを作れる気がする、今からこんなもの作ってたら1年後にはどうなってるんだ。 しかし、簡単に作れるとは誰も言っていない。心して掛かろう。 Begin development 千里の道も一歩から、ゲーム開発もプロジェクトを作成するところから。 ...

昨日は頭痛が酷く、Unityを触れませんでした。 まだ引きずっていますが、Unityを触れない程ではない。

よし、じゃあSpace Shooterを作っていきます。

Introduce Space Shooter

チュートリアルを終わらせると、上の動画と同じゲームが作れるらしい。 序盤にしてはすごいものを作れる気がする、今からこんなもの作ってたら1年後にはどうなってるんだ。 しかし、簡単に作れるとは誰も言っていない。心して掛かろう。

Begin development

千里の道も一歩から、ゲーム開発もプロジェクトを作成するところから。

プロジェクトを作成したあとは、スペースシューターを作るためのアセットをダウンロードしてきます。 メニューバーからWindowを選択、その後Asset Storeを選択するとシーンビューの所にアセットストアのタブが追加されます

(画像Ctrl+9のところ)

SearchのところにSpace Shooter tutorialと打ち込むと、左上に表示される欄をクリックします。 すると、スペースシューター制作に必要な素材がダウンロードできるページに行けます。 ダウンロードをした後、プロジェクトにインポートします。

Where I stuck

その後は、チュートリアルに沿ってゲームを制作していきます。 ここあたりでは詰まるところは何もないと思いますが 第1章の5.Moving the playerにてプレイヤーゲームオブジェクトにプログラムを組み込む時

rigidbody.velocity …

と書くように指示される所があると思います。 しかし、このようにプログラムを書くとエラーをはかれて動作しません。

実はこのチュートリアル、Ver5.1向け?に作られているみたいなんです。 要は古いバージョン向けに作られたチュートリアルで

最新のもの(僕が今使っているのはVer5.6)に適用するためにはちょっと修正を入れなければならないみたいです。 アップデートで便利になるのはいいけど、チュートリアルが古いバージョンにしか対応してないのはどうなの?って思いますけど さて、修正するためには何をすれば良いかというと

アップデートによってコマンドの書き方が変わったみたいです。 直接rigidbodyにアクセスはできなくなり

GetComponent<Rigidbody>().velocity

上のように、GetComponentというコマンドを用いて、コンポーネントを取らなければならなくなったみたい。 へ~。

…rigidbodyとGetComponentってなんだ? Unityマニュアルの出番です。

Rigidbody (剛体)

Rigidbody を使うと、__ゲームオブジェクト__を物理特性によって制御する事ができるようになります。

ゲームオブジェクトにrigidbodyを適用すると、ぶつかり合うことが出来たり、重力の影響を受けるようになる。 ゲーム制作には欠かせないですね。 つまり、rigidbody.velocityというコマンドでは ゲームオブジェクトの速度を読み込んで取得している、ということかな

GetComponent コンポーネント取得

コンポーネント(Components)はゲーム中でのオブジェクト動作の基礎となるものです。 
全てのゲームオブジェクトの機能的部品です。

つまりは、ゲームオブジェクトという入れ物に入っている機能の事をコンポーネントと言って それを取得するために必要なコマンドがGetComponentということ。 以前のバージョンではコンポーネントを取得しなくても速度や位置を取得出来たけど 最新バージョンではGetComponentを用いなければならないと…

僕のような初心者からすると、アップデートで面倒くさいことになってるじゃないか! としか思えないけれど、上級者たちからすると何か意味のあるアップデートなんだろうか? ここは多分、今理解出来るものでは無い気がする。

Today's result

1日でスペースシューターを完成させる、なんて言ったけれど ちょっと見通しが甘かった。今日完成したのは ・背景作成 ・プレイヤーの機体作成 ・弾の作成 ・弾を打ち出す機能追加 です。チュートリアルの第一章が終わった所に当たりますね。

基本が完成するのが3章、改造が4章となっているので 明日は3章まで完成させるのを目標に頑張っていきたいと思います。

プログラミングは超初心者ということで、書いているC#の意味が理解しきれていませんが こういうことを書いているからこういう動作になっている(キー入力を受け取って移動しているなど) などを、完成した後に見直していきたいと思います。

一応、弾発射のみが出来る状態のプロジェクトをビルドしてみました。 1秒間に弾4発だけじゃ見た目的にも面白くないので弾は1秒間に1000発出るようにしておきました。 ↓ https://drive.google.com/open?id=0B4ytiyB0HuK2UXBuMnFncXFMX3c

0