はじめに
ペンを入れてシーンにペンセットを置き、友だちと空中に描き、自分の色と見た目のペンを作ります。
インストール
リスティングから Udonite Pens を追加します。Udonite とネットワークも一緒に入ります。
シーンにペンセットを置く
Udonite > Pens > Create Pen Set で、シーンビューの前のトレイにスリムなペン 4 本(黒、赤、青、緑)とイレーサーが並びます。最初の 1 回でシーンの PenWorld も追加され、インクはそこで管理されます。
各ペンは自動ホールドの VRCPickup、キネマティックな Rigidbody、VRCObjectSync を持つので、誰かが持っている間は全員から見て動きます。メッシュとマテリアルは最初の 1 回だけ Assets/Udonite/Pens に作られます。そこで見た目を変えるか、ペンの下に自分のモデルを入れてください。
試す
コンパイルしてから、VRChat SDK パネルの Build & Test でクライアントを 2 つ起動し、片方で描きます。
| VR | デスクトップ | スマートフォン | |
|---|---|---|---|
| 持つ | つかむ | クリック。持ったままになります | タップ。持ったままになります |
| 描く | トリガー。ペン先からインク | 左クリック。見ている場所にインク | Use を押したまま視点を動かす |
| 直前の線を元に戻す | 持っている手の上側のフェイスボタン | R | |
| 消す | イレーサーのペン先が触れた線を消す | 視線上の最初の線 | デスクトップと同じ |
デスクトップとスマートフォンでは、4 m 以内で見ているボードにインクが乗り、なければ目の前 0.5 m の空中に描かれます。タップすると点が残ります。
手を離したペンはその場に残ります。returnAfter を設定すると、落としてから数秒後に置いた場所へ戻ります。
自分のペン
ペンの見た目は colour、width、そしてインクスタイルです。インクスタイルは PenWorld にあるテンプレートの線で、そのスタイルの線はすべてマテリアル、太さのカーブ、端の形を写すので、どんなシェーダーでもインクを描けます。
int neon = PensSetup.CreateInkStyle("Neon", neonMaterial, AnimationCurve.Constant(0f, 1f, 1f));
Pen glow = PensSetup.CreatePen("Pen Neon", Color.cyan, new Vector3(0f, 1f, 0f), neon, 0.008f);
snap はすべての点をグリッドにそろえ、ドット絵風のカクカクしたインクにします。drawInAir を切るとボードにだけ描けるペンになります。
片付けながら使う
PenWorld は線のプールを持っていて、標準では 192 本です。すべて使われると一番古い線が次の線に回されるので、部屋がいっぱいになることはありません。inkLifetime は数秒後にどのクライアントでもインクを消し、消去ボタンはボードやすべてを消します。