I have made a script to generate a game asset in one click ( http://blenderartists.org/forum/showthread.php?383624-Dark-Blender-(Official-Thread)-optimized-for-sculpting-and-game-asset-creation ). My script save the textures by doing a render and import them with the .0001 number meaning frame 1. If the frame is changed my script is unable to find the texture.0001 so i want to set at the beginning of my Python script the frame to 1.
3 Answers
You can set the current frame by calling:
bpy.context.scene.frame_current = 1
bpy.context.scene.frame_set(1)
This will set the scene frame and updates all objects immediately, see the docs: https://docs.blender.org/api/current/bpy.types.Scene.html#bpy.types.Scene.frame_set
Use the method frame_set(...) instead. It forces an immediate update of all objects in the scene, including animations (transformation matrices etc. will be calculated)
- 12,613
- 4
- 50
- 93
(For Blender 2.83+) In order to advance to the next frame, get the frame you're on currently and add one to it. Set that using frame_set:
currentFrame = bpy.data.scenes['Scene'].frame_current
bpy.data.scenes['Scene'].frame_set(currentFrame + 1)
Otherwise replace currentFrame + 1 with the frame number you want:
bpy.data.scenes['Scene'].frame_set(10)
This assumes you're in the default scene, 'Scene'. In 2.83...
bpy.context.scene.frame_set(10)
...still works for whatever scene you happen to be in.
- 31
- 2
-
1Thanks for the answer. Could you explain what this does and add more details to your question. Don't just post some random code snippet, explain what it does. – Duarte Farrajota Ramos Jan 03 '21 at 04:12
-
1
A simple solution that's easy to understand
C.scene.frame_set(C.scene.frame_current+1)
- 30,723
- 2
- 44
- 101
- 23
- 5
frame_currentshould only really be used as a read-only property. See: http://blender.stackexchange.com/a/6510/241 – Ray Mairlot Jun 10 '16 at 23:35DO i need write something else in my script?
– Ivan Kartofanov Dec 04 '17 at 14:03import bpyas the first line of the script. – Leander Feb 21 '18 at 20:10