この記事は「Unity #3 Advent Calendar 2020」13日目の記事です
有料の破壊アセットを使ってみました。
できたもの
Rayfire for Unityで竹を切る動画 with骨喰藤四郎【VR】
環境:Unity2019.4.14+Windows
RayFire for Unity
破壊したり、刀で切ったりできる170ドルのアセットを買ったよ!
元が170ドルで独身セールの70%割引のときに56ドルで買った。
破壊系アセットといえば、Exploderというのをずっと買うか迷ってたけど、確かUnity2018でエラーが出るというレビューがあって買わなかった気がする。
(今レビュー見たらUnity2020で動いたって書いてあった)
今回も買うか悩んだけど、PVで塔をスライスしているのを見て、骨喰藤四郎(刀)で切りたいな〜と思って買った。
3dsMax版は映画でも使われているって!
今AssetStoreで半額セールしてる、ランタイムでオブジェクトを粉砕できるプラグインRayFire、
— きゅぶんず (@kyubuns) 2020年11月23日
「アベンジャーズとかバットマンしか使わへんやろww」って冗談で言ってたらマジで使われてるらしく、即ポチった
(映画で使われてるのは3ds Max版で、これはUnityに移植した版)https://t.co/Kl00FlcjVL
ここで使用実績見れる
VRでも動くみたい!楽しそう
使用例その2https://t.co/1o5OIFyybm
— きゅぶんず (@kyubuns) 2020年11月23日
資料
Youtubeに各種コンポーネントの使い方があるので、これを見たら良さそう
アセットの中にwordのドキュメントはあった
高額なせいか、実際に触って記事にしている人あんまりいなさそう・・・?
私はドキュメント見ずに、サンプルシーンをいじる形で触りました。
サンプルシーン
ここにある。
1.Shatter
オブジェクトについているRayfireShatter.csのFragmentボタンを押したら、オブジェクトにひびが入る。
ボロノイはこんな感じ
Splintersは縦長、横長にひび割れる
2.Rigid
上から岩が落ちてきて、机が割れるけど、設定によって割れ方が違う
設定で変えられるみたい
大体あらかじめ割れている
3.Debris(残骸)
上から落ちてくる岩が割れる
破片が消えていったから、そこら辺の処理かな?
4.Dust
落ちてきた後ほこりがでる
岩にRayfireDustがついている
5.Slice
スライスでオブジェクトを切れるよ!
楽しい!!
刃代わりのQuadにはRayfireBlade.csがついている
切られるほうはRayfireRifid
切られるほうは分割などの事前準備不要。どの角度でも自由に切れる!!
6 Connectivity
柱を壊せた。1本壊しただけじゃ崩れない。
柱を全部壊すと崩れる!構造を考慮しているのかな??
別のシーンにはActivatorという謎の物体があった。このシーンはなんだ
7 Restriction
坂を岩が転がっていった
よく分からない
↓自分のモデルで遊んでいく!
自分のモデルを破壊する
Shatterのサンプルシーン上に自分のモデルを入れてヒビを入れてみる
モデルのMeshがある部分にRayfireShatterを付ける
設定がよくわからなかったので、他のサンプルオブジェクトに付いているコンポーネントをコピーして貼り付けた。
このままInspectorのFragmentボタンを押したら、Meshが読み込めないといわれた。
objファイルなどのModel>Read/Write Enabledにチェックを入れる
その後Fragmentを押すと・・・おおー!!
サイコロステーキ先輩!!
というかちゃんとテクスチャも分かれるんだ!すごい!!
こんな感じでMeshと同じ階層に分割されたものが生成される
もとのメッシュは非表示になってる。
なぜか元のモデルより一回り大きくなった
Fragmentのタイプを変えたら分割のされ方が変わる。
右はボロノイ
Fragmentを押した後はScalePreviewを変更できる。これで分割されたもの同士の開き具合が調整できる。0にしたらぴったりくっつく。
落として破壊
Debris. Typesのサンプルシーンで動かしてみる
石が落ちてきて、石が粉々になる
破壊する側も、受ける側もRayfireRigidを付けている。
SimulationTypeがDynamicが破損側で、Kinematicが受けかな?
岩にはRayfireDebrisもついていた。
これは追加の破片をパーティクルで生成するやつ。
このパーティクルは時間経過で消える。
相変わらずそのまま貼り付けても破損しなかったので、サンプルの岩に付いているRayfireRigidのValueをPaseteした。
するとちゃんと破損した!!
刀で切る
Bladeのサンプルシーンの刀を骨喰藤四郎にする。
昔買ったこちらの刀剣アセットを使う。
かっこいい・・・
刀のメッシュにRayfireBladeを付ける・・・が
これで実行したが、切れなかった;;
しょうがないので既ににシーンにあるQuadを刀の子オブジェクトにして、メッシュを非表示にした
これで実行すると・・・
おおーできた!
ちなみに切られる側にはRayfireRigidを付ければいい。(設定はCubeからコピペ)
ただ、自分のトマシープモデルに付けたら爆発した
VRで見る
とりあえずVRで見る!
VirtualRealitySupprtedにチェックを入れる
もしくはUnity2019.4ではXRPluginManagemmentを使うのが王道なのかもしれない。
ProjectSettingsのXRPluginManagemmentをチェックする
あとで使うので、XRInteractionToolkitも入れた
これでOculusLinkつないでプレイ!おおー
普通に動いた!
VRで竹を切る
さっきの刀のシーンをVRで動かすよ!
XRRigを生成して、RightHandControllerの子に刀を付ける。
---
でもなぜか手が動かない>< 昔やった時とXRControllerの設定も違う・・・
RightHand Controllerに付いているスクリプトがXRController(Action-based)になってる。
これをXRController(Device-based)に変更したら動いた!
---
やったー!
なぜか切った直後に竹が増えているが気にしない!
PC用exeを配布しています
おまけ)竹のテクスチャ付き
ご自由にどうぞ
昔自分で撮った竹の写真からスクショしただけのもの
Tilingを増やすといい感じになります。
最後に
リッチな割に意外と簡単に使えました。
といってもサンプルシーンで動かしただけだし、細かいパラメーターは理解していませんが・・・
いろいろ機能がありそうだし遊び方もいろいろあるので、もっと記事が増えるといいですね~断面の色を変えたり、破壊した状態を書き出したりできるっぽい。
そういえば途中でこのプロジェクトを開くとUnityがクラッシュするようになってしまいました;;結局別のPCでやり直しました。
なんだったんだろう~。このアセットしか入れてなかったのに。