LoginSignup
8
10

More than 5 years have passed since last update.

Python for Blender クックブックのレシピ一覧

Last updated at Posted at 2018-10-30

レシピ一覧 (Python for Blender クックブック)

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

簡潔な一覧

トピックごと、難易度順に並んでいます。

3D操作

マテリアル操作

詳細

古い順に並んでいます。

一辺の大きさが1の立方体を追加する

Pythonの難易度: ★☆☆☆☆
投稿日: 2018/10/29

動機

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

細かい仕様

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

デフォルトキューブをz方向に1動かす

Pythonの難易度: ★☆☆☆☆

細かい仕様

  • 開いたばかりのファイルを使ってください
  • オブジェクトをまるごとz方向に移動してください(原点の位置を移動する)

オブジェクトの名前にメッシュ名を合わせる

Pythonの難易度: ★★☆☆☆
投稿日: 2018/10/29

動機

オブジェクトの名前を変更しても、メッシュの名前までは変わりません。
いちいち変えるのも面倒くさいので、Pythonにやってもらいましょう。

細かい仕様

  • 様々な種類のオブジェクト(メッシュ、ランプ、カメラなど)があるファイルを使ってください。
  • 一つのメッシュデータが複数のメッシュオブジェクトに共有されている状態は考慮しなくてもいいです。
  • メッシュオブジェクトの中のメッシュデータの名前を、メッシュオブジェクトと同じにしてください。

Diffuse色とSpecularの強さからマテリアル名を決める

Pythonの難易度: ★★☆☆☆
投稿日時: 2018/10/31

動機

気がついたらMaterial.004みたいな名前のマテリアルが増えていて困りますよね?
マテリアルの特徴を元にマテリアル名を改名しましょう。

細かい仕様

  • Diffuse色は下表の通りです。0~1の間の値は四捨五入してください
色名 大体のRGB値(0〜1)
black (0,0,0)
red (1,0,0)
green (0,1,0)
blue (0,0,1)
aqua (0,1,1)
purple (1,0,1)
yellow (1,1,0)
white (1,1,1)
  • Specularの強さを四捨五入した結果が0ならrough、1ならsmoothです。
  • 「M_black_smooth」のように「M_Diffuse色_Specularの強さ」とマテリアルを改名してください。
  • マテリアル名の重複は気にしないでください。

「数字->新名」の対応を元に、「Bone_L.数字」を「新名_L」に改名する(正規表現)

Pythonの難易度: ★★★★★
投稿日: 2018/10/30

動機

左右対称のリグを作るとき、ボーンの名前に左右を表す_L_Rが付いていると便利です。
しかし、X-Axis Mirrorを有効にボーン編集をしても、Bone_[LかR].[三桁数字]というボーンが作られてしまいます。(「001」のように0埋めがされた数字も三桁数字と表現しています)
これをBone.[三桁数字]_[LかR]に名付け直せると便利ですね。
また、.001が付いているボーンはSholderに、.002ならArmのように、数字に基づいて改名してみましょう。

細かい仕様

  • 名称変更を施したいアーマチュアがオブジェクトモードでアクティブだとします。
  • アーマチュアのボーンの名称は「Bone_L.[三桁数字]Bone_R.[三桁数字]/その他」のいずれかが含まれています。この内、.[三桁数字]は省略されている時もありますが.000と同じとみなします。
  • ["Sholder", "Arm", ...]のような、新しいボーンの名称がリストの形式で定義されています。(以下、name
  • Bone_L.i[nameのi番目の要素]_Lに、Bone_R.i[nameのi番目の要素]_Rに改名してください。
  • _L_Rの一方しかない場合も、改名してください。
  • その他のボーンは名前を変えないでください。

Diffuse色とSpecularの強さからマテリアル名を決める

Pythonの難易度: ★★☆☆☆
投稿日時: 2018/10/31

動機

気がついたらMaterial.004みたいな名前のマテリアルが増えていて困りますよね?
マテリアルの特徴を元にマテリアル名を改名しましょう。

細かい仕様

  • Diffuse色は下表の通りです。0~1の間の値は四捨五入してください
色名 大体のRGB値(0~1)
black (0,0,0)
red (1,0,0)
green (0,1,0)
blue (0,0,1)
aqua (0,1,1)
purple (1,0,1)
yellow (1,1,0)
white (1,1,1)
  • Specularの強さを四捨五入した結果が0ならrough、1ならsmoothです。
  • 「M_black_smooth」のように「M_Diffuse色_Specularの強さ」とマテリアルを改名してください。
  • マテリアル名の重複は気にしないでください。

メッシュの名前を「MESH_オブジェクト名たち」にする

Pythonの難易度: ★★★☆☆
投稿日: 2018/10/31

動機

オブジェクトの名前を変更しても、メッシュの名前までは変わりません。
いちいち変えるのも面倒くさいので、Pythonにやってもらいましょう。

細かい仕様

  • メッシュ名を「MESH_オブジェクト名」にしてください。
  • 複数のオブジェクトに共有されている場合、オブジェクト名の間を_で繋いでください
  • オブジェクトに使われていないメッシュは「MESH_NOUSER」と名付けてください。

一つのマテリアルが同じオブジェクトで重複しているのをまとめる

Pythonの難易度: ★★★★☆
投稿日: 2018/11/2

動機

「こことここは別のマテリアルにしようかなぁ」と思っていたけど、完成してみたらマテリアルが重複していることはありませんか?
編集モードでいちいち作業をするよりも、pythonにやらせましょう。

細かい仕様

  • 対象のオブジェクトはアクティブと仮定できます。
  • マテリアル一覧(マテリアルスロット)の中で重複しているものを除いてください。
  • 各面が参照しているマテリアルは変えないでください。
  • マテリアルのリンクは全てDataになっています。
  • マテリアルが設定されていないものも、まとめてください。

シーン内の全てのメッシュオブジェクトの原点を変更する

Pythonの難易度: ★★★★☆
投稿日: 2018/11/5

動機

原点、ずれますよね?
Ctrl-Shift-Alt-C押しにくいですよね。
まとめて変更しましょう。

細かい仕様

  • オブジェクトの原点(Origin)をGeometryの中心に移動してください。
  • 原点の変更はメッシュオブジェクトだけにしてください。
  • 全てのオブジェクトを選択しているとは限りません。
  • オブジェクトによっては隠れていたり、別レイヤーにあったりするかもしれません。
  • 現在の選択状態、アクティブ状態などは変更しないでください。

マテリアルをアルファベット順に並べる

Pythonの難易度: ★★★★☆
投稿日: 2018/11/5

動機

様々にマテリアルを試していると、整理したくなりませんか?
なのに、Blenderのマテリアル(正確にはマテリアルスロット)の並べ替えって上下移動キーしかなくて不便じゃないですか?
(頂点グループとかはあるのに)

Pythonを使ってパッとやっちゃいましょうか!

細かい仕様

  • 対象のオブジェクトはアクティブと仮定できます。
  • 対象のオブジェクトには複数のマテリアルがセットされています。
  • マテリアル名の比較はpythonの文字列比較に準じます。
  • 重複しているマテリアル名は元の順番を維持してください。
  • 空いているマテリアルスロットは最後にまとめてください。
8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10