レンダラー3種とマテリアルプロパティブロック機能、マテリアルの変更制限機能、軽量化に不可欠なLOD機能をご紹介いたします。
アバターの軽量化や見た目に関する内容も、少し解説しております。
前回はコチラ
MeshRenderer(メッシュ レンダラー)
静的又は手続型メッシュを描画する為のコンポーネント。
・場所
Rendering/
項目 | 解説 | 初期値 |
Mesh: | レンダリングするメッシュ。 | null |
Materials(list): | メッシュに適用するマテリアルのリスト。 | |
MaterialPropertyBlocks(list): | マテリアルプロパティブロックのリスト。 | |
ShadowCastMode: | 影。 | On |
MotionVectorMode: | ぶれ。 | Object |
SortingOrder: | 並べ順。 | 0 |
マテリアルでメッシュを分ける | 各マテリアル毎のサブメッシュに分割する。 | |
同じマテリアル同士で結合 | 同じマテリアルのサブメッシュを結合する。 |
・使い方
適当なスロットにアタッチ。
MeshとMaterialを指定する。
・補足
MaterialPropertyBlocksについては、次のコンポーネントで紹介します。
ShadowCastModeの設定は4種類。(影有り/影のみ/両面影有り/影無し)
影が必要ないメッシュは、OFFにしましょう。描画負荷が減ります。
半透明マテリアルを使用する場合も、OFFにするのがオススメです。
また、頂点数の多い3Dモデルを使用する場合は影をOFFにし、代わりにローポリモデルを用意して、こちらを影のみにすることで描画負荷を減らすことができます。
MotionVectorModeの設定は3種類。(Object/Camera/NoMotion)
動く物はObject、動かない物(カメラ側は動く)はCamera、必要なければNoMotion。
地面や建物等の動かない物はCameraにしたり、カメラで撮影する合成素材等はNoMotionにしたりします。
SortingOrderは整数値で設定します。
例えば、同じ半透明マテリアルを使用しているメッシュが複数ある場合等、重なった時に表示する順番を指定できます。
また、マテリアルのRenderQueue設定等の影響で、インスペクター等のUI越しだと透けてしまう場合は、-32001にする事で回避できます。(ただし、Fog等と干渉するかも。)
『マテリアルでメッシュを分ける』ボタンを押すと、マテリアルが複数ある場合は、サブメッシュが分割されて子スロットに展開されます。
例えば窓の場合、窓枠と窓ガラスが別々のマテリアルであれば、窓枠と窓ガラスのメッシュに分割できます。
『同じマテリアル同士で結合』ボタンを押すと、同じIDのマテリアルを参照するサブメッシュ同士が結合します。
マテリアルはなるべく少ない方が良いので、同じ質感のマテリアルであれば、結合して減らしちゃいましょう。
・Neos Wiki リンク
https://wiki.neosvr.com/MeshRenderer_(Component)
MainTexturePropertyBlock(メイン テクスチャ プロパティ ブロック)
マテリアルプロパティブロックにテクスチャを設定する為のコンポーネント。
うまく活用すれば、マテリアルの削減ができる。
・場所
Assets/Material Property Blocks/
項目 | 解説 | 初期値 |
Texture: | テクスチャ。 | null |
・使い方
適当なスロットにアタッチ。
テクスチャを入れる。
メッシュレンダラーのMaterialPropertyBlocks(list)に追加する。
・補足
メッシュレンダラーと同じスロットにアタッチしておくと分かりやすいかも。
MaterialPropertyBlocks(list)に追加する際は、コンポーネントの名前部分を掴んで放り込みます。
マテリアルが複数あるサブメッシュの場合は、同じリスト番号に設定すればOK。
これが使えるマテリアルは12種類だけ。(下記リスト参照)
メインテクスチャ以外にもMaskや360°バージョンもある。
例えば大きなポスター10枚をワールドに掲示するとき、10枚のポスターそれぞれにマテリアル+テクスチャを単純に設定すると、マテリアル10個+テクスチャ10枚になります。
ポスターの質感は全て同じで、テクスチャだけが違う場合はこのコンポーネントの出番です。
とりあえずテクスチャ抜きのマテリアルで白紙のポスターを作り、それぞれのポスターにこのコンポーネントを設定してテクスチャを割り当てることで、マテリアル1個+テクスチャ10枚になります。
他にも様々な活用方法があり、軽量化だけではなく作業の効率化やユニークなギミックにも使えます。
ただし、ノーマルマップがなかったり、使えるマテリアルが限られるので、使用する機会は少ないかもしれません。
・使えるマテリアル
PBS DistanceLerp Metallic
PBS DistanceLerp Specular
PBS MultiUV Metallic
PBS MultiUV Specular
UI Unlit
DepthProjection
Matcap
Projection360
Fur
PBS Metallic
PBS Specular
XiexeToon
・Neos Wiki リンク
https://wiki.neosvr.com/MainTexturePropertyBlock_(Component)
・関連
MainAndMaskTexturePropertyBlock
Projection360PropertyBlock
SkinnedMeshRenderer(スキンド メッシュ レンダラー)
動的メッシュを描画する為のコンポーネント。アバター等に使用する。
・場所
Rendering/
項目 | 解説 | 初期値 |
Mesh: | レンダリングするメッシュ。 | null |
Materials(list): | メッシュに適用するマテリアルのリスト。 | |
MaterialPropertyBlocks(list): | マテリアルプロパティブロックのリスト。 | |
ShadowCastMode: | 影。 | On |
MotionVectorMode: | ぶれ。 | Object |
SortingOrder: | 並べ順。 | 0 |
BoundsComputeMethod: | メッシュの大きさを計算する方式。 | Static |
ProxyBoundsSource: | 上記の計算を委ねる先。 | null |
ExplicitLocalBounds: | 明示的なメッシュの大きさ。 | 最大 |
Bones(list): | ボーンのリスト。 | 自動 |
BlendShapeWeights(list): | ブレンドシェイプのリストと設定。 | 自動 |
マテリアルでメッシュを分ける | 各マテリアル毎のサブメッシュに分割する。 | |
同じマテリアル同士で結合 | 同じマテリアルのサブメッシュを結合する。 | |
ブレンドシェイプの影響を受けないメッシュのパーツを分離 | ブレンドシェイプでアニメーションしないメッシュ部分を、サブメッシュに分割する。 | |
空のブレンドシェイプを除去 | 設定されていないブレンドシェイプを削除する。 | |
空のボーンの除去 | メッシュと無関係のボーンを削除する。 | |
使用していないブレンドシェイプを除去 | ドライブされていないブレンドシェイプを固定してから除去する。 | |
ボーンのバウンディングボックスの可視化 | ボーンの境界ボックスを表示する。 | |
マージされたボーンのスフィアバウンディングを可視化 | ボーン(全て含む)の境界スフィアを表示する。 | |
可視化したボーンのバウンディングボックスを非表示 | ボーンの境界ボックス又はスフィアを非表示にする。 | |
現在のポーズから明示的にバウンディングを計算する | BoundsComputeMethodを変更して、ExplicitLocalBoundsを自動的に設定する。 | |
現在のポーズから明示的なバウンディングを拡張する | 同上。違うポーズにしてから押すと、追加で拡張した値を設定できる。 | |
スタティックメッシュにベイクする | 静的メッシュにベイクする。 | |
ブレンドシェイプを結合する | ブレンドシェイプを一纏めにする。 |
・使い方
適当なスロットにアタッチ。
MeshとMaterialとBoneを指定する。
・補足
NeosVR内でスキンドメッシュは作れないので、Blender等で作って取り込む必要があります。
このコンポーネントは負荷が高いので、アニメーションの必要がなければ普通のメッシュレンダラーを使いましょう。
『ボーンのバウンディングボックスの可視化』ボタンを押すと、境界が可視化されます。押すたびに増えちゃいます。消すときは『可視化したボーンのバウンディングボックスを非表示』ボタンを連打しましょう。
『空のボーンの除去』ボタンを押すと、使用していないボーンを除去して処理負荷を減らすことができます。(ただし、複数のスキンドメッシュを使うアバターの場合、動きながら写真を撮影するとメッシュがズレて写る場合があるので、押さない方が良いかも。他にも様々な影響がでます。)
『使用していないブレンドシェイプを除去』ボタンを押すと、使用していないブレンドシェイプを固定してから除去することができます。
例えば、アバターの表情で使ってないブレンドシェイプや動かさないブレンドシェイプがある場合は、除去することで軽量化する事ができます。
また、ブレンドシェイプは0か1の状態と比べると、0.1や0.5等の中間状態の方が負荷が高くなります。
BlendShapeWeights(list)のAddボタンを押しちゃうと、空っぽのブレンドシェイプが追加されちゃうので注意しましょう。
他のボタンにも押すと取り返しのつかない事が起こるヤツがあるので、弄る前に保存(バックアップ)しておくと安心です。
NeosVR内でアバター組み換え(通称「羅生門」)をしている場合、動きながら写真を撮影すると、服がズレて体が写ったり、髪の毛がズレて禿げちゃったりする事が稀にあります。その場合は、スキンドメッシュベイクして一纏めにすることで解決できるかもしれません。
特定の画角で髪や靴等が消えちゃう現象や、ライトが複数ある環境でアバターがチラついて見える現象も、上記同様にベイクして一纏めにすることで解決できます。詳しくは、次の内容をご覧ください。
(特定のカメラで撮影した時だけ消えたりズレたりする場合は、別の原因かも。マテリアルの設定やMODの影響等が考えられます。)
・BoundsComputeMethodについて
スキンドメッシュは変形するので、大きさが変化します。そのため、カリングやライティング等の処理に必要な境界の計算をする必要があります。
計算方法は6つあります。(下記リスト参照)
初期設定のStaticが一番無難ですが、場合によっては設定を変更する必要があります。特に複数のメッシュで構成されているアバターは設定の変更をお勧めします。
例えば、特定の画角でアバターの一部が消えてしまう現象。(顔に近づいて体が見えなくなったときに、顔が消えちゃう等。)
XiexeToonマテリアルを使用するアバターで、複数光源下に入ると、顔等の一部分だけ明るくなったりする現象。
スキンドメッシュが多くて重たいアバター等、何れかが気になる場合は以下の対策を検討してください。
1.なるべくスキンドメッシュベイクして一纏めにする。
複数のスキンドメッシュに分かれているアバターはベイクしちゃえば解決します。
ベイク方法はNeosVR内で有識者に聞いてください。(ブレンドシェイプが大量にある顔等のパーツは、ベイク後の頂点数も考慮する必要があります。)
ベイク後は『同じマテリアル同士で結合』『空のボーンの除去』等を行うと、より軽くなります。
アバターのAFK(不在時)状態も確認して、必要であれば設定を直しましょう。
服やアクセサリー等の切り替えをする場合は、ベイクしちゃうとできなくなるので、次へ。
2.負荷が増えちゃうけどFastDisjointRootApproximateに変更する。
特定の画角で消えちゃう現象等は解決できるけど、処理負荷が上がっちゃう。
処理負荷も減らしたい欲張りな方は、次の2つの方法をお勧めします。
3.Proxyを活用する。
Proxy(代理)モードは別のスキンドメッシュレンダラーで計算したBoundsComputeMethodを使用する設定です。
既に別で計算済みの結果を再利用するので、計算の回数が減って処理が軽くなります。
例えば、ニーソックス等の体にピッタリくっ付いているメッシュは、体のスキンドメッシュレンダラーの計算結果を使用することで計算回数を減らせます。
このProxyモードを正しく機能させるには、それぞれの位置・方向・縮尺等の設定が同じである必要があります。(大抵のアバターは同じはず。)
アバターのBodyをProxyBoundsSourceにする場合、服は問題なく動作すると思いますが、頭(髪)はBodyの範囲外なのでダメです。Bodyに次の設定も行う事で解決できます。
4.Explicitも組み合わせる。
Explicit(明確)モードは、境界を固定値で設定できます。計算しないから軽いけど、無駄に大きな境界にしちゃうと描画処理の負荷が上がっちゃうので、なるべく必要最小限の大きさに設定しましょう。
まず最初に『現在のポーズから明示的にバウンディングを計算する』ボタンを押して、次にポーズを変えながら何度か『現在のポーズから明示的なバウンディングを拡張する』ボタンを押すことで、ExplicitLocalBoundsの値を良い感じにしてくれます。
もちろん手動で設定することも可能なので、アバター全体を覆うバウンディングボックスを設定するのもアリです。(私はBodyをこの方法で設定して、服等はProxyにしています。)
これらの設定を上手く活用することで、アバターを軽くしつつ、ライトを当てた時の見た目も綺麗にすることができます。
大抵は何れかの方法で解決しますが、メッシュやボーンの構造によっては解決しない場合があるかもしれません。その場合は、最終手段としてマテリアル設定を見直すか、Blender等での処理が必要です。
種類 | 解説 |
Static | 初期設定。リアルタイム計算なし。 普通。とりあえずこれでOK。 |
FastDisjointRootApproximate | 大雑把(マージされたボーン)で、リアルタイム計算。 ちょっと重い。アバター等の一部が、特定の画角で消えちゃうときに使うといい。 |
MediumPerBoneApproximate | 精密(全ボーン)で、リアルタイム計算。 重い。 |
SlowRealtimeAccurate | 超精密(全ボーン&ブレンドシェイプ)で、リアルタイム計算。 すごく重い。ブレンドシェイプで大きく変形する場合には効果的だけど、負荷がヤバイ。 |
Proxy | 別で計算した結果を再利用する。 計算回数が減る分、軽くなる。 |
Explicit | 計算しない。手動で設定する。 計算しないので超軽い。(ただし、境界は固定なので必要最小限の大きさに設定した方が良い。) |
・Neos Wiki リンク
https://wiki.neosvr.com/SkinnedMeshRenderer_(Component)
・Neos Wiki 最適化ガイドライン
https://wiki.neosvr.com/Optimization_Guidelines/ja
MaterialApplyPolicy(マテリアル アプライ ポリシー)
マテリアルチップでの、マテリアルの適用を制限するコンポーネント。
・場所
Assets/Tagging/
項目 | 解説 | 初期値 |
CanApply: | マテリアルチップでマテリアルの適用を許可する。 | 無効 |
・使い方
適用したいメッシュレンダラーと同じスロット又は親スロットにアタッチ。
・補足
無効にしておくと、マテリアルチップでマテリアルを適用しようとしてもできなくなる。
子スロット等も同様に適用できなくなる。
アバターやワールドの地面、スカイボックス等に設定しておくとマテリアルチップの誤射事故が防げる。
マテリアルチップでマテリアルを吸い取ることは可能。(吸い取りも阻止する場合は、次のコンポーネントを。)
・Neos Wiki リンク
https://wiki.neosvr.com/MaterialApplyPolicy_(Component)/ja
MaterialRelay(マテリアル リレー)
マテリアルチップでマテリアルを適用する際に、適用先を任意に選択できる。吸い取りも同様。
・場所
Assets/Tagging/
項目 | 解説 | 初期値 |
MaterialRefs(list): | 適応したいマテリアル参照のリスト。 |
・使い方
適用したいメッシュレンダラーの親スロット又は同じスロットにアタッチ。
メッシュレンダラーのMaterials(list)の番号の所を掴んで、MaterialRefs(list)に入れる。
・補足
マテリアルチップでマテリアルの適用又は吸い取りをしようとすると、MaterialRefs(list)で指定した先が実行される。
子スロット等も影響下に入る。
リストが無い場合は機能しない。
リストがNullの場合は、適用も吸い取りもできない。
Null設定でアバタールート等にアタッチしておけば、マテリアルチップでの操作を無効化できるので、悪戯が心配な人はやっておくと良いかも。
・Neos Wiki リンク
https://wiki.neosvr.com/MaterialRelay_(Component)
LODGroup(レベル オブ ディテール グループ)
表示解像度に応じて、表示するメッシュレンダラーを切り替えるコンポーネント。描画負荷軽減に使う。
・場所
Rendering/
項目 | 解説 | 初期値 |
LODs(list): | 詳細レベルのリスト | |
ScreenRelativeTransitionHight: | メッシュレンダラーを切り替える画面比率。 | 0(0%) |
FadeTransitionWidth: | ? | 0 |
Renderers(list): | メッシュレンダラーのリスト | |
CrossFade: | ? | 無効 |
AnimateCrossFading: | ? | 無効 |
・使い方
2パターン紹介します。
1.遠ざかると(画面表示2%以下)消えるパターン。
メッシュレンダラーと同じスロットにアタッチ。
LODs(list)をAddで増やして、ScreenRelativeTransitionHightを0.02(2%)に設定。
Renderers(list)をAddで増やして、メッシュレンダラーを指定。
2.遠ざかると(画面表示50%以下)ポリゴン数が減る。さらに遠くになると(画面表示2%以下)消えるパターン。
近距離で表示するハイポリゴンの3Dモデルと遠距離で表示するローポリゴンの3Dモデルを用意する。
近距離用のメッシュレンダラーと同じスロット又は親スロットにアタッチ。
遠距離用のメッシュレンダラーは子スロットにする。
LODs(list)をAddで増やして、LOD0とLOD1を作る。
LOD0のScreenRelativeTransitionHightを0.5(50%)に設定。
Renderers(list)に近距離用のメッシュレンダラーを指定。
LOD1のScreenRelativeTransitionHightを0.02(2%)に設定。
Renderers(list)に遠距離用のメッシュレンダラーを指定。
・補足
NeosVRでは視錐台カリング(視界外はレンダリングしない)はあるけど、オクルージョンカリング(壁等の向こう側をレンダリングしない)は無いっぽい。さらに、ワールドにアイテムを持ち込んだり、ノークリップで移動したりアバタースケールを変えたりと、自由度が高すぎて処理負荷も高くなりがちです。そのため、クオリティーを維持しつつ軽量化できるLODはとても重要です。
アイテム・アバター・ワールド、全てに活用できます。どんどん設定して軽量化しましょう!
LODはメッシュレンダラーを切り替えて表示するものなので、全く異なるメッシュやマテリアルを使うこともできます。メッシュレンダラーだけを切り替えるので、コライダー等は一つでOKです。
メッシュレンダラーの切り替わるタイミングは、VRHMDやPCモニターの解像度によって変化します。カメラやミラー、望遠鏡や虫眼鏡等のアイテムも解像度によって変化します。
このおかげで、大抵はVRHMDよりも写真機の方が高解像度なので、LODの切り替わるタイミングがズレます。VRHMDだとローポリ、写真だとハイポリで写ったり、1Km先のオブジェクトは表示されないけど、望遠鏡を覗くと表示されたりします。
0.01以下の数値も設定できるけど、インスペクター上では丸められちゃう。
LODはプレイヤーに気付かれない様に、さり気なく切り替えると良いかも。(一般的な3Dゲームでは、注視しないと気付かないレベルで巧妙に切り替わっています。)
切り替えるレベルを細かくするとメッシュデータが増えてワールドの読み込みが遅くなってしまうので、多くても3レベルぐらいが良いかも。
遠距離用のローポリモデルは、メッシュの凸包変換を使うとNeos内でお手軽に生成できます。
特定の条件下ではLOD機能が正しく動作しない事があります。Renderers(list)は1つだけにしたり、UpdateOrderを変更すると動作するようになるかもしれません。
フェード機能は実装されて無いっぽい。(もし、使い方をご存じの方がいらっしゃいましたら教えてください。)
LOD以外にも、ColliderUserTrackerやUserDistanceValueDriverでカリングシステムを構築する場合もあります。
ちなみに、影にもカリング(遠くの影は描画しない)があったり、アバターのコライダーにもカリング機能があったりと、様々な所で様々な軽量化処理が自動で行われています。
・Neos Wiki リンク
https://wiki.neosvr.com/LODGroup_(Component)
TextRenderer(テキスト レンダラー)
文字を描画する為のコンポーネント。
・場所
Rendering/
項目 | 解説 | 初期値 |
Font: | 書体。 | FontChain |
Text: | 文字。 | null |
ParseRichText: | 装飾。 | 有効 |
NullText: | 未入力時の文字。 | null |
Size: | 大きさ。 | 1 |
HorizontalAlign: | 水平位置。 | Center |
VerticalAlign: | 垂直位置。 | Middle |
AlignmentMode: | 位置調整モード。 | Geometric |
Color: | 色。 | 白(R1,G1,B1,A1) |
Materials(list): | マテリアルのリスト。 | TextUnlitMaterial |
LineHeight: | 行の高さ。 | 0.8 |
Bounded: | 折返し。 | 無効 |
BoundsSize: | 折返す幅と高さ。 | x1m,y1m |
BoundsAlignment: | 位置。 | MiddleCenter |
MaskPattern: | 伏字。 | null |
HorizontalAutoSize: | 高さで文字の大きさを自動調整。 | 無効 |
VerticalAutoSize: | 横幅で文字の大きさを自動調整。 | 無効 |
CaretPosition: | キャレット位置。 | -1(無し) |
SlectionStart: | 選択開始位置。 | -1(無し) |
CaretColor: | キャレットの色。 | 無し(R0,G0,B0,A0) |
SelectionColor: | 選択時の色。 | 無し(R0,G0,B0,A0) |
・使い方
コンテキストメニューの新規作成からテキストを選択。
ベーシック(標準)かアウトライン(縁取り有)を選択して、テキストを新規作成する。
Text横のT|アイコンを押すと文字編集モードになる。
・補足
新規作成でテキストを出すと、テキストレンダラー以外にもグラバブル、コライダー、コライダーの大きさを自動調節するコンポーネント等が自動生成されます。
Text右横のT|アイコンを押すと文字編集モードになります。Textを選択してギズモを出したりすると、T|アイコンが消えます。(ちなみに、セッション設定を編集モードにしてから、さらに開発者モードをONにするとT|アイコンが復活します。)
デブツールチップでTextを選択してギズモを出してから、右端の空ボックスを選択すると文字編集モードになります。超便利!(メッシュやマテリアルのアセットが同一スロットにある場合、ギズモ右端の空ボックスが増えちゃいます。)
標準のVRキーボードでは、アルファベットしか入力できません。改行はShift+Enterです。
ユーザー製の日本語対応キーボードをお気に入り登録すると、日本語入力もできるようになります。(様々な人が作っているので、色々試して使いやすいキーボードを探したり、自分専用のVRキーボードを作るのも楽しいかも。)
フォントの初期値は、RootスロットにあるFontChainコンポーネントが指定されます。
様々なフォントデータを一纏めにして、多言語に対応しています。そのため、NeosVRでは日本語表示が標準対応になっています。ただし、シェーダーの都合上「う」の表示がおかしくなっています。(実は「う」以外の文字も拡大するとおかしいです。)
また、様々なフォントが含まれるのでデータ容量が17MBぐらいします。(インベントリーにTextを含むアイテムを保存した時に、アイテムの容量表示が17MB以上になる理由は、このFontChainのアセット容量が表示されているからです。)
NeosVRを初めてプレイするとフォントの読み込みに時間がかかるので、画面の文字が全て□になってしまうことがあります。少し待てばロードされるけど、今度は「ようこそ」の「う」がおかしいので心配になるかもしれませんが、機能上は問題ありません。
多くのNeos民は、おかしな「う」を受け入れて楽しんでいます。
フォントもテクスチャやマテリアルと同様に取り扱うことができます。フォントのデータをNeosにコピペ又はD&Dすればインポートできます。インポートしたフォントを掴んでFont欄に入れれば適応できます。
フォント等をインポートする際には、必ず利用規約等を確認しましょう。
文字には装飾を施すことができます。太字、斜体、下線、色等をタグで指定できます。
ちなみに、スロットの名前に装飾タグを使うとNeosの一部機能が正しく動作しなくなっちゃうこともあるので、気を付けましょう。
テキストレンダラー毎に色を指定できるし、装飾タグでも色を指定できるので、マテリアル1個でカラフルな文字が作れます。
マテリアルはTextUnlitかUI_TextUnlitの2種類のみ使用可能。(違いはステンシル機能の有無等)
マテリアルのOutlineThickness設定で縁取りの設定を変更できる。他にも、縁のボカシ設定等もできる。
フォントやマテリアルの設定を工夫することで、ネオンサイン風にしたり電光掲示板風にしたり、様々な演出ができます。
Boundedを有効にすると、各設定に従い自動的に改行したり文字の大きさを調整してくれます。
BoundsSizeのXを0mにすると、縦書きっぽくできます。
ちなみに、インベントリーの名前等の改行は、スペース(空白)を文字の間に入れると改行できます。(たぶんBoundsSizeの設定で、いい感じに改行してくれてる。)
MaskPatternは1文字だけ。「*」を入れるとパスワード入力欄っぽくなる。
キャレット(脱字符号)や文字選択等の項目は、文字編集の際に自動的に処理されます。
キャレットの位置を手動で制御する場合は「-1」で無し、後は文字数に応じて数値を入れましょう。大着な人は「10000」ぐらいに設定しておけば、自動的に文字列の最後尾にキャレットが来るので楽できるかも。
自分でPhysicalキーボード等を作る際には、文字の入力及び消去を制御できるコンポーネントが便利です。
UIXで文字の表示や文字入力やキーボード製作は、別のコンポーネントも活用します。(ここでは紹介しません。)
『メッシュをベイクする』や『レンダラーを設定』ボタンは押さない方が良いかも。
Touch操作で簡単に文字編集モードにするコンポーネントがあります。他にも文字に関するコンポーネントやLogiXは大量にあります。
テキストレンダラーはメッシュなので、長文を表示すると大量のポリゴンを使っちゃうかも。そういう場合は、UIXで表示すると軽くなる場合があります。編集や操作もしない場合は、写真を撮ってテクスチャに変換しちゃうのもありです。テキストレンダラーはベイクはできないですし、LODも使えないので軽量化は大変です。
・Neos Wiki リンク
https://wiki.neosvr.com/TextRenderer_(Component)
・関連
ButtonStringAppend
ButtonStringErase
TouchableTextField
TextEditor
おわり
以上でコンポーネント紹介は終了です。拙文ではございますが、最後までご覧頂きありがとうございました。
多くの方々に様々な事を教わりながら、コンポーネント紹介を続けることができました。改めて感謝致します。
(今後NeosVRの更新があった場合、コンポーネントの仕様が変わる場合がありますのであしからず。)
また何処かでお会いしましょう。さようなら。