LoginSignup
3
1

More than 1 year has passed since last update.

Blenderで花火を打ち上げるアドオン

Last updated at Posted at 2022-04-10

Blenderで花火を打ち上げるアドオン

Blender3.1で、花火を打ち上げるアドオンをPythonで作成したので紹介します。

やり方

アドオンのインストール

  • Blender Add-on: Fireworksの画面にしたがってインストールしてください。
    • アドオンのチェックでは「テスト中」を選んでください。

PyYamlのインストール

本アドオンは、PythonのPyYamlモジュールを利用しています。
そのため、下記のように、コマンドラインでBlenderにPyYamlをインストールする必要があります。コマンドラインからBlenderを操作する方法については、「Blenderのコマンドサンプル」も参考にしてください。

  • macOSの場合
/Applications/Blender.app/Contents/Resources/3.1/python/bin/python3.10 -m pip install pyyaml
  • Windowsの場合
"C:\Program Files\Blender Foundation\Blender 3.1\3.1\python\bin\python" -m pip install pyyaml

※ Windowsで、インストールできるのにimportエラーになる場合は、一旦アンインストールしてから、管理者権限のコマンドプロンプトでインストールし直すとうまくいくかもしれません。

Yamlファイルの作成

花火の設定は、Yamlファイルで行います。
作成例は下記のようになります。

shot1:
  radius: 0.1
  particle_size: 0.06
  material:
    color: [1, 1, 0.5, 1]
    strength: 30
  launch: 1
  launch_location: [0, 0, 0]
  explode: 60
  explode_location: [2, 3, 10]
  particle_systems:
    up:
      count: 200
      frame_start: launch + 0
      frame_end: explode + 15
      lifetime: 20
      material:
        color: [1, 1, 0.5, 1]
        strength: 30
    ex1:
      count: 400
      frame_start: explode + 0
      frame_end: explode + 5
      lifetime: 40
      factor_random: 1
      gravity: 0
      material:
        color_ramp:
          - position: 0.5
            color: [1, 1, 0, 1]
          - position: 1
            color: [1, 1, 0, 0.1]
        strength: 30
    ex2:
      count: 1000
      frame_start: explode - 2
      frame_end: explode + 10
      lifetime: 50
      factor_random: 2
      gravity: 0
      material:
        color_ramp:
          - position: 0.5
            color: [0, 1, 0, 1]
          - position: 1
            color: [1, 0, 0, 0.1]
        strength: 30

shot1は、作成する花火のオブジェクトの名前です。任意の名前が使えます。花火はいくつでも作成できます。
launchは打ち上げ時のフレームです。explodeは爆発時のフレームです。

花火はパーティクルで実現しています。
上記では、下記の3つのパーティクルシステムを設定しています。いくつでも設定できます。パーティクルシステムの名前も任意です。

  • up:爆発までの火花
  • ex1:内側の爆発
  • ex2:外側の爆発

作成

  • サイドバーの編集タブの「Fireworks」を開いてください。
  • fileに作成したファイルをフルパスで記述します。
  • Make(作成)ボタンを押します。

補足

花火の色はカラーランプで、時間により色が変わるようにしています。Cyclesではパーティクル情報ノードが使えたようなのですが、Eeveeだとパーティクルの情報が取得できなかったので、ドライバーで設定しています。爆発時にカラーランプの係数が0で爆発終了+寿命で係数が1になります。

Pythonのコード

以上

3
1
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
3
1