今回はUnityの有料3Dアセットを使用して3Dのキャラクターを動かしてみます。マップもアセットに含まれるものを使用します。

Unityのアセットストアでは、クオリティの高いアセットを購入する事ができ、実際に様々なゲームで活用されています。Unityによるゲーム開発・映像制作等では様々な素材を用意する必要がありますが、アセットを上手に活用する事で、素早くクオリティの高い作品を作る事ができます。

まずは今回使用する有料3Dアセットを紹介します。

■Synty Store「POLYGON – Town Pack」

Syntyのアセットは、Unityのアセットストアでも特に大人気のアセットで、キャラクター素材や地形素材等、3Dゲーム開発に役に立つものがたくさん入っています。

ちなみに、Unityのスタンダードアセットに含まれる3Dキャラクターを操作した時の記事があるので、こちらも読んでいただけると理解が深まると思います。

■Unityの3Dキャラクターのアセットを操作

有料アセットを使って3Dキャラクターを動かす

ではさっそく有料アセットを使って3Dキャラクターを動かしてみましょう。

以下の様な流れで3Dキャラクターを動かすまでを進めていきます。

  • 事前準備
  • 簡単なマップ作成
  • 3Dキャラクターの配置
  • キャラクターを動かす準備
  • 実際にキャラクターを動かしてみる

事前準備

今回は3Dのキャラクターアセットを使用しますので、プロジェクト作成時は3Dテンプレートを使用しましょう。

■3Dテンプレート

次に、アセットをインストール&インポートします。

インポートが完了すると「Assets」フォルダの下に「PolygonTown」のフォルダが作成され、その中に各種アセットが保存されます。

■「PolygonTown」のフォルダが作成される

ちなみに、「Models」というフォルダにも様々な素材が入っていますが、これらは大元のモデルデータになっていると思います。

基本的には「Prefabs」というフォルダに入っているものを使用します。Prefabs配下の方が基本的な設定がされたデータのはずです。

簡単なマップ作成

マップもPolygonTownのアセットを使用します。まずは簡単なマップを作成しました。

■簡単なマップを作成

ちなみに、マップを作成する際は各アセットの位置に気を付けましょう。

Sceneビューにドラッグすれば、自動で配置されますが、なるべくTransformのPositionが「X:0、Y:0、Z:0」になっている方が後々が楽です。

Transformコンポーネント右側の「設定」から「Reset Position」を選択すると自動でPositionを「X:0、Y:0、Z:0」にしてくれます。

■Reset Positionを選択

■Positionが「X:0、Y:0、Z:0」になる

3Dキャラクターの配置

次にキャラクターを配置しましょう。

Assets > PolygonTown > Prefabs >Characters の中にある好きなキャラクター素材を選択して、HierarchyウィンドウかSceneビューにドラッグしましょう。

Sceneビューにキャラクターが配置されます。

■Sceneビューにキャラクターが配置される

ちょっと画面が暗いですね。。。

Sceneビューが暗い場合

キャラクターを配置したもののちょっと暗いですよね。この様な場合は、

ツールバーの Window > Rendering > Lighting Settings をまず選択します。

■Lighting Settings

Lighting Settingsのウィンドウが開きますので「Auto Generate」にチェックを入れます。

■「Auto Generate」にチェック

Sceneビューが明るくなり、キャラクターも良く見える様になりました。おじさんのキャラクターが良く見えますね。

■Sceneビューが明るくなる

キャラクターを動かす準備

次にキャラクターを動かしてみます。

自分でコーディングをして動かせる様にしたい所なのですが、今回はUnity公式のStandard AssetsのThirdPersonCharacterにドッキングさせる形で動かしてみたいと思います。

動かし方は色々とあるのですが、Synty公式の動画でまさにStandard AssetsのThirdPersonCharacterを使用する方法が紹介されていたので、同じ方法でドッキングしてみます。

■Synty公式の動画

※非常に簡単かつ良いクオリティで動きます。

Standard AssetsのThirdPersonCharacterを用意

まずはUnity公式のStandard Assetsをインストール&インポートします。Assetsフォルダ配下にStandard Assetsフォルダができあがります。

■Standard Assetsフォルダが作成される

Assets > Standard Assets > Charactres > ThirdPersonController> Prefabs配下のThiedPersonControllerを選択して、HierarchyウィンドウかSceneビューにドラッグします。

■ThiedPersonController

SceneビューにThirdPersonControllerが配置されました。

■ThiedPersonControllerが配置される

ちなみに、Unityのバージョンによって、Standard Assetsが動作しない事があります。

その場合の対応方法は以下の記事を参考にしてみて下さい。(Terrainに関する記事ですが、Standard Assetsを動作させる方法が載っています。)

ThirdPersonCharacterを非表示にする

Hierarchyウィンドウ > ThirdPersonControllerを選択すると、ThirdPersonControllerの子オブジェクトが表示されます。

■ThirdPersonControllerを選択

ThirdPersonControllerの子オブジェクトの「EthanBody」「EthanGasses」を選択します。
※ShiftもしくはCtrlを押しながら選択すると両方選択できます。

■「EthanBody」「EthanGasses」を選択

Inspectorウィンドウの表示・非表示チェックボックス(下記のチェックボックス)を外します。
※対象オフジェクトを表示・非表示にするチェックボックスです。

■表示・非表示チェックボックスを外す

「EthanBody」「EthanGasses」が非表示になりました。おじさんキャラクターだけが見えている状態です。

■「EthanBody」「EthanGasses」(ThiedPersonController)が非表示になる

ThirdPersonControllerにドッキングする

次に、ThirdPersonControllerに、おじさんキャラクターをドッキングしてみます。

これで、ThirdPersonControllerのモーションや操作を踏襲しつつ、おじさんキャラクターを操作できるはずです!

以下の画像の様に、Hierarchyウィンドウで赤枠のオブジェクト(おじさんキャラクター)を青枠のオブジェクト(ThirdPersonController)にドラックしましょう。

■おじさんキャラクターをThirdPersonControllerにドラッグ

ThirdPersonControllerのInspectorにて、Animatorコンポーネント > Avatarの設定をします。

■Avatarの設定

CharactersAvatarを選択します。

■CharactersAvatarを選択

座標の位置情報の調整が必要な場合

これで動かせるぞ!と思ったらちょっと要注意です。

ThirdPersonControllerの位置と、おじさんキャラクターの位置を調整しましょう。

親オブジェクトになるThirdPersonControllerの位置はそのまま、子オブジェクトになるおじさんキャラクターの位置はPositionを「X:0、Y:0、Z:0」にして下さい。

子オブジェクトは、基本的に親オブジェクトの相対座標を指定する事になるので、「X:0、Y:0、Z:0」でOKなのです。
※ちなみに、Projectから直接ThirdPersonControllerにドラッグした場合は基本的に「X:0、Y:0、Z:0」になるはず。

■ThirdPersonControllerの位置はそのまま

■おじさんキャラクターの位置はPosition「X:0、Y:0、Z:0」

キャラクターを動かしてみよう

ではさっそくキャラクターを動かしてみましょう!

以下の様に無事に動きました!元気なおじさんですね。

■キャラクターが動く

3Dプレイヤーキャラクターをカメラで追従してみる

上記の状態で操作するだけでも十分に楽しいのですが、gameカメラを近づけて操作をしてみると、おじさんキャラクターが左右に移動した際に、カメラから見切れてしまいます。

上記で紹介しているSynty公式の動画では、3Dのプレイヤーキャラクターをカメラで追従する方法も載っていましたので、それを試してみます。

■おじさんキャラクターがカメラから見切れてしまう

Standard Assetsの「FreeLookCameraRig」を使用します。

■FreeLookCameraRig

FreeLookCameraRigをHierarchyウィンドウにドラッグします。

■Hierarchyウィンドウにドラッグ

FreeLookCameraRigを選択して、InspectorウィンドウのFreeLookCam(Script)コンポーネントにTargetという項目があります。

このTargetにThirdPersonControllerを設定します。

■TargetにThirdPersonControllerを設定

デフォルトのカメラである「Main Camera」の機能はオフにします。これで準備完了!

■Main Cameraの機能はオフ

実際にGameモードで実行してみると、カメラがおじさんキャラクターを追従しています!

■カメラがおじさんキャラクターを追従

Syntyのアセットで色々と遊んでみる

最後にSyntyのアセットを追加したりして色々と遊んでみたいと思います!

他のオブジェクトも配置してみる

簡単なマップとおじさんキャラクターだけを使用してきましたが、他のオブジェクト(木や柵など)も配置してみます。

配置の方法はおじさんキャラクターを配置した時と同じです。

各オブジェクトにコライダー(Collider)が設定されているので、しっかりと当たり判定があります!

素晴らしい!どんどんゲームの世界を作っていけますね!

■他のオブジェクトを配置

プレイヤーキャラクターを変更してみる

これまで、おじさんをプレイヤーキャラクターにしてきましたが、プレイヤーキャラクターを(無理矢理)変更してみましょう。

PolygonTown > Prefabs > Vehiclesに車のアセットがあるので、これをプレイヤーキャラクターに設定してみます。

おじさんキャラクターを設定した時とほぼ同じ手順ですが、今回はProjectウィンドウから直接HierarchyウィンドウにあるThirdPersonControllerへとドラッグします。(Synty公式で紹介されているのはこの手順ですね。)

■車のアセットをThirdPersonControllerへとドラッグ

車のアセットの場合はThirdPersonControllerのアニメーションを適応させる事はできない(知る限りは)ですが、ThirdPersonControllerの操作機能だけは使用できます。

おじさんキャラクターのオブジェクトはオフにして、車のアセットだけを見える状態にしましょう。

これでGameモード実行すると、、、車を動かす事ができます!感動です!

■車を動かす事ができる

まとめ

今回はSyntyの有料3Dアセットを活用して、Unity上で3Dキャラクターを動かすという事を実践してみました。

今回のおさらい

■3Dキャラクターを動かしてみた

  • 事前準備
  • 簡単なマップ作成
  • 3Dキャラクターの配置
  • キャラクターを動かす準備
  • 実際にキャラクターを動かしてみる

■3Dプレイヤーキャラクターをカメラで追従してみた

■Syntyのアセットで色々と遊んでみた

クオリティの高いアセットを活用すれば、ゲーム自体のクオリティもどんどん高くなります。
※Syntyのアセットは扱いやすくて素晴らしいものが多いですね。人気アセットになっている理由が分かります。

実際に3Dのゲームや映像等を作成する際に参考にしていただければと思います!