【Unity2020版】SDユニティちゃんを動かす

こじゃら

次のようにSDユニティちゃんを走り回らせたいの~

このは

Unity公式のSDユニティちゃんモデルStandard Assetsを使えばすぐ作れるわ!

ユニティちゃん公式ウェブサイトでは、Unityで使える様々なアセットが公開されています。

本記事では、Standard AssetsとSDユニティちゃんモデルを用いて、SDユニティちゃんを自由に走り回れるようにする手順を解説していきます。

この作品はユニティちゃんライセンス条項の元に提供されています

動作環境
  • Unity2020.3.5f1

Unityプロジェクトの準備

まず、SDユニティちゃんを動かすためのUnityプロジェクトを準備します。
インポートしたいUnityプロジェクトを事前に開いておいてください。

本記事では、空のUnityプロジェクトを新規作成して手順を解説していくこととします。

SDユニティちゃんのインポート

モデルデータのダウンロード

ユニティちゃん公式ウェブサイトから、SDユニティちゃん 3Dモデルデータをダウンロードします。

ダウンロードは、公式ウェブサイトの右上にあるDATA DOWNLOADボタンより行えます。
利用規約に同意し、ダウンロードページから該当する名前のものをダウンロードしてください。

プロジェクトへのインポート

ダウンロードしたunitypackageをUnityエディタのProjectビューにドラッグ&ドロップし、アセットのインポートを行います。

Import Unity Packageウィンドウが開いたら、全選択した状態でそのままImportボタンをクリックしてインポートが終わるまで待ちます。

インポートが成功すると、Assetsディレクトリ配下にUnityChanディレクトリとREADMEファイルが追加されます。

コンパイルエラーの修正

Unity2020では、インポートを行ったあとに以下のようなエラーがコンソール画面に出力されることがあります。

Assets\UnityChan\Scripts\AutoBlinkforSD.cs(8,23): error CS0234: The type or namespace name 'Policy' does not exist in the namespace 'System.Security' (are you missing an assembly reference?)

これは、.NET Standard 2.0を使用しているときに発生するコンパイルエラーで、この.NETバージョンではまだSystem.Security.Policy名前空間が存在していないためです。

取れる回避策は次の2つです。

コンパイルエラー回避方法
  • .NETバージョンを4.xにする
  • AutoBlinkforSD.csスクリプトを修正する

.NETバージョンを変更できない等の理由がなければ、一つ目の方法をお勧めします。

方法1 : .NETバージョンを4.xにする

.NETバージョンは、メニューのEdit > Project Settings…からProject Settingsウィンドウを開き、Player > Other Settings > Configuration > Api Compatibility Level*の項目から変更できます。

.NET 4.xを選択してください。

選択すると再コンパイルが走るため、終わるまで待機します。

方法2 : AutoBlinkforSD.csスクリプトを修正する

.NET Standard 2.0でコンパイルエラーを回避する方法です。

AutoBlinkforSD.csを開き、8行目の以下コードを削除してください。

修正前

using System.Security.Policy;

修正後

//using System.Security.Policy;

これでコンパイルエラーが消えれば成功です。

Standard Assetsのインポート

SDユニティちゃんが走り回れるようにするために、Standard Assetsをインポートします。
以下ページよりStandard Assets (for Unity 2018.4)をインポートします。

右側のマイアセットに追加するまたはUnityで開くボタンをクリックし、アセットのインポートを実施します。
すると、Package Managerウィンドウが開かれるので、右下のImportボタンをクリックします。1Downloadが代わりに表示されている場合は、DownloadボタンをクリックするとImportボタンに変わります。その後、Importボタンをクリックします。

Import Unity Packageウィンドウが開いたら、次の項目を選択してImportボタンをクリックします。

  • Standard Assets/Characters/ThirdPersonCharacter
    • SDユニティちゃんを走らせるためのアニメーションやスクリプト
  • Standard Assets/CrossPlatformInput/Scripts
    • SDユニティちゃんを操作するためのスクリプト
  • Standard Assets/Prototyping
    • 床などのオブジェクト類

これで準備完了です。

シーンの準備

必要アセットのインポートが一通り済んだため、シーン上でSDユニティちゃんが走り回れるようにしてみましょう。

シーンの作成

ここでは、空シーンを新規作成する前提で手順を解説します。
Ctrl + Nキーを押下し、Basic (Built-on)を選択し、Createボタンクリックで新規シーンを作成します。

作成した後は、Ctrl + Sキーでシーンを保存しておきましょう。

床を配置する

先にインポートしておいたStandard Assetsの床オブジェクトを配置してみましょう。
以下パスのPrefabをドラッグ&ドロップでシーンに追加します。

Assets/Standard Assets/Prototyping/Prefabs/FloorPrototype64x01x64.prefab

SDユニティちゃんの配置

床上にSDユニティちゃんを配置します。
先と同じ要領で以下Prefabをシーンに配置します。

Assets/UnityChan/SD_unitychan/Prefabs/SD_unitychan_humanoid.prefab

SDユニティちゃん側の設定

シーン準備が出来たら、SDユニティちゃんをキー操作で走り回れるようにしてみましょう。

まず、SDユニティちゃんオブジェクト(SD_unitychan_humanoid)のAnimator > Controllerに、以下パスのAnimatorをアタッチします。

Assets/Standard Assets/Characters/ThirdPersonCharacter/Animator/ThirdPersonAnimatorController.controller

次に、SDユニティちゃんオブジェクトのIdle ChangerとFade Updateスクリプトのチェックを外し無効化します。
これは、ポーズや表情変更のUIを無効化するためです。

Add Componentボタンをクリックし、Third Person User Controlスクリプトを追加します。

すると、以下のように必要なコンポーネントが自動的にアタッチされます。
これらがSDユニティちゃんを操作するために必要なコンポーネント類です。

そして、以下画像のように赤枠のパラメータを設定します。

これでゲーム実行すると、以下のようにSDユニティちゃんを操作できるようになります。

さいごに

本記事では、SDユニティちゃんを操作するサンプルを作る手順を解説しました。
一度動かすことができたら、ここから色々と試せることも増えていくことでしょう。

Standard Assetsには、キャラクター操作のように痒い所に手が届くスクリプトが揃っています。
手っ取り早くプロトタイプを作りたいときに非常におススメのアセットです。

Standard Assetsの使い方については、以下記事もあわせてご覧ください。

【Unity2020版】Standard Assetsを使えるようにする
Standard Assets(スタンダードアセット)はUnity公式が配布しているアセットで、Unityでよく使われる標準的な機能やモデルなどが一通り揃っている便利アセットです。 しかし、2021/4/24現在では管理 ...

参考サイト