Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
@KTakahiro1729

3D空間に辺の長さが1の立方体を追加する (Python for Blender クックブック)

More than 1 year has passed since last update.

一辺の大きさが1の立方体を追加する (Python for Blender クックブック)

Pythonを使ってBlenderでできる事をまとめています。解説もあります。

はじめに
レシピ一覧

Pythonの難易度: ★☆☆☆☆

動機

普通の立方体追加で追加される立方体は一辺の長さが2です。
スクリプトを使うことで、最初から長さ1の立方体を追加してみましょう。

細かい仕様

  • オブジェクトモードのとき、一辺の長さが1の立方体を追加してください。
  • スケールは1にしてください。
  • 3Dカーソルの位置に立方体を追加してください。

サンプルコード

import bpy
bpy.ops.mesh.primitive_cube_add(radius=0.5)

上記サンプルコードを、Blender内蔵のテキストエディタに貼り付けた後、Alt-Pを実行してください。

解説

import bpy

PythonからBlenderを使うにはbpyというライブラリを使います。
例えば、bpy.opsにはBlenderで編集するための関数が入っています。

内蔵Python Consoleで実行するときは既にimportされていますが、テキストエディタや外部ファイルの時はimport文が必要です。

bpy.ops.mesh.primitive_cube_add(radius=0.5)

まず、Shift-Aから、立方体を追加してみましょう。(被るので適宜消してください)
次に、infoバーを引き下げると現れるコマンド履歴を見てみてください。

bpy.ops.mesh.primitive_cube_add(radius=1, view_align=False, enter_editmode=False, location=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))

というコマンドがあると思いますので、コピーしてBlender内蔵のPython Consoleに貼り付けてください。

すると、先ほどと同じ位置に同じ大きさの立方体が追加されました。

今度は、

bpy.ops.mesh.primitive_cube_add(

のように、閉じカッコなしで貼り付けたあと、AutoCompleteを押してください。すると、

>>> bpy.ops.mesh.primitive_cube_add(
primitive_cube_add()
bpy.ops.mesh.primitive_cube_add(radius=1, calc_uvs=False, view_align=False,
enter_editmode=False, location=(0, 0, 0), rotation=(0, 0, 0),
layers=(False, False, False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False, False
))

のように、様々な引数とそのデフォルト値が表示されます。

引数 内容
radius 立方体の大きさ float
calc_uvs UVを自動生成するか bool
view_align 立方体の配置を視点と合わせるか bool
enter_editmode 追加後、編集モードに切り替えるか bool
location 座標 floatのtuple(長さ3)
rotation 回転 floatのtuple(長さ3)
layers どのレイヤーに追加するか(Trueのレイヤーにだけ追加) boolのtuple(長さ20)

この中で大きさに関係するのは、radiusですが、デフォルト値の1では2倍も大きすぎます。
これを半分にすると、一辺の大きさが1の立方体が追加できます。

bpy.ops.mesh.primitive_cube_add(radius=0.5)
2
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
KTakahiro1729
素人ゆえ自由

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
2
Help us understand the problem. What is going on with this article?