前提・実現したいこと
blender2.8にてpythonスクリプトを用いたオーディオビジュアライザーを作成しています。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "/Users/user/blender_folder/audio.blend/Text", line 27, in <module> File "/Applications/Blender.app/Contents/Resources/2.80/scripts/modules/bpy/ops.py", line 201, in __call__ ret = op_call(self.idname_py(), None, kw) RuntimeError: Operator bpy.ops.graph.sound_bake.poll() failed, context is incorrect
該当のソースコード
python
1import bpy 2import math 3 4bpy.ops.object.select_all(action='SELECT') 5bpy.ops.object.delete(True) 6 7count = 3 8lo = 1000 9hi = 15000 10step = (hi - lo) / count 11bpy.context.scene.render.engine = 'CYCLES' 12 13for i in range(-count,count): 14 for j in range(-count,count): 15 #object fixed 16 bpy.ops.mesh.primitive_cylinder_add(vertices = 6,location=( math.sqrt(3)*j+(i%2)*math.sqrt(3)/2, 1.5*i, 1)) 17 bpy.context.scene.cursor.location = bpy.context.active_object.location 18 bpy.context.scene.cursor.location.z -= 1 19 bpy.ops.object.origin_set(type='ORIGIN_CURSOR') 20 bpy.context.active_object.scale.z = 10 21 bpy.ops.object.transform_apply(location=False, rotation=False, scale=True) 22 #scale changes lock xy 23 bpy.ops.anim.keyframe_insert_menu(type='Scaling') 24 bpy.context.active_object.animation_data.action.fcurves[0].lock = True 25 bpy.context.active_object.animation_data.action.fcurves[1].lock = True 26 #import sound & graph baking 27 bpy.ops.graph.sound_bake(filepath='/Users/user/blender_folder/sample.mp3', low = (step*round(math.sqrt(i**2+j**2))), high = (step*(round(math.sqrt(i**2+j**2))+1))) 28 bpy.context.active_object.animation_data.action.fcurves[2].lock = True 29 30#lamp add 31bpy.ops.object.light_add(location=(0.0,0.0,2.0)) 32 33#camera add 34bpy.ops.object.camera_add(location=(5.0,15100.0,0.0)) 35bpy.data.objects['Camera'].rotation_euler = (math.pi*1/2, 0, math.pi*1/2)
補足情報(FW/ツールのバージョンなど)
blender2.8
参考サイト:https://blog.engineer.adways.net/entry/advent_calendar_2017/04
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11237251461
ご本人ならば、以下ご対応ください。
https://teratail.com/help#posted-otherservice
質問内容を若干変更したため削除しました。
ご教授いただきありがとうございました。
参考サイト先ではblenderのテキストエディターでの実行が前提で
bpy.context.area.type = 'GRAPH_EDITOR'があり、一時的にGRAPH_EDITORにして実行しているように見えます。その後でbpy.context.area.type = 'TEXT_EDITOR'で戻している。
blenderのテキストエディターで動かす時に、そのようなコードをなんどか見かけています。
今回のエラーは、TEXT_EDITORでは、そのopsは実行できない為だと思います。
また、addon等ではGRAPH_EDITORの状態からよばれたりするからそのようなコードがないと思われます。
※pythonのコードを書いたり読んだりしますが、pythonを知りません
あなたの回答
tips
プレビュー