VCIを触りはじめて1ヶ月程度が経ちましたが、テキスト(文字列)を扱おうとしたいときにどこから始めればよいかわかりづらかったので、その補完をしたいという気持ちで書きます。
参考情報
本記事の内容はほぼ上記公式リファレンスの焼き直しです。
開発環境の構築とプロジェクトの作成
プロジェクトの作成が完了している場合は読み飛ばしてください。
開発環境
インストールするもの
- Unity 2021.3.6f1
Unity Hub経由でインストールします。
ダウンロードしておくもの
- UniVRM-0.101.1.unitypackage
- UniVCI-0.35.0.unitypackage
- TMP_NotoSansCJK.unitypackage
執筆時点で最新の開発環境を揃えると上記のようになります。基本的には最新のUniVCIのリリースを確認し、そこで推奨されている記載されているバージョンのUnityおよびUniVCIを使用すると良いと思います。TMP_NotoSansCJK.unitypackage は必須ではありませんがテキストを扱う際には導入しておいたほうがのちのち都合がよいです。
プロジェクトの作成
Unity Hubの画面上 [New Project] をクリックし、[3D] を選択、Editor Versionが2021.3.6f1になっていることを確認します。
Project nameは適当につけます。
パッケージのインポート
[Assets] → [Import Package] → [Custom Package...] でダウンロードしたUniVRM-0.101.1.unitypackage、UniVCI-0.35.0.unitypackage、TMP_NotoSansCJK.unitypackage を順番にインポートします。
インポート時にこのような確認メッセージが表示されたらAccept Allをクリックします(よくわかっていない)。
VCIの作成
上記記事の焼き直しですが念のため。
VCIObject と VCI Sub Item
まず空のGameObjectを作成し、 [Add Component] でVCIObjectを追加します。個のオブジェクトの名前を VCITextTest とします。
VCITextTest のLayerを VCIPickUp にします。この設定はアバターや他のVCI等との接触時の挙動に関係します。詳細については以下の記事が詳しいです。
Hierarchy上で VCITextTest を右クリックし [3D Object] → [Cube] を選択します。このCubeの名前は Cube のままにしておきます。
Cube のTransformで Position のYを1にしておきます。Scaleは X: 0.5, Y: 0.5, Z: 0.001 にします。
Cube のInspectorで [Add Component] → [VCI Sub Item] を選択します。
追加されたVCI Sub Itemでは Grabbable, Scalable, Attractable にチェックを入れ、同じく追加されたRigidbodyでは Use Gravity のチェックを外し is Kinematic のチェックを入れます。
VCI Text
ようやく本題に入っていきます。
Cube を右クリックし [VCI] → [Text] を選択します。
以下のようなダイアログが表示されたら [Import TMP Essentials] をクリックして必要なパッケージをインポートします。
テキストの編集
文字が Cube の中に入って見えなくなっている場合は、Z軸(青色の軸)を動かして見える状態にします。
TextMeshPro-Text で一般的なテキスト編集ができます。ただし多少クセがあります。
- VCIで使用できるフォントは Noto Sans JP のみです 。Font Assetでフォントを選択できるように見えますが、ここでの選択はあくまでUnity上でしか反映されません。
- Font Asset が初期設定 LiberationSans SDF のままだとUnity上で日本語が潰れて見えてしまいます。TMP_NotoSansCJK.unitypackage をあらかじめインポートしたことにより NotoSansCJK-Bold_SDF が選べるようになっていますので変更しておきます。
- Font Size の初期値5はかなり大きいので、いったん1くらいにしておきます。Auto Size はVCIでは機能しません。
- Wrapping をEnabledにするとテキストが枠内で折り返されます。
VCIのエクスポート
VCI Object のTitle, Version, Authorを適当に入力し [VCIをエクスポート] をクリックします。
エクスポートしたVCIを THE SEED ONLINE にアップロードし、VirtualCast上で展開します。ルーム・スタジオのどちらでも同じ挙動になるかと思います。
問題なくVCIが表示されたらVCIが勝手に移動しないか、それを掴めるか、リサイズ可能か、文字( Text )と背景( Cube )が別々に動いてしまわないか確認します。
ここまで来たら本記事で扱う内容は終了です。
文字を表示するという単純な動きを実現するだけでも、初学者にとってはハードルになる要素がたくさんあるものだと感じました。とはいえ、VR空間内で使えるアイテムを短時間で作って簡単に持ち込めるのはやはりVirtualCastの優れたポイントだと思います。
VCIで楽しいことをしていきたいですね。