BlenderとUnityで作ったものをVR(Meta Quest/Oculus Link)で動かします

ブログの女の子を作る #112 ソニック・シューター!!と神剣クォータニオン!!を作る【Unity】

 
転生したら剣でした」のアニメが面白いです!
 
今回は「ソニック・シューター!!」のように剣が飛んでいく技と、大量の剣が回転しながら飛んでいく技を作ってみました。
回転する技は、Transform を回転してた時に偶然できたものなので「超級決戦兵器! 神剣クォータニオン!!」と名付けてみました。そのままですね。。。



開発環境

・Blender 3.0.0
・Unity 2021.3.0f1(HDRP 12.1.6)
・CPU:AMD Ryzen 7 3700X
・グラボ:ASUS ROG-STRIX-RTX2060S-O8G-GAMING
 

(1) ソニック・シューター!! を作る

まずは「ソニック・シューター!!」を作っていきます。
 

剣を複製してrigidbodyで飛ばす

剣を飛ばすのは、以前の記事でテニスボールを飛ばしたのと同じ方法です。
 
  1. キャラクターが持ってる剣と同じ位置に Instantiate() で「大きな剣オブジェクト」を生成する。
  2. 剣を進行方向に向ける。
  3. 剣オブジェクトの rigidbody に AddForce() で力を加える。
  4. Destroy() でオブジェクトを数秒後に破棄する。
  5. 1~4 を 0.1秒毎に10回実行する。
という感じです。
 
剣をまっすぐ飛ばすため、Use Graviry は false にしてます。
少し斜め上に飛ばすのであれば true にするのも面白そうですね。
 

動画で確認する

動画で確認しておきましょう。
 
カッコいい!!
 


(2) 超級決戦兵器! 神剣クォータニオン!! を作る

次は「超級決戦兵器! 神剣クォータニオン!!」を作ります。
 

rigidbody.AngularVelocityで回転する

と言っても、先ほどの「ソニック・シューター!!」を少し改造するだけですが。。。
 
(1) の 3.の処理「AddForce() で力を加える」のあとで、rigidbody.AngularVelocity を使って剣を回転します。
rigidbody.angularVelocity = new Vector3(0.0f, 0.0f, 30.0f);
 
あとは剣の本数を増やし大きくして、Destroy() の時間を長くすると完成です。
 
それにしても回転系の処理は本当に難しいですね。いろんなサイトを調べつつ実装したのですが、正直なところあまり良く分かってません。クォータニオン!!とか言ってますが、Quaternion は使ってない気もしてきました。。。
今回は良い感じ?に動いたので良しとしましょう。
 
別の角度から見るとこんな感じに見えます。
良いですね。
 

動画で確認する

動画で確認しておきましょう。
なんか強そうな感じになりました。
 

まとめ 

「ソニック・シューター!!」のように剣が飛んでいく技と、大量の剣が回転しながら飛んでいく技を作りました。
 
こういう戦闘シーンを作るのは楽しいですね。
 
スポンサーリンク

コメント

  • トラックバックは利用できません。

  • コメント (0)

  1. この記事へのコメントはありません。

ブログの女の子を作る #111 Timelineで女の子が大剣で敵を倒すシーンを作る【Unity】


最近のコメント

だーしゅ
IT関係のお仕事してます。
3Dモデルの女の子は「アリス・ブロコ」。VRは楽しいですね。

[当ブログについて]