2013年8月8日木曜日

【覚書】プログラム初心者岩倉千尋がUnityを使ってゲームを作るまで2【オブジェクトと挙動】

この記事は岩倉千尋がUnityを使って簡単なゲームを作るまでの覚書です。
実際にオブジェクトを配置し、落下や衝突などの物理演算を適用します。

詳細は続きから。

途中リンク先にてサンプルを提示しますが、ゲームのサンプルが動かない場合はUnityWebPlayerがインストールされていませんので、画面をクリックしてUnityWebPlayerインストールしてください。

この記事での到達目標として以下のようなものを作ってみたいと思います。
リンク先で実際に動くものを確認できるので開いてみてください。


/新しいプロジェクトを作る
メニューバーの
File
 ->New Projecct...
を選択すると以下のような画面が出てくると思います。

Inport the following packagesはとりあえずそのままにしておきましょう。

プロジェクトの保存先を直接入力するか、Browseボタンから保存先を選択します。
選択したらCreateをクリックするだけで新しいプロジェクトが生成されます。
※保存先のフォルダやパスの名前は必ず半角英数にしてください。


このようにまっさらなプロジェクトが生成されました。
ここからゲームを作っていきます。


/オブジェクトを置いてみる

メニューバーの
GameObject
    ->Create Other
        ->Cube
を選択してみましょう
このようにScene画面に立方体が生成されていると思います。

Create OtherのCube(立方体)、Sphere(球体)、Capsule(カプセル型)、Cylinder(円柱)、Plane(平面)、Quad(壁?)をそれぞれ下記の画像で示しておきますので参考にしてください。

では到達目標に向かってオブジェクトをガンガン設置していきましょう。


/オブジェクトの形を変える
ここで前回紹介したオブジェクトの変形方法をおさらいしておきましょう。
左からカメラの移動、オブジェクトの移動、オブジェクトの回転、拡大縮小

今回は数値を弄って変形する方法を説明します。
作成したオブジェクトをクリックするとInspectorにオブジェクトの詳細なパラメーターが表示されると思います。
表示されないときはCtrl + 3で出てきます。



オブジェクトの名前とタグ、レイヤーの設定ができます。今回は名前を変えるだけであまり使いません。

Position(オブジェクトの絶対位置)、Rotation(オブジェクトの回転角度)、Scale(オブジェクトの大きさ)を変更できます。
ちなみに1Position、1Scaleは1mに換算されます。

他の項目は利用するときに説明しますので今回はこれだけ覚えてください。

/光源を作る
すべてのオブジェクトを置くことができました。
再生ボタンを押してみましょう。
しかしこのままでは暗くて何があるのか分かりません。
プレビューでは明るくても、プレイ時には明かりを設置しないと真っ暗のままです。
光源を設置しましょう。

Create Other
    ->Directional light
で設置します。

Directional Lightは光源の場所に関係なく一定方向の光を与えてくれます。
そのほかにも
・電球のように中心から光を発するPoint Light
・一点に光を当てるSpot Light
平面の片側の四角形の範囲に光を全方向に発するArea Light
があります。


/物理演算とは
ここからが楽しいところです。
それではいったんこのゲームを起動してみましょう。

玉が転がりませんね・・・



坂の上ヘ落ちる物体の、物理演算によるシミュレーション4例。

1.物理シミュレーションなし
2.重力のみ。衝突判定なし
3.重力と衝突判定のみ。回転演算なし。
4.重力、衝突判定と回転演算。

今私が作ったのは1の状態のものです。
ボールを転がしてピンに当てるためには4の状態にしなければなりません

本来なら複雑なプログラムをゴリゴリ書かなければならないのですが、Unityでは簡単にできるんです。

/物理演算を適用する
それでは物理演算を玉とピンに適応させてみましょう。

まず、適応させたいオブジェクトを選択し
Component
    ->Physics
        ->Rigidbody
をクリック。

Inspectorにこのような欄が追加されていれば成功です。

Mass:重さ(kg)
Drag:空気抵抗
Angular Drag:回転の減速
Use Gravity:重力の影響を受けるかどうか
Is Kinematic:動きをスクリプト制御するかどうか
ほかにもいろいろありますが、今回使用するところだけ紹介しました。

/完成
それでは実行してみましょう


 

3 件のコメント:

  1. おお、すげぇ

    返信削除
  2. 誤字じゃなく勘違いされてるみたいなんでツッコミいれておくと ×適応 ○適用 ですよ

    すごく参考になるんで今後もこのシリーズ続けて欲しいです

    返信削除
  3. Unityいいなー いまだにXNAで開発してるわ

    返信削除