[Blender×Python]   Blender Python tips(11/100)

この記事はCGBoostさんの[100+ Tips to Boost Modeling in Blender](https://www.youtube.com/watch?v=JMBMHSca_j0)中の操作をPythonに置き換えてみたものです。

#目次
0.BlenderPython tips
1.モードの切り替え
2.シェーダーモードの切り替え
3.透過モードの切り替え
4.MATCAPSの設定
5.CAVITYの調整
6.オブジェクトの色をランダムにする
7.オブジェクトにフォーカスする
8.3D viewportの操作性をあげる
9.選択したオブジェクトのみを表示できるようにする
10.選択した面に視点をそろえる

#0.BlenderPython tips

###●実行したコードはすべてInfoに表示される
![スクリーンショット 2020-11-09 19.06.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/1294135a-4c29-abc9-3120-01bcb1305341.png)

Infoの場所:Scripting→Info(画面左下)

###●Python tool tipsを有効にすると操作コードがパネル部分に表示される

有効にする方法:
Edit→preferences→TooltipsとPython Tooltipsにチェックをいれる

###●Blender内のパネル(ボタン)にカーソルを乗せた状態で[ctrl+C] を押すとPythonコードがコピーされる

![ezgif.com-gif-maker (45).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/3b2e5716-58ea-d3b8-cc98-90e08f849ba9.gif)



---

#1.モードの切り替え

オブジェクトモードや編集モードのこと↓
![ezgif.com-gif-maker (33).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/2810a34a-cdc5-172a-7676-9bf89ab7772d.gif)

```.py
#Object Modeにする
bpy.ops.object.mode_set(mode='OBJECT')
#Edit Modeにする
bpy.ops.object.mode_set(mode='EDIT')
#Sculpt Modeにする
bpy.ops.object.mode_set(mode='SCULPT')
#Vertex Paintにする
bpy.ops.object.mode_set(mode='VERTEX_PAINT')
#Weight Modeにする
bpy.ops.object.mode_set(mode='WEIGHT_PAINT')
#Texture Modeにする
bpy.ops.object.mode_set(mode='TEXTURE_PAINT')
```

---

#2.シェーダーモードの切り替え

ワイヤーフレームやレンダーモードのこと↓

![ezgif.com-gif-maker (34).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/45c711a3-5987-4321-37a1-2182f0904ba0.gif)

```.py
#WIREFRAMEモードにする
bpy.context.space_data.shading.type = 'WIREFRAME'
#SOLIDモードにする
bpy.context.space_data.shading.type = 'SOLID'
#MATERIALモードにする
bpy.context.space_data.shading.type = 'MATERIAL'
#RENDEREDモードにする
bpy.context.space_data.shading.type = 'RENDERED'
```

---

#3.透過モードの切り替え

```.py
#透過モードにする
bpy.ops.view3d.toggle_xray()
```


---

#4.MATCAPSの設定

表面のへこみなどがみやすくなる↓

![ezgif.com-gif-maker (38).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/a1075e6b-103a-52e8-0a27-474c1dd95cc8.gif)

```.py
bpy.context.space_data.shading.type = 'SOLID'
bpy.context.space_data.shading.light = 'MATCAP'
#好みのものを選択する
bpy.context.space_data.shading.studio_light = 'metal_carpaint.exr'
```


---

#5.CAVITYの調整

構造が見やすくなる↓
![ezgif.com-gif-maker (39).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/5f5a5cf9-dfb0-70e0-97c8-0c8447cd7bd5.gif)
 
```.py
bpy.context.space_data.shading.show_cavity = True
bpy.context.space_data.shading.cavity_type = 'WORLD'
#ridgeは隆起部
bpy.context.space_data.shading.cavity_ridge_factor = 1
#valleyは陥没部
bpy.context.space_data.shading.cavity_valley_factor = 1

```


---

#6.オブジェクトの色をランダムにする

![ezgif.com-gif-maker (41).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/544aa3fe-24ef-5aaf-c70e-37c4056ee5b2.gif)

```.py
bpy.context.space_data.shading.type = 'SOLID'
bpy.context.space_data.shading.color_type = 'RANDOM'
```


---

#7.オブジェクトにフォーカスする
![ezgif.com-gif-maker (42).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/67483bd1-540c-804e-92ef-e4d57e97ee5b.gif)


```.py
bpy.ops.view3d.view_selected(use_all_regions = False)
```

#8.3D viewportの操作性をあげる

###●マウスがある場所にズームする

```.py
PreferencesInput.use_zoom_to_mouse
```

###●物体の近くまでズームできるようにする

```.py
PreferencesInput.use_mouse_depth_navigate
```


###●選択したオブジェクトを中心にして視野を回転できるようにする

●編集モードでも使用可能

```.py
PreferencesInput.use_rotate_around_active
```


#9.選択したオブジェクトのみを表示できるようにする
![ezgif.com-gif-maker (43).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/9e61cebf-f8fd-703c-907d-43906528584b.gif)

```.py
bpy.ops.view3d.localview()
```

#10.選択した面に視点をそろえる

![ezgif.com-gif-maker (44).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/5e57f6de-8692-f627-b186-a74a94033b2b.gif)

```.py
#以下のtypeのぶぶんには、TOP,BOTTOM,FRONT,BACK,RIGHT,LEFTのいずれかが入ります。
bpy.ops.view3d.view_axis(type = 'TOP',align_active = True)
```