![見出し画像](https://assets.st-note.com/production/uploads/images/55692141/rectangle_large_type_2_600cc67477042cdd979e3bb8f5cc6405.png?width=800)
【Blender Python】平面を配置する
今回は平面(Plane)を配置するコードを紹介します。
正直この程度の内容であれば記事にするまでもないのですが、大きさを変える部分でちょっと詰まったので書いておきます。
Blenderのバージョンは2.93.0 LTSです。
1. 基本的なコード
import numpy as np
import bpy
# 既存のメッシュオブジェクトを削除
for msh in bpy.data.meshes:
bpy.data.meshes.remove(msh)
# 平面を追加
bpy.ops.mesh.primitive_plane_add(size=2, location=(0, 0, 0),
rotation=(np.radians(30), np.radians(0), np.radians(0)))
2. 実行結果
x軸で傾いた平面が配置できましたね。
3. 平面の大きさを変える
正方形のまま平面の大きさを変えたい場合には、size オプションの値を変更します。
しかし、縦横の比率を変えたい場合にはこのやり方では対応できません。
公式ドキュメントで bpy.ops.mesh.primitive_plane_add の項目を確認すると、
scale オプションで縮尺を変えられると書かれています。
3. scale オプションを指定してみる
import numpy as np
import bpy
# 既存のメッシュオブジェクトを削除
for msh in bpy.data.meshes:
bpy.data.meshes.remove(msh)
# 平面を追加
bpy.ops.mesh.primitive_plane_add(location=(0, 0, 0),
rotation=(np.radians(30), np.radians(0), np.radians(0)),
scale=(3.0, 2.0, 1.0))
my_plane = bpy.context.object
print(my_plane.scale)
実行ログ
実行ログを見ると scale が指定されているのが分かりますが、Layout 画面には先程と同じ大きさの平面が配置されます。
コードの最後で平面の大きさを出力しているのでそちらを確認すると、
System Console ウィンドウ
scale の値は全て 1 のままですね。
どうもバグっぽい気がします。
Blender 2.93.0 以外のバージョンでも同じ状況になるのかは未検証です。
4. 縦横の比率を変えたい場合
回避策として、平面オブジェクトを配置した後に scale の値を変更するやり方があります。
import numpy as np
import bpy
# 既存のメッシュオブジェクトを削除
for msh in bpy.data.meshes:
bpy.data.meshes.remove(msh)
# 平面を追加
bpy.ops.mesh.primitive_plane_add(location=(0, 0, 0),
rotation=(np.radians(30), np.radians(0), np.radians(0)))
my_plane = bpy.context.object
# 平面の大きさを変更
my_plane.scale = (3, 2, 1)
print(my_plane.scale)
Layout 画面
System Console ウィンドウ
ちゃんと指定した大きさの平面になりましたね。
まとめ
平面の配置のやり方を紹介しました。
別のバージョンだと挙動が変わる可能性もありますが、大きさの指定の仕方で困っている人の参考になれば嬉しいです。
この記事が気に入ったらサポートをしてみませんか?