はじめに
Unity をはじめて2日。
昨日は短時間でCubeジオメトリーを表示、動かすまで出来ましたが、
Unity の基本操作が殆ど分からない為、カメラ操作をFPS仕様に作りこもうとしましたが挫折。
やはり簡単ではないというか、どこをどう弄ればいいのか全くといっていいほどわからないので、解説サイトなどを読んで基本からやっていく事にしました。
ただ、やり方さえ分かればThree.jsで苦労したキャラクターモデルをアニメーションさせる事などは、驚くほど簡単にできてしまうようです。
Three.jsだと、沢山のコードを書いてモデルを表示して、アニメーション処理もしないといけないので、その苦労を考えるとほんとUnityは楽に実装できます。
驚くことに、コードは1行も書いてないです。
今日は、VROID STUDIOを使ってキャラクターモデルを作成し、それをUnity にインポートし、assetストアからアニメーションデータをダウンロードして動かすところまでやってみたのでそのメモです。
ほぼGUI操作でドラッグアンドドロップで出来てしまうので、内容は浅めです。
1. VRMモデルの準備
- VRoid でアバター作成
.vrmを書き出し- Unity に入れるために UniVRM(VRM-0.131.0_3b99.unitypackage) を入手
Releases · vrm-c/UniVRM
UniVRM is a gltf-based VRM format implementation for Unity. English is here https://vrm.dev/en/ . 日本語 はこちら https://vrm.dev/ - vrm-c/UniVRM
https://github.com/vrm-c/UniVRM/releases
2. Unityプロジェクトの作成
- Unity Hub → 3D(Built-in) で新規プロジェクト
- Project ウィンドウに UniVRM の
.unitypackageをドラッグ - Import 完了
3. VRM のインポート
.vrmファイルを Project にドロップ- Prefab が自動生成される
- Scene にドラッグするとモデルが表示される
4. Starter Assets(ThirdPerson)を導入
- Unity Asset Store から StarterAssets: Third Person Character Controller を Import
- 依存パッケージの警告が出たが、すべて Install/Upgrade して問題なし
- Unity を一度再起動して安定化
Starter Assets - ThirdPerson | Updates in new CharacterController package | Essentials | Unity Asset Store
Get the Starter Assets - ThirdPerson | Updates in new CharacterController package package from Unity Technologies and speed up your game development process. Find this & other Essentials options on the Unity Asset Store.
https://assetstore.unity.com/packages/essentials/starter-assets-thirdperson-updates-in-new-charactercontroller-pa-196526
5. 操作用のプレイヤーキャラを配置
Assets/StarterAssets/ThirdPersonController/Scenes/Playground.unityを開く- デフォルトのロボットモデルを削除
- PlayerArmature の下にある
Geometryに VRM を差し替え
6. 位置ズレによる不自然な動きの発生
-
WASD で動かすと「瞬間ターン」「くるっと急回転」が発生
-
原因は 親(PlayerArmature) と子(VRM) の位置ズレ
- Sceneビューで動かしたことで position がズレていた
- 親の回転軸と子の回転軸が一致していなかった
7. VRMの Transform を修正
- VRM の
Transform → Position = (0,0,0)に戻す - 子の位置ズレが消え、正常な歩行・旋回が復活
- ThirdPersonController とVRMが正しく連動する状態に戻る
8. Skybox の導入
- Asset Store から AllSky Free を入手
Lighting → Environment → Skybox Materialに適用- シーンに空が追加され、見栄えが向上
AllSky Free - 10 Sky / Skybox Set | 2D Sky | Unity Asset Store
Elevate your workflow with the AllSky Free - 10 Sky / Skybox Set asset from rpgwhitelock. Browse more 2D Textures & Materials on the Unity Asset Store.
https://assetstore.unity.com/packages/2d/textures-materials/sky/allsky-free-10-sky-skybox-set-146014
今日得たポイント
- Unityでは Sceneビューの見た目より Inspector に表示されている Transform が実際の基準
- キャラクター周り(PlayerArmature / Geometry / VRM)は Sceneビューで動かさない方が事故が少ない
- Starter Assets(ThirdPerson)は PlayerArmature を中心軸 に移動・回転・カメラ制御を行う
- 親と子の Position / Rotation がズレると、歩行・旋回・カメラ追従が破綻する
- VRMを差し替えた直後は Position と Rotation を必ずリセット してから確認する
- Skybox やテクスチャは Project に入れてドラッグするだけで反映される
💬 コメント