2024.7.19 Blenderのチュートリアルで、操作ごとに表示を1秒止めてみました

記事
写真・動画
Blenderには多くのチュートリアル動画がありますが、時々その操作が速くて理解できないことがあります。そこで、簡単なスクリプトを追加して、操作ごとに1秒のスリープを入れてみました。

まず、Blenderには操作履歴があり、それはInfoエディタで確認できます。また、それをコピーして、Textエディタで新規テキストを作成し、ペーストして、先頭行にimport bpyを挿入し、再生ボタン(▷)を押せば実行されます。

そのソースは以下の通りです:


import bpy
import time

def eval_exp(expression):
    bpy.context.view_layer.update()
    bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations=1)
    time.sleep(1)
    return eval(expression)
my_list = [
    "bpy.ops.mesh.primitive_cube_add(size=2, enter_editmode=False, align='WORLD', location=(0, 0, 0), scale=(1, 1, 1))", 
    "bpy.ops.transform.translate(value=(0, 0, 2.88141), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', constraint_axis=(False, False, True), mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False, alt_navigation=True)", 
    "bpy.ops.transform.translate(value=(0, 0, 2.28036), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', constraint_axis=(False, False, True), mirror=False, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False, snap=False, snap_elements={'INCREMENT'}, use_snap_project=False, snap_target='CLOSEST', use_snap_self=True, use_snap_edit=True, use_snap_nonedit=True, use_snap_selectable=False, alt_navigation=True)"
]

eval_exp(my_list[0])
eval_exp(my_list[1])
eval_exp(my_list[2])


操作はキューブを作成して、2回上に移動させるという簡単なものです。


youtu.be/x17e9Py-5d8

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら