From BlenderWiki

Jump to: navigation, search
Blender3D FreeTip.gif
IMPORTANT! Do not update this page!
We have moved the Blender User Manual to a new location. Please do not update this page, as it will be locked soon.

スクリプティングとセキュリティ

blend ファイル内に Python スクリプトを同梱する機能は、リギングや自動化、ゲームエンジンの使用といった上級の作業に便利です。しかし、Python がスクリプトで可能なことを制限していないため、セキュリティリスクを引き起こします。

そのため、皆さんの知っている、または信頼しているソースのスクリプトのみ実行するようにしてください。

自動実行はデフォルトでは無効になっていますが、いくつかの blend ファイルを正しく機能させるには必要になります。

blend ファイルがスクリプトを実行しようとするがそれが不可能な時、ヘッダーにメッセージと共に、信頼してリロード(Reload Trusted)無視(Ignore)オプションが表示されます。

Python Script AutoExec Header.png

Blend ファイル内のスクリプト

自動実行

blend ファイルが自動的にスクリプトを実行する方法はいくつかあります。

  • 登録済みテキストブロック
    各テキストブロックは登録(Register)オプションを ON することで、読み込み時に実行できます。
  • アニメーションドライバー
    Python 式を値の操作に使用できます。これはさらに上級のリグやアニメーションでよく使用されます。
  • ゲームエンジンの自動スタート
    スクリプトはよくゲームロジックに使用されており、自動スタートを ON にした blend ファイルは読み込み時にゲームを実行できます。

手動実行

blend ファイル内のスクリプトを他の方法で実行するにはユーザーによる干渉が必要です(その結果、自動実行が OFF の時でも実行可能です)。ただし、これは必ずしも明白ではないことを承知しておいてください。

  • テキストエディター内でのスクリプトの実行(OK、これは常識です!)
  • Freestyle によるレンダリング - FreeStyle はラインスタイルの操作にスクリプトを使用します
  • ゲームエンジンの実行。

スクリプト実行のコントロール

Blender には blend ファイルのスクリプトを自動的に実行可能とするかどうかをコントロールする方法がいくつかあります。

まず、ファイルセレクターに信頼できるソース(Trusted Source) オプションがあります。これは自動実行を状況に応じてコントロールするのに利用できます。

しかしこれをセットするのを忘れたり、ファイルセレクタ以外でファイルを開くかもしれません ― そのために、デフォルトを変更しましょう(次で解説)。

デフォルト設定

ユーザー設定(User Preference)のファイル(File)タブに、Pythonスクリプトの自動実行(Auto-Run Python Scripts)トグルボタンがあります。

これはファイルセレクタ内の信頼できるソース(Trusted Source)オプションをデフォルトでONにし、blend ファイルをファイルセレクタを使用せず読み込んだ際にスクリプトを実行可能にすることを示しています。

有効にすると、一部のディレクトリを除外するオプションが表示されます。ダウンロードディレクトリを除いた、すべてのパスを信頼するのが典型的な設定です。

Python Script AutoExec Configure.png

コマンドライン

バッチレンダリングやその他コマンドラインで行う(Blender をインターフェイスなしで実行させる)作業を行いたい場合があると思います。

この場合もユーザー設定(User Preference)を使用できますが、オーバーライドすることもできます。

  • -y または --enable-autoexec で有効
  • -Y または --disable-autoexec で無効

例: アニメーションをバックグラウンドモードでレンダリングし、ドライバーとその他スクリプトを実行可能にする

blender --background --enable-autoexec my_movie.blend --render-anim

注釈: これらのコマンドライン引数は通常の Blender インスタンスの起動時にも使用可能で、この場合もユーザー設定をオーバーライドします。