私には石膏像にインクでペイントしたいという欲望があります。
ボディペイント的なのってエロくないですか?
Unity+VRならできる!
モデル
モデルはこちらのミロのビーナスを使わせていただきます。
インク
色を塗るアセットといえばInkPainter
またこちらのアセットもめっちゃ良さそうです。
流れ
UVmap展開
まずblenderなどでモデルのUVmapを展開しておかないとうまく塗れません。
展開はこちらを参考に
Blender入門#28:UVマッピング – CGrad Project
基本的にはEditモードにしてUを押してunwrapです。もしくはunwrapの下のを押したらできました。
おんなじアテリアルを適用していても、右側の展開していない方はのっぺりしてしまいます。
UV展開していないとInkPainterで塗ると一回で塗り潰れてしまいます。
Ink Painter設定
あとはサンプルシーンから色々パクったらできました。
まずカメラにはこの二つをつけて、(多分下のやつだけでいい)ここで色とかブラシの形を変えれます。
そしてペイントされる側にはMesh ColliderとInk CanvasとAlbedoに何かしらのテクスチャをつけたマテリアルをセットします。
なぜか自分の作ったカメラでは動かなくて、サンプルシーンから持ってきたやつでしか表示されないです・・・
あとGameビューが真っ暗になる。
接触で塗る
コリジョンが当たったところで塗るというサンプルはあったので、ブラシでも簡単にできるかと思ったらできませんでした。
基本的にはこライダーとCollision Painterスクリプトをつけたらいいはず。
床とかはこれで簡単に塗れました。
少し汚いですが石膏像も一応塗れます。ただしマウスでやるときよりは安定しない
これでブラシモデルの先にbox colliderをつけたらできるかと思いきや全然塗れませんで医者。
じゃあ子オブジェクトに球をつけたらいけるかと思いましたが、これも反応せず
どうしたらいいんでしょうね・・・
垂れる(ハイマップ)
Canvasの方にはHeight Fluidをつけて、Ink CancasのUse HeightMap Paintにチェックをつけて
マテリアルのHeightにも何か設定して置く
カメラなどのPainterにHeight Textureをつけて、あとrush TextureにはDefault-Particleにする。Height Blendを0より大きくする。
できました!
VR
steamVR_Pluginを入れて、コントローラーの下に球を置いただけです。
インクがめちゃくちゃ荒い。
ちゃんとコントローラーがブラシになっているバージョンもあるのですが、スクショ撮り忘れました。
ただ、球のmeshを非表示にするとちゃんと書けない事が多い気がするので、球はどうしよう・・・
今後の展望
Vive trackerを使ってユーザーは実際にブラシを持って、発泡スチロールの胸像を用意して、位置合わせをして、触覚フィードバックもする。
それにしても本当にミロのビーナスって美しいですよね・・・惚れ惚れする。