uGUIでOculus Rift向けに大きな文字を表示する - ReDo

2015年1月 2日

uGUIでOculus Rift向けに大きな文字を表示する

ugui-text05.png

僕だけかもしれませんがUnity4.6でuGUIになって3D TextがCanvas+TextになったらOculus Riftで良い感じに大きめのTextを表示するのにやたらと苦戦したのでメモっておきます。

<結局のところ注意すべき罠は以下の2点>
1. uGUIのCanvasサイズは実際のpixel数ぐらいにすべし、と400x400ぐらいにするとでかすぎてまったく見えなくなってしまう罠は、Scaleを0.005とかに大胆に縮める必要があること。
2. フォントサイズ20程度じゃVRは厳しいので64とかにするとまったく表示されなくなってしまう罠は、デフォルトがTruncateなので表示範囲が足りてないだけということ。これデフォルトOverflowで良かったと思うんですよ...

○はじめに

uGUIの下知識をおさえておきます。

Unity 4.6 Beta の新GUIについて 今見ておくべき資料
http://izmiz.hateblo.jp/entry/2014/08/27/231009
UnityのuGUIのテキスト表示機能について解説してみる
http://tsubakit1.hateblo.jp/entry/2014/12/28/135446

英語が聞き取れる人は公式のチュートリアル動画が一番だと思います。僕は聞き取れませんでした。

○いつもの

・新規プロジェクトを開いてOculus Rift SDKをImport
・OVRPlayerController, Floor, Direclitonal light, Sphereを適当に配置して以下の様にします。

ugui-text01.png

この例ではSphereのPositionは0, 0, 0でScaleは3, 3, 3、OVRPlayerControllerのPositionは0, 1.5, -5です。OVRPlayerControllerについては拙作のエントリにて空を飛べるようにしてあります。

・HierarchyにてOVRPlayerControllerを選択した状態で、Create->UI->Canvasを選択、Canvasを追加します。
・CanvasのRender ModeをWorld Spaceに変更し、Event CameraにLeftEyeAnchorあたりを設定します。
・Inspector内、Rect TransformのPos X,Y,Zを0, 0, 1に、Width 300 Height 300、Scaleを0.005, 0.005, 0.005とかなり小さくしてください。

ugui-text02.png

・Canvasを選択した状態で、Create->UI->Imageを選択。Width 300 Height 300にしてColorを適当に色を付けて、αを低めの64ぐらいにしますと、透明な板が目の前に浮くと思います。
・続けてCanvasを選択した状態で、Create->UI->Textを選択。Width 280 Height 280にしてColorを明るめ、αをちょっとだけ下げた200ぐらいにします。
・TextのInspectorでAdd ComponentしてOutlineコンポーネント(Script)を追加、Effect Distanceを2,-2にちょっと太めにしておきます。

ugui-text03.png

起動して正面に透明な板が浮いて文字が出てたらOKです。

ugui-text04.png

このUIではOculus Riftを被ったさいに真正面に表示されてしまって邪魔なので、ちょっと左上に追いやることにします。

Canvasを選択して、Pos X -1 Pox Y 0.5 Pos Z 1に、Rotationを-15, -45, 0あたりに変更します。

ugui-text05.png

ちょうど左上を見上げるとUIが正面にくるようになっていれば成功です。(実際にはちょっと見上げすぎでつらいのでもっと下でもいいと思います。

コメントする