フューチャー技術ブログ

自分の分身(3Dアバター)と自作ワールドを作ってみた

はじめに

はじめまして! Unity初心者の阿保ですଘ(੭ˊ꒳ˋ)੭

このご時世でフューチャーも完全リモートワークとなり、便利になったことや不便になったことがあります。

【便利になったこと】

  • 仕事の合間にカンファレンスや勉強会に参加し放題
  • 出勤に使用してた体力を自分の好きなことをやる体力として使える
  • 仕事を終えた瞬間から自分の時間として使える

【不便になったこと】

  • 家にいるのに気合を入れて顔を作って会議に参加するのがめんどくさい
  • 顔が見えない会議の場合に感情が読み取れず、相手が怒っているように感じる
  • 外に出歩けないから何かを体験するということができない

不便になったことを改善するために3Dアバターや仮想空間技術を使いこなして
もっと便利な世の中にすることを企みこの度、VRの勉強をはじめました。
まずは顔がいい分身とみんなが穏やかな気持ちになれる仮想世界を作ってみました٩(ˊᗜˋ*)و

何を作ったか

  • 自分の分身(3Dアバター)
  • 分身を動かす仮想世界

実際に作った自分の分身と仮想世界がこちら↓↓

環境

  • Windows 10
  • VRoidStudio-v0.11.2
  • Unity Hub 2.4.0
  • Unity 2019.4.9f1

自分の分身を作成

まずはVRoidStudioを使って自分のオリジナル3Dアバターを作成します。

VRoidStudioは無料で提供されている3Dモデル作成アプリです。

基本となるモデルがあり、

  • 髪型
  • 体型
  • 洋服

が編集でき自分のオリジナルのアバターが作成できます。

VRoidStudioの環境構築や3Dアバターの作成はこちら↓を参考にしました。
https://degifeel.com/vroid-studio-how-to/

作った分身はこちらです↓

仮想世界の作成

ここからはUnityで神になる本を参考に仮想世界を作っていきます。

  • UnityHubから新規3Dプロジェクトを作成
  • 右上のLayoutドロップダウンから2by3を選択
  • まずは大地を作成
    • Game>3D Object > Terrainの順番に選択
    • HierarchyPositionタブに表示されている「Terrain」をクリック
    • Inspectorタブに表示されている「Position」をX:-500 Y:0 Z:-500に変更し大地が世界の中心にくるようにする
    • Ctl + 9でAsset Storeを表示
    • 「Standard Assets」をインポート
      • Allボタンで全てにチェックをつけてImportボタンを押下
    • HierarchyPositionタブに表示されているTerrainを押下
    • Inspectorタブに表示されているTerrainの筆のアイコンを押下
    • Edit Terrain Layers…>Create Layerの順に選択
    • 検索窓に先ほどImportしたStandard Assetsの地面素材である「GrassRockyAlbedo」を入力し画像を押下する
    • Textureの枠に画像が設定されていることを確認してダブルクリックすると地面が「GrassRockyAlbedo」に染まる
    • Inspectorタブに表示されているTerrainの木のアイコンを押下
    • 「Edit Trees…」>「Add Tree」を選択
    • Tree Prefabに「Broadleaf_Desktop」という樹木を選択
    • クリックを長押しすることで地面に木を生やすことができる
    • Inspectorタブに表示されているTerrainの草花のアイコンを押下
    • 「Edit Details…」>「Add Grass Texture」を選択
    • Detail Textureに「Grass」と入力しでてきた好きな草を選択しAddボタンを押下
    • 木と同じくクリック長押しで草を生やせる
    • 上記要領で3Dワールドを作りこんでいく

3Dワールドに自分の分身を誕生させる

  • VRoidStudioで作った分身をUnityで動かせるようにするためのパッケージを導入します。
    • UniVRMをgithubから最新バージョンを選んでUniVRM-X.XX.X_XXXX.unitypackageをDownload
    • DownloadしたパッケージをUnityのProjectウィンドウにDragu&Dropする
    • Import Unity Packageのダイアログが開くので下の「ALL」>「Import」の順に押下しPackageをImportする
  • 自分の分身をUnityへImport
    • VRoidStudioで作成した自分のvrmファイルをUnityのProjectウィンドウのAssetに配下にDragu&Drop
  • 分身を操作できるようにセットアップ
    • ここからは分身の操作が見えやすいようにUnity右上のLayoutを「Default」へ変更
    • SceneにAsset配下の自分の分身(Prefab Asset)ファイルをDrag&Dropで投下
    • 自分の分身ファイルを選択した際に表示される右側のInspectorタブのAnimatorのControllerに「ThirdPersonAnimatorController」をセットする
    • 「Capsule Collider」の値を変化させて分身の大きさを調整する
      • CenterをX:0 Y:0.8 Z:0に設定
      • Heightを1.81に設定
    • 「Third Person Character」の「Ground Check Distance」値を0.3に変化する
      • 歩く速さなど動作が変化するので自分の好みの値に調整してください

分身を動かしてみる

  • 動かした際に分身をカメラが追ってくれるように設定
    • 「Hierarchy」>「Main Camera」を分身フォルダ配下へDrag&Drop
    • 分身フォルダ配下に移動していることを確認
    • Main Cameraの「Inspector」のMain Cameraのチェックを外す
    • Projectの検索窓に「MultipurposeCameraRig」と入力
    • 表示された「MultipurposeCameraRig」を「Hierarchy」へDrag&Dropする
    • 「MultipurposeCameraRig」を選択し、右のInspectorに「MultipurposeCameraRig」を表示させる
    • 「Auto Cam(Script)」のTargetに分身フォルダをDrag&Dropする
    • 上部のPlayボタン(▷)を押下して分身を動かす
      • w:前進 S:後進 A:右移動 D:左移動 Space:ジャンプ

ちょっと空もいじってみました。

驚きのジャンプ力ですがいい感じに動いてます(๑òωó๑)

本日はここまでですが、動物や家など配置させて仮想空間を作りこんだり、他の人をこのワールドに召喚し、VoiceChat機能を追加することで家から出ずに顔も作らず、心穏やかにコミュニケーションがとれそうです。