元記事:
blender.org - Python Scripts and API
Python スクリプトと API
大量のスクリプトの追加と更新がされました。また、API も前回のリリースから改良されています。
新スクリプト(一部リスト)
以下は追加されたスクリプトの抜粋です。
Autodesk FBX (Export メニュー)Mesh Object とその Texface Texture、マルチ UV レイヤ、VertexColor レイヤ、Material、Lamp、Camera のエクスポート。(アニメーション関連の機能はまだ未対応です)。
Cal3D (Export メニュー)このスクリプトはメンテナンスされていたので復活しました。
- Material サポート
- Mesh ごとのマルチ Material
- Mesh ごとのマルチ UV 座標
- 新しい XML cal3d ファイルのみ出力(旧バイナリファイル形式はもう出力できません)
- Bone の IK などはオプションでベイクしてエクスポートされます。
Torus (Add → Mesh メニュー)Radius と Segment オプションを持つ Torus を追加。
Solid Wireframe (Mesh → Scripts メニュー)このスクリプトは Mesh の Edge を、モデルのコピーのワイヤフレームを作成するのに使用しています。
Unfolder (Mesh → Scripts)Matthew Chadwick氏による素晴らしい Mesh 展開スクリプト。
詳細は
celeriac.net/unfolder/をご覧下さい。
Drop Onto Ground (Object → Scripts メニュー)Object を地形の上に落とします。落とす Object には Group またはアクティブ Object が選べます。Z 軸もしくはビューの軸のどちらかを使用します。
Find By Data Use (Object → Scripts メニュー)そのデータにリンクしている Object を見つけます。
Quake 3 (.map) (Export メニュー)Quake マップエクスポータ。Cube を 'Brushes' として、'Brush'毎の複雑な Mesh の Face と、NURBS Surface を Quake の 'Patch' として、そして Lamp を対応してます。(訳注:あまり自信ありません)
Seams From Islands (UVs → Scripts メニュー)Seam を現存する UV の島の境界線から作成します。これは既にあるモデルの UV を修正するときに便利です。
Lightmap UVPack (UVs → Scripts メニュー メニュー)UV 座標をテクスチャスペース内に、空間を無駄に消費することなく詰め込みます。また、新しい Image とUV レイヤを、選択されたモデルごとに作成するオプションもあります。ライトマップをベイクするときに便利です。
Selection to DupliGroup (Object → Scripts メニュー)選択された一組の Object 群から DupliGroup を作成します。その後、その Group の Object を移動・回転・リサイズすると、グループ全体がそれに従い、移動・回転・リサイズされます。
更新されたスクリプト
このリリースに伴い、多くのスクリプトが更新・改良されました。
Unwrap (smart Projections) (UVCalculation メニュー([U]キー))- オプション 'Init from View' を追加。ビューの軸を初期投影ベクトルとして使用できます。
- 箱詰め機能が C で書き直されました。
xfig export (.fig) (Export メニュー)- ポップアップインタフェイスをウィンドウの代わりに使用するように。
- アクティブな Mesh だけでなく、すべての Mesh を使用するように。
- Line の出力に Face ではなく Edge を使用するように。
- Object の Transform や、Particle や Dupli される Object のような派生データを使用するように。
Unweld (Mesh → Scripts メニュー)- Multires Mesh では実行付加に。
- マルチ UV が削除されてしまうのを警告するように。
- いくつかのエラーを修正。
Motion Capture (.bvh) (Import メニュー)Bone のオフセットで、Parent の Bone との相対位置が間違って計算されていました。
3D Studio (.3ds) (Export メニュー)他のアプリケーションでエクスポートした3ds ファイルが開けない問題に関連するエラーを修正。3ds ファイルには名前とファイル名が12バイトだからです。あと、最適化しました。
Lightwave (.lwo) (Import メニュー)- 互換性が向上しました。
- インポート時にモデルの方向を Blender に合わせるように変更。
SVG (Import → Paths メニュー)- 単位のマネジメントを追加。
- 回転行列の修正。
- 歪み行列の修正。
- スケール Transform マネジメント時のエラーの修正。
- V と H コマンドによるハンドルマネジメント時の(悪い)修正。
- 新しい Curve Object はカレントレイヤ(訳注:スクリプト内部での?)に追加されるように。
- SVG ファイルに複数のカーブが含まれていた時、それらを別々の Object にしてインポートするように。
- 別々の Curve としてパスがインポートされた時のためのパス名のマネジメント。
- Curve を別々にするか Join するかを選択するメニューを追加。
- Material で管理する SVG の color マネジメント
- Separate Curve オプションで、beveldepth を使用し、更に名前をその Curve データに与えた時にのみ起こるスケールの問題を修正。
- SVG の Color 名のリスト(147色)を使用するよう、Color の処理方法を改良。
- calc_arc 関数でのゼロ除算エラーの修正。
AC3D (Export メニュー)AC3D エクスポータを更新、他とは繋がっていない Edge (ライン)の色に、その Mesh に見つかった最初の Material を使用するように。
AC3D (Import メニュー)- AC3D インポータを、アレなデータを更に許容するよう更新。
- 3DView で、Alpha < 1.0の Material を使用したモデルの透明度を切り替えるオプションを追加。
- AC3Dの subdiv タグに対応するオプションを追加、このタグを持つインポートされたモデルにSubSurf モディファイアを追加し、意図した表示になるようにします。
Cleanup Meshes (Mesh → Scripts メニュー)完全に白な VertexColor のレイヤをすべて削除するオプションを追加。これは古い Blend ファイルを読み込んだ時、UV マッピングされたすべての Mesh の持つ VertexColor がたとえ真っ白(以前は Texface が VertexColor のレイヤより先に格納されていたため)であっても、簡単に削除できます。
Object と Mesh スクリプトのテンプレート(TextWindow の File メニューの "Script Templates")
移動Mesh → Bridge/Loft/Skin を、[F]キーメニューに移動し、すばやくアクセスできるように。現在は二つの Edge Loop を選択し、[F]を押して "Skin Face/Edge Loop" から実行できます。
API の変更
様々な API に関連する変更。
- OOPS データから Python へのアクセスが削除されました。
- Python スロットが Add → Mesh や、Add → Armature、[F]キーFace メニュー、TextWindow の File メニューに追加されたサブメニュー、'Script Templates' に追加されました。カスタムのスクリプトをここに追加できます。
- スクリプトでネストしたフォルダが動作するように。
- Blender のバージョンが、サブバージョン管理を行うようになり、浮動小数点数に。
- 使用可能な getsetter の増加と共通アクセスメソッドの実装により、モジュール間の一貫性が向上。
- すべての libdata がハッシュ化可能に。
- すべての libdata が、以下のアトリビュートを持つように:'name'、'users'、'fakeUser'、'properties'、'tag'、'lib'(ここでの lib はそれらのモデルが格納されたライブラリのファイル名、もしくはローカルなモデルなら None が入ります)。
モジュール毎の変更
[wiki]
''Object''
-ob.action が設定可能に(以前は読み込み専用でした)。
-ob.insertIpoKey(keytype)へ渡す定数の辞書、"Blender.Object.IpoKeyTypes" を追加。以前はこれらの定数はちゃんとドキュメント化されていませんでした。
''Mesh''
-新しいデータ(faces、edges、verts)がすべて選択されるように。
-mesh.transform()の引数のキーワード、"selected_only" を追加。
''Camera''
-Camera.c - Camera に変数 .angle を追加。.lens と同じですが、('D' ボタンのように)Camera の角度を度数で調整できます。
''Mathutils''
-PointInTriangle2D を追加。
''Registry''
-SetKey() に一度に保持し続けていられる数が60までという制限がありました。常に60までしか使用できず、それ以上は保存されていませんでした。
''Library''
-リンクの後の Append で、もう現存するすべてのデータブロックをローカルにしてしまうことがなくなりました。
''Draw''
-Draw.Label を使用し、ユーザの Theme フォントで描画できるように。
-新しいポップアップユーザインタフェイスを追加する方法、 UIBlock。自分でボタンを追加できます。
-ボタンが自身のコールバック関数を持つことができるように。
''PyDrivers''
"self" を Pydriver の辞書に追加、Object を簡単に自身の式内で参照できるようになりました。例えば、ある Object の LocY チャネルに、"self.LocX" と設定することにより、この Object の Y座標の位置をその X軸の位置と強制的に同じにすることができます。(訳注:原文はミスと思われます)
[/wiki]
元記事:
blender.org - Python Scripts and API