Blender2.8での頂点の選択について

blenderで簡単なスクリプトを書いていて頂点の選択についてつまずいたのでまとめます。 2020/1/15 blender2.81

編集モードから頂点の編集ができない

obj = bpy.context.active_object
obj.data.vertices[p].select = True

とすることで、頂点の選択を切り替えられるのですが、これが編集モードだとうまく動いてくれません。 なので、一度オブジェクトモードに切り替えます。

import bpy

obj = bpy.context.active_object
old_mode = obj.mode
bpy.ops.object.mode_set(mode='OBJECT')

list = [0,3]
for p in list :
    obj.data.vertices[p].select = True
        
bpy.ops.object.mode_set(mode=old_mode)

参考:

https://blender.stackovernet.com/ja/q/13906

頂点の選択をリセット

頂点の選択をリセット(どの頂点も選択していない状態にする)場合は、ショートカット[AA]からbpy.ops.object.select_all()を呼び出します。これをスクリプトから実行する場合、編集モードでないとうまくいきません。

bpy.ops.object.mode_set(mode="EDIT") #Activating Editmode
bpy.ops.mesh.select_all(action='DESELECT')

謎です。