LoginSignup
2
2

More than 3 years have passed since last update.

BlenderでDriver

Last updated at Posted at 2019-12-12

11日目が空いていたので(またか

説明画像はありません。
Auto Run Python Scriptを設定からONにしておかないと動きません。

BlenderにおけるDriverとは、1行で書き表されるpython scriptです。
どんなものか試してみたい人はまず
Emptyをシーンに追加し、Rotationのどれかに

#radians(frame)

と打ってEnterを押してみましょう、現在のフレームの角度に回転するアニメーションになるはずです。
やっていること
- frameはBlender Driverの機能として、現在のフレームの値が入っている変数です。
- blenderはスクリプトだとラジアン角度なので、frameをradians() で囲むことによって、frameを角度として扱うようにしています。
- 最初の#はDriverを書いているということをBlenderに示すというショートカットです。欄が紫のときは必要ありません。

#sin(radians(frame))
  • 数学のsinです。locationに入れるとsin波みたいになります。ゆらゆらします
#round(sin(radians(frame))*5)
  • さらに値を四捨五入してみました(元の値を5倍にしています。0-1の範囲だと分かりにくいので)  カクカクな感じのsinな動きになりました mathはインポートされているようなので使ってみると良いでしょう

ヘンなことをしてみる

自己責任で…

#len(bpy.data.objects)

オブジェクトデータの数を値に入力します。Driver Editorには遅いだのうまく動かないなどと怒られますが、どうやら動くようです。

スザンヌを作成し、フレームENDを507にします。

Emptyのlocation のXに

bpy.data.meshes[0].vertices[int(frame)].co[0]

location のYに

bpy.data.meshes[0].vertices[int(frame)].co[1]

locationの Zに

bpy.data.meshes[0].vertices[int(frame)].co[2]

でフレーム数に対応した頂点のローカル座標にEmptyが移動します。CNCとか3Dプリンタっぽい動きに見えなくもない・・・

one more thing...
ワンライナーがキツイという方はテキストエディタ->templates->python->Driver Functions
で出来たテンプレを読んでみると良いかもしれません(Driverに機能追加できる

2
2
1

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
2
2