とりあえずSD-Unityちゃんを移動させたい。

# 概要

地面をつくって、SD-Unityちゃんを配置して、キーボード操作で「移動」と「ジャンプ」のアクションをさせる＆カメラを追従させるという状態まで持っていくためのメモです。コードは1行も書きません。

<img width="446" alt="2020-07-19_14h03_05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/f72d2176-a6b8-6f61-97d2-ecc764e48c8f.png">

- 追従カメラには、Cinemachine を利用します。

# 実行環境
- Windows10 64bit 
- Unity 2019.4.4f1 (LTS) 

# SD-Unityちゃんのモデルデータの入手

- [Unity-chan Officiacl Website](https://unity-chan.com/download/releaseNote.php?id=SDUnityChan)からモデルデータをダウンロードします。ここでは、バージョン 1.01（Unity5対応モデル）をダウンロードします。`SD_UnityChan-1.unitypackage` というファイルが取得できます。

# 準備

- Unityを起動します。
- テンプレートを「3D」にしてプロジェクトを新規作成します。
- API互換レベルを「NET 4.x」に変更します。
 - [File] - [Build Settings] - [Player Settings] - [Other Settings] - [Api Compatibility Level] を `.NET 4.x` に変更します。

- Assetストアから「Standard Assets (for Unity 2017.3) 」をインポートします。
  - 今回、必要なものは、ThirdPersonCharacter 関連だけなので、次のようにチェックを入れて import をします。<br><img width="328" alt="2020-07-19_12h36_45.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/5814b784-c222-b136-272d-f904cf59e7c4.png">

- SD-Unityちゃんのモデルデータをインポートします。
 - [Assets] - [Import Package] - [Custom Package...] から、`SD_UnityChan-1.unitypackage` を選択します。
 - 次の要素にチェックを入れて import をします。<br><img width="328" alt="2020-07-19_12h43_23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/6e07462e-fb9c-189c-6930-11e5782ac921.png">

# 地面を生成
- [GameObject] - [3D Object] - [Plane] で、シーンに平面（地面）を追加します。
- Scale を変更して、地面の大きさを $100\times100$ $\mathrm{m}$ に変更します。<br><img width="297" alt="2020-07-19_12h52_41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/85c677d6-986c-22da-297f-52b89f3fe52d.png">

# SD-Unityちゃんを配置

- `SD_unitychan_humanoid` の Prefab をシーンに追加します。<br><img width="413" alt="2020-07-19_12h49_29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/6a5eab59-3d89-3595-2c52-ee7bbf02da08.png">
- カメラのほうを向くように回転させます。<br><img width="296" alt="2020-07-19_12h58_06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/f33fe44e-0023-5807-a4d6-5e40f8df75e3.png">
- [Ctrl] + [P] でゲームを実行すると次のようになります。現状では、キーボードのカーソルキーを押しても（ポーズは変化するものの）移動はしてくれません。また、画面上に UI が大量に配置されています。この先、これらの UI を消し、カーソルキーで Unity ちゃんを動かせるようにしていきます。<br><img width="491" alt="2020-07-19_12h59_49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/0eadb857-8966-59ea-5eef-6a4671504f0c.png">

# SD-UnityChan のコンポーネントの設定

- 次のように（とりあえずは）不要なコンポーネントをオフにします。<br><img width="295" alt="2020-07-19_13h07_47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/8b442d4b-5d13-21a2-cc4c-5725480a988a.png">

- Animator コンポーネントの Controller を `ThirdPersonAnimatorController` に変更します。`ThirdPersonAnimatorController` は、Stranded Asset のアイテムです。<br><img width="296" alt="2020-07-19_13h12_24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/98c91d8a-13e6-f1e1-5984-cb4427f7adf2.png">

- 「Add Component」ボタンを押下して、スクリプトコンポーネント `Third Person User Controller` を追加します。この際、自動的に「Rigidbodyコンポーネント」「Capsule Colliderコンポーネント」「Third Person Character (Script) コンポーネント」も追加されます。<br><img width="294" alt="2020-07-19_13h14_35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/bdc20c69-7a13-8d5b-4213-62322989c3c6.png">

- Capsule Colliderコンポーネントの設定を次のように変更します。<br><img width="295" alt="2020-07-19_13h23_06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/6ea68f97-b840-00a4-4e4e-87e06c551263.png">


- Third Person Character (Script) コンポーネントの設定を次のように変更します。<br><img width="297" alt="2020-07-19_13h25_07.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/c135497d-d9e7-b8b7-0562-231e84b613e3.png">

- [Ctrl] + [P] でゲームを実行すると、キーボードのカーソルキーで移動、スペースキーでジャンプができるようになります。<br><img width="492" alt="2020-07-19_13h27_48.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/2a03aafd-b02a-4cb6-79f5-531585696f91.png">

# カメラを追従させる

- カメラが、Unityちゃんを追いかけるようにします。
- [Window] - [Package Manager] を選択します。
- [Cinemachine] を検索してインポートします。<br><img width="758" alt="2020-07-19_13h41_52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/13cb6edd-18df-9aab-a11c-3eac0e822670.png">
- [Cinemachine] - [Create Virtual Camera] を選択します。<br><img width="430" alt="2020-07-19_13h44_12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/b56a0053-c7ff-9a2d-6704-aaa869800288.png">
- シーンのなかに「CV vacm1」というオブジェクトが追加されているので、そのインスペクターの「Follow」と「Look At」に、配置済みの Unityちゃんを設定します。また、「Binding Mode」を「World Space」に変更します。<br><img width="291" alt="2020-07-19_13h50_10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/911aa1b1-7ab0-2344-3434-461341efb351.png">

- 最後にプレビューを確認しながらカメラの位置を設定します。<br><img width="768" alt="2020-07-19_13h54_16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/79426365-3180-9bee-6d7a-b4935659deab.png">

- 撮影範囲のガイドは、次の項目で ON/OFF を切り替えることができます。<br><img width="294" alt="2020-07-19_13h56_42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/8c0c3229-24fe-e6c4-583c-2425703793a4.png">