VR空間に線を描いたり、消したり
VR空間に線を描いたり、部分的に消したりするやつ、自分なりにやってみました。
TrailRendererを使えば線を引くのは簡単にできるけれど、一度描いた線は部分的に消せません!!
んじゃ、一度じゃなくって複数描けば良いんじゃね?
ってことで、適当な距離進んだら一度線を切って、またすぐ線を描けるようにしてみました。
これが1つの線分
SphereColliderとTrailRendererを持っていて、SphereColliderに「Eraser」がぶつかったら、オブジェクトを消すようにする。
ペンの動きに沿って、どんどん繋げていくと一本の線に見える!
(よく見ると繋ぎ目で切れているのがわかるが、そんなの気にしない)
以上!
完成したのがこちら、コントローラの制御にはVRTKを使用しています。
ペン本体
コントローラで掴める、トリガーボタンを検知できるようにする
ペン先
今の色がわかるようにする為の飾り
ペン先の先っちょ
ここに線を吐き出していくスクリプトをアタッチ
線
実際に線を引く時は、「Instantiate」でこいつの複製を作成しています。
SphereColliderとTrailRenderer
TrailRendererの「Time」は長めに、Tagには「Pen」と設定しときました
ペンのスクリプト
消すやつのスクリプト
部分的に線を消すことが出来ました
なお、Colliderがあるのは線の端っこなので、消す時に違和感を覚えます。
ペンの通った場所を覚えておいて、Colliderの位置を線の中間に移動させるとかしたら良いかも。
3Dも2Dも
これだけじゃつまらないので、空間にもホワイトボードにも描けるペンを作ってみたよ
VRで空間にもホワイトボードに描けるペン
ホワイトボードへの描画にはInkPainterを使わせていただきました~