Blender2.8Pythonスクリプト非プログラマのための超大国

3dレンダリング、ゲーム、アニメーションを作成することは、常に信じられないほどエキサイ まあ、それは挑戦的または退屈な取得する場合を除いて。 あなたはしばらくの間、ブレンダーや他の3Dアプリを使用してきた場合、あなた自身が何度も何度も同じタスクを介してsloggingといくつかの点で考えて、”私

スクリプトを介して、それはできます! それだけでなく、Pythonはインターフェイスの周りをクリックすることでは不可能な楽しい新機能を作成することができます。

あなたが私のようで、コンピュータサイエンスの訓練を受けていないなら、プログラミングは十一文字を除いて四文字の単語のように見えるかもしれません(2.75倍悪い!). それは賢い人だけが知っている秘密の言語のようなもので、おそらく常に栄養の事実を読んだり、楽しみのためにロケットエンジンを作ったり、数字を使わないある種の数学で博士号を持っています。

それはありがたいことに全くそうではありません。 真実は、Ctrl+CとCtrl+Vを使用してコピーして貼り付けることができれば、すぐに独自のBlender Pythonスクリプトを作成することができます。

コード

暴露療法を見ることに慣れてください。 漸進的な脱感作。 それをあなたがすることと呼びますが、最初は奇妙に思えるものを正規化する最良の方法は、適切な文脈で十分に頻繁にそれを見ることです。

Blenderのインターフェイスで実行するすべてのアクションは、Pythonコマンドを介して実行されます。 あなたは、情報エディタにあなたのタイムラインを切り替えて、あなたの通常の仕事について行くとき、それが吐き出すものを見て、自分のためにこれ

情報エディタは、firehoseのビットすることができますが、コマンドラインについての何かがあり、そのようなものは、異端をプログラミングすることができま したがって、キューブを移動するような単純なことをして、2行または3行のコードを表示すると、そのほとんどを無視できます。 重要な部分は、最初に右です:

bpy.ops.transform.translate(value = (0.5, 0, 0))

あなたはすでに何かを移動するための名前が’translate’と呼ばれていることを知っているので、それ以降に来る値は、それぞれX、Y、Z軸上でオブジェク ‘Translate’の前のすべては、そのコマンドがBlenderのコードで見つかった場所です。 Blenderが1つの巨大なネストされたメニューで、Blender Python->Operations->Transform->Translateを選択したかのようです。

Blender Python(bpy)には9つの主要なセクションがあります。 これらを暗記する必要はありませんが、それらのいくつかを認識することで、Blenderがどのように機能しているかを理解するのに役立ちます。

  • アプリ-実行中に変更されないBlender自体に関する情報。
  • コンテキスト-Blenderで現在アクティブなものの読み取り専用リスト。
  • data-オブジェクトなどのBlenderの内部データのすべて。
  • msgbus-“message bus”の略で、特定の変更をBlenderに通知するために使用されます。 私たちが心配する必要はない何か。
  • ops-モデリングからファイルの追加、レンダリングまで、Blenderで行うことができるすべての操作。
  • path-ファイルパスを処理する関数。
  • props-Blenderが使用するさまざまなプロパティ。 これを使用して、入力が数値であるか色であるかをBlenderに指示します。
  • タイプ-修飾子からテクスチャ、ランプなどに至るまで、Blenderに存在するあらゆるタイプのもの。
  • utils-Blenderのためだけであるが、内部データを扱わないユーティリティ関数。

興味がある場合は、Blender2.8と以前のすべてのバージョンのAPIドキュメントをご覧ください。

作業中に、お気に入りのツールがコード内でどこにあるかを確認することに慣れてください。 あなたはこの時点でそれをすべて理解する必要はありません-ちょうどそれがどのように見えるかに慣れる!

PowerのPythonコンソール

次のステップの準備ができたら、Scripting workspaceタブに移動します。 あなたは左下に今おなじみの情報エディタを見つけることができます。 その真上にはPythonコンソールがあり、コマンドを貼り付けて物事を実現することができます。 これを試してみてください:情報エディタで行を選択し、Ctrl+Cを押してコピーし、Ctrl+Vを使用してコンソールに貼り付けます。 Enterキーを押すと、まったく同じアクションが再び発生することがわかります!

今、これを試してみてください:回転、スケール、何かを移動するか、行の他の三つのアクションを行います。 情報エディタから3つすべてをコピーし、コンソールに貼り付けます。 今、あなたは一度に三つのことをしました! これに制限はありませんので、必要に応じて、この方法で一度に何百ものことを行うことができます。 あなたがコーディングにそれ以上行かない場合でも、これはあなたの背中のポケットに保つための素晴らしいトリックです。

テキストエディタでコマンドを保存する

コマンドの束を狩り、すべての時間をコピー/貼り付けることは、それ自体がかなり面倒です! Blenderのテキストエディタを使用して、自分自身にいくつかの時間を節約し、私たちのマルチタスクをさらに効率的にしてみましょう。

新しいテキストファイルを作成し、情報エディタからテキストエディタに三つ以上の異なるアクションをコピーして貼り付けます。 私はキューブを追加することから始めます:

bpy.ops.mesh.primitive_cube_add(size=2, view_align=False, enter_editmode=False, location=(0, 0, 0))

次に、z軸に沿って立方体を回転させます:

bpy.ops.transform.rotate(value=-0.261911, orient_axis='Z', orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', constraint_axis=(False, False, True), mirror=True, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

Yikes、それはとても簡単な何かのための多くのコードです! それはあなたを気にしない場合は、先に行くと、それを維持します。 しかし、それが威圧的であることがわかった場合は、値と方向軸以外のすべてを削除して、読みやすくするようにしてください。 残りの部分は単にデフォルトを想定します。

bpy.ops.transform.rotate(value=-0.261911, orient_axis='Z')

最後に、ベベル修飾子を追加しましょう:

bpy.ops.object.modifier_add(type='BEVEL')

スクリプトを実行するために行う必要がある余分なことは、次のように入力します:

import.bpy

ファイルの先頭にあるので、Blender Pythonを読むことができます。 また、テキストエディタのヘッダーで行番号、単語の折り返し、構文の強調表示の三つのボタンをオンにすると便利です。

そこに行く、あなたは今、スクリプトを持っています! これで、テキストエディタのヘッダーでスクリプトの実行をクリックすることで、一度に三つの非常に重要なことを行うことができます。 後で保存するか、別のファイルで使用する場合は、Text->名前を付けて保存し、.py Pythonファイルとして保存します。

私とは異なるコマンドを試してみて、スクリプトが期待どおりに動作しない場合は、どのオブジェクトが選択されているか、どのエディタがアクテ Blender2.8では、selectionプロパティをTrueまたはFalseに設定することで、オブジェクトを選択または選択解除できます:

bpy.data.objects.select_set(state=True)

すべての雹オートコンプリート

Blenderが持っているいくつかのコマンドは、コードを介してのみ行うことができ、インターフェイスにはありません。 また、インターフェイス内の変更を行う他のもの(タイムラインをスクラブなど)は、常にあなたがコピーして貼り付けることができます情報エディタで何かを与えるものではありません。

いつでもGoogleまたはBlender API Docsを使用して、必要なことを行うための適切なコマンドを見つけるのに役立ちますが、オートコンプリートを使用して見つける方が簡単なことがよくあります。 Pythonコンソールでアドレスの入力を開始すると、Ctrl+Spaceを押すと、Blenderはあなたが書いたことを完了するための利用可能なすべての方法を表示します。 これは、コードベースをナビゲートし、新しい機能を発見するための素晴らしい方法です。

テキストエディタにはCtrl+Spaceオートコンプリート機能もありますが、同じようには機能せず、一般的にはそれほど役に立ちません。 それが頻繁に使用するものであれば、Jacques LuckeのCode Autocomplete addonを入手することをお勧めします。

素晴らしいテンプレート

インターフェースのボタンやメニューからアクセスできる適切なアドオンにスクリプトを変換したい場合は、Blenderの組み込みテンプ ユーザー設定で見られる情報を提供する方法や、アドオンを正しく表示するようにアドオンを登録する方法については、覚えておくべきことがたくさんあ

実際にPythonを学ぶ

あなた自身のスクリプトを作成することを楽しんだが、彼らの力の欠如に少しがっかりしたと感じたら(私は最初にいくつかの大きな約束をしました!)、それは一般的にPythonとプログラミングについての詳細を学ぶための時間です。 変数、ループ、関数などの概念は、真に新しいものや強力なものを作るために不可欠です。 少しの知識はここで長い道のりを行くことができるので、それは本当に余分な努力の価値があります。 私は次のサイトのいずれかでPythonを掘り下げることをお勧めします。 私たちはどのような方法で提携していない、彼らはちょうど良い仕事をします。

  • Team Treehouse
  • Code Academy
  • Data Camp
  • Pythonを学ぶ

ヘルプを送信!

必然的に、あなた自身のスクリプトやアドオンを構築する途中で立ち往生します。 それは私たちの最高に起こります! Blenderでのコーディングに関する質問をする場所は次のとおりです:

  • Blender StackExchange
  • Blender DevTalk

また、CGクッキーでこれらのコースを見て、より多くを学ぶことができます:

  • BlenderでのPythonスクリプトの紹介
  • BlenderでのPythonハンドラ関数を使用したスクリプト
  • BlenderでのカスタムリグUIのスクリプト