Unityでアセットのインポートをし、キャラクターを動かすまで

今回はUnityでゲームを作る前にキャラクターの操作を簡単に出来る事を
確認してみます。

キャラクターを操作する為には、

  • 3Dのキャラクターモデル
  • 3Dのキャラクターにボーンが設定されている
  • 3Dのキャラクターのアニメーション
  • キーボードを押した時に移動する為のプログラム

が必要になりますが、もうこれを考えるだけで疲れちゃいますね・・・。

が!

Unityではこれが5分とかからず出来てしまいます。
わたくし一人だったら一生かかっても最初から出来ません、作れません・・・・。

スポンサーリンク

Unityでのキャラクター操作に5分かからない理由とは?

5分とかからない理由はそれらがすでに用意されているからです。
それがアセット(資産)という仕組みです。

アセットは3Dキャラクターや音声、スクリプト等があり、有料or無料で使用出来ます。
キャラクターの操作に関するアセットは標準(Standard Asset)で用意されているのでそれをインポートするだけです。

キャラクターのインポートと操作をやってみる

下の画像を見てください。

アセットのインポートをする

メニューの左から3番目のAssets→Import Package→Charactersを選択します。
そうすると下の画面がポップアップで表示されるので

アセットのインポート画面

「Import」をクリックします。

アセットインポート後にフォルダが作成される

最終的に上のようにProjectウインドウのAssetsの表示エリアにインポートしたCharactersを含むStandardAssetsのフォルダが表示されます。
これでキャラクター操作に関してのAssetがインポート出来ました。

それではキャラクターをシーンに設置して操作してみましょう。
シーンとは場面でありここにキャラクター等を設置しゲームの世界を作っていきます。
プロジェクトはゲーム全体、シーンは個々の場面という感じです。

プロジェクトの中にいくつものシーンを組み合わせて作成していく事でひとつのゲームが出来上がります。

例えば、タイトルのシーン、ゲームのシーン、ゲームオーバーのシーンを組み合わせて1つのプロジェクトになります。
ではインポートしたキャラクターをシーンに設置してみます。
フォルダを次のように辿っていきます。

Assets→Standard
Assets→Characters→ThirdPersonCharacter→Prefabs

その中のThirdPersonController.prefabが3Dキャラクターにアニメーションやスクリプトを設定済みであるプレハブ(オブジェクトみたいなもの)になります。
正しくはプリファブ?(^_^;)

アセットを使う

上画面のようにThirdPersonController.prefabをシーンにドラッグ&ドロップして配置をします。
シーンに配置をする事でそのプレハブがインスタンス(実体化したもの)となります。

設置したインスタンスの名前を「takasi」と変更しておきます。

オブジェクト指向言語を勉強した方はよく見聞きした事だと思いますが、
オブジェクトがひな形でインスタンスは実体となります。
オブジェクトはひな形なので同じものを大量生産する時に便利です。

例えば、

人間というプレハブ(オブジェクト)があってそれをシーンに設置して「たかし」という名前を設定するとたかしはインスタンス(実体)となります。

その為、人間プレハブをもうひとつシーンに配置すると「たかし」とは別のインスタンスになります。

Unityの実行ボタンを押してテストプレイ

では上の画面のようにUnityの再生ボタン(プレイボタン?)を押してみましょう。
ゲームのテストプレイが出来ます。
が・・・・、

キャラクターが表示されたと同時にグングン下に落ちていきます・・・底なし沼へ・・・・。

これはThirdPersonController.prefabに重力が設定されているからです。
普通の人間であれば重力がかかるのは当たり前なので、問題があるのは地面がないことです。

というわけで地面を作ります。

キャラクターが落ちないように床を作成する

上の画面のようにしてヒエラルキー上で

右クリック→3D Object→Cube

として床を作成します。

床を作成する

そうすると上画面のようにキャラクターに重なるように四角形の箱が表示されます。
まずはCubeという名前で表示されているので、名前を「yuka」と変更します。

名前の変更の方法は

変更するアイテムを選択し→右クリック→Rename
変更するアイテムを選択し→F2キーを押す

の二通りの方法があります。お好みの方法で名前を変更してください。

「yuka」は地面として設置したいので人間より大きく、そして下に表示するように変更します。
その為に「yuka」を選択しそのインスペクタを見て値を変更します。

インスペクタで数値を指定する方法の他にSceneタブのゲームオブジェクトを選択している状態でオブジェクトをドラッグで全方向に移動させたり、表示されている色つきの矢印をドラッグする事でその軸の方向にだけ移動する事も出来ます。

オブジェクトの移動方法に関しては

Unityを起動後の画面を細かく見てみる
Unityを起動後の画面とメニューを細かく見ていき、どこをどう使うかを学んでいきます。
も参照してください。

床のサイズを変更する

上の画面と同じように

PositionのYを-2
ScaleのXを10、Zを10

に変更します。
これでSceneの画面を見ればわかるとおり「yuka」の上にキャラクター「takasi」が表示されます。
「takasi」の位置は初期値から変更していないのでPositionはX:0 Y:0 Z:0となっています。

Xは横軸、Yは縦軸、Zは奥行きを表しています。
Unityでの前方はZ軸の正の向きになります。
また値は現実世界のメートル、つまり1であれば1メートルという事になります。たしか・・・・( 一一)

とりあえずこれでキャラクターと地面の設置と設定が終了しました。

プレイボタンを押して試してみましょう。
キーボードの↑↓←→、A S D Wで移動、Spaceキーでジャンプの操作が出来ます。
(設定をいじっていない場合)

キャラクターの操作方法

上画面のように(宙に浮いていて画面上は動いてないけれど・・・)床の上をキャラクターが動き回る事が出来ます。
床を外れると底なし沼に落ちるのは床がない時と同じです。

Unityを使ってみて思う事

わたくしがUnityで初めてこれらを試した時は「すご!」と思いました。
3Dゲームを作ること自体がものすごくハードルが高くて自分には無理と思っていましたから・・・。
無料でここまでのことが簡単に出来てしまうんですねぇ・・・(^^)/。

とりあえずここまでのプロジェクトとシーンを保存しておきましょう。
Fileメニューの「Save Scene」と「Save Project」を実行で保存出来ます。
シーンはAssetsフォルダに保存されます。
ゲームを作っていくといろいろなアイテムが増えてくるので、アイテム管理もフォルダを作って、しっかりとやっていったほうがいいです。
フォルダの作り方は

フォルダの作り方

上画面のように

Assetsエリアで右クリック→create→folder

とします。
作ったフォルダの名前を「scene」に変更して、先ほど保存したシーンを「test1」として保存し、フォルダ内に移動させておきます。

という事で今回は終了。
次回は当たり判定に関して何か書くかもしれません。