14
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

STYLYアドベントカレンダーAdvent Calendar 2021

Day 24

BlenderのパーティクルをUnityに持ってくる方法

Posted at

STYLYアドベントカレンダー24日目の記事です。

2021年のSTYLY NEWVIEW AWARDSに参加して、宮沢賢治の「やまなし」という童話を題材にした作品を制作しました。

この作品で優雅に泳いでいるモブの魚たちはあまり目立たない存在ですが、実はBlenderのパーティクルで魚の群れのシミュレーションをして、Unityに持ってきています。この記事では魚の群れ表現を実現するために調べたことをまとめたいと思います。

魚の群れの動きをBlenderでシミュレーション

「やまなし」ではカワセミの登場で魚が逃げ惑う表現を検討していたので、リアルな魚の動きをシミュレーションしたいと考えていました。Unityで魚の群れをつくりたいときは通常C#のプログラムで「Boid」の仕組みを作ったり、群れ制御のアセットを使ったりすると思うのですが、STYLYで実現するためにはPlayMakerというアセットが必要になるので他の方法があるかどうか調べたところ、Blenderのパーティクルでも実現することがわかりました。

Boid Particle
https://www.youtube.com/watch?v=J3TUPYVsxow

Blenderのパーティクルをアニメーションに変換

BlenderのパーティクルはそのままUnityに持ってくることができません。そこで、パーティクルの動きをアニメーションに変換するベイク処理をします。Blenderは標準ではベイクをサポートしていないのですが、pythonを利用する方法がBlenderのStackExchangeに書いてありました。

  1. まず、Scriptingのタブを開いて上記のコードを貼り付けます。
  2. 次に、パーティクルとして動かしたいオブジェクト(この場合は魚一匹)とパーティクルを選択します。
  3. 2つのオブジェクトを選択した状態でスクリプトを実行します。

image.png

しばらく待つとパーティクルの動きがアニメーションとしてベイクされます。
image.png

出力はこのように設定しました。

image.png

おわりに

演出の関係で魚が激しく動き回るようなモーションを使うことはありませんでしたが、BlenderのパーティクルをUnityに持ってくることができるとわかり、いろいろと試してみたいと思いました。

14
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?