OneonetのPyBE

Python,Blender,Excelのいろいろ

Blender x Python で作るシンプルなドミノ倒し

物理演算のスゴクわかりやすいサンプルに仕立ててみました。 キーワードでググるとたいていのものは見つけらますが、見慣れない1命令があるとワクワクしますね。resizeで簡単に形を変えられるとは知りませんでした。

スタスタスタと気持ちよく倒れる100コのドミノを再生してみてください。planeのサイズとforカウンタの数を変えればいくらでも大きくできますよ。

f:id:oneonet:20220316160516p:plain

#blender 3.0.0で動作確認
import bpy

for item in bpy.data.meshes:
    bpy.data.meshes.remove(item)

bpy.ops.mesh.primitive_plane_add(size=400,  align='WORLD', location=(0, 0, -5), scale=(1, 1, 1))
bpy.context.object.rotation_euler[2] = 0.78

bpy.ops.rigidbody.object_add()
bpy.context.object.rigid_body.type = 'PASSIVE'

for i in range (0,100):
    bpy.ops.mesh.primitive_cube_add(location=(-200+i*4, 0, 0), size=1.0 )
    bpy.ops.rigidbody.object_add()
    bpy.ops.transform.resize(value=(1, 4, 10), constraint_axis=(False, True, True))

    if i==0:
        bpy.context.object.rotation_euler[1] = 0.3

こちらのサイトを参考にさせて頂きました。
slicker.me