blender/blender python

타이머

monstro 2025. 8. 19. 23:39
728x90
반응형

- 개요

bpy.app.timers.register(function, first_interval=0, persistent=False)

위의 함수를 사용하면 first_interval 인자로 넣은 값만큼의 시간 후에 function 인자로 넣은 함수를 호출한다

이때 function 인자로 받는 함수는 인자가 없는 함수여야 한다

function 인자로 받는 함수에서 실수를 반환하게끔 수정하여 반환된 실수를 주기로 함수를 호출할 수 있다

함수의 호출을 중단하고 싶다면 None을 반환하면 된다

 

1) 일반적인 regsiter 함수의 사용

import bpy

def test_tick():
    bpy.ops.mesh.primitive_cube_add()

bpy.app.timers.register(test_tick, first_interval = 5)

 

위와 같이 스크립트를 구성하였다

최종적으로 5초 후에 큐브 메쉬가 생성되기를 기대한다

 

 

위와 같이 5초 후에 큐브 메쉬가 생성된 것을 확인할 수 있다

 

2) 타이머로서의 register 함수 사용

import bpy

limit = 0
x = 0

def test_tick2():
    global limit
    global x
    
    bpy.ops.mesh.primitive_cube_add(location = (x, 0, 0))
    limit += 1
    x += 2
    
    if limit == 10:
        return None
    return 0.5

bpy.app.timers.register(test_tick2)

 

test_tick2 함수를 위와 같이 구성하였다

함수에서 실수값None을 반환하도록 하여 타이머처럼 동작하도록 설계하였다

최종적으로 0.5초 주기로 test_tick2 함수를 호출하여 큐브를 생성하고 limit의 값이 10이 되면 호출하지 않는다

 

 

위와 같이 0.5초 주기로 큐브를 생성하는 것을 확인할 수 있다

728x90
반응형

'blender > blender python' 카테고리의 다른 글

Redo 패널  (0) 2025.08.20
랜덤한 글자 생성  (0) 2025.08.19
Info 메세지 출력  (0) 2025.08.19
리스트  (0) 2025.08.19
안개 효과 생성  (0) 2025.08.13