Blender

**Blender**（ブレンダー）はオープンソースの統合型3DCG製作、2Dアニメーション製作、VFX向けデジタル合成、動画編集ソフトウェアである。

Blenderにはそれぞれの用途に特化したファイルテンプレートが用意されており、3DCGでは3Dモデリング、モーショングラフィックス、アニメーション、シミュレーション、レンダリング、ポストエフェクト（コンポジット内）などの、2Dアニメーションではベクターペイントや中割りや撮影処理などの、VFX向けデジタル合成ではキーイングやロトスコープ（マスキング画面）やマッチムーブなどの、動画編集ではプロキシ編集などの作業が可能となっている。

## 特徴
Blenderは一般的な3DCGソフトウェアと比較すると軽量かつ多機能ながらライセンス料が無料なことから、アマチュア層にも普及している。

操作面ではバージョン2.7x系までは「オブジェクト(個々の3Dモデル)は右クリックで選択」が基本という、他の大半のソフトウェアと異なる点が特徴の一つであったが、バージョン2.8x以降は「左クリックで選択・右クリックでサブメニュー」という、一般的なソフトウェアの操作が標準になっている。

### コラボレーション
元々ネットワークドライブを使ったファイルの共有は可能となっていた（例えばWindows版ではUNCパス（「\\コンピュータ名\共有フォルダ名」）に対応）。

その後、3.0でアセットブラウザ機能が搭載されアセットの共有が容易となり、3.1でアセットの索引付けが行われるようになってアセット一覧の読み込みが高速化された。

また、マルチユーザー同時操作が可能なMultiuser アドオンもある

### 対応ハードウェア及び推奨環境
BlenderはWindows 64ビット版（Windows 8.1以降）、macOS Ventura以降、Linux (glibc 2.28以上) など複数のOS環境上で動作する (クロスプラットフォーム)。ダウンロード可能なバイナリにはポータブル版 (Windowsでは.zip、Linuxでは.tar.xz) 、インストーラー版、各ストア版（Microsoft Store/Snap Store/Steam）が用意されている。

Blenderは一般向けのPCでも動かすことができるが、できればビデオカードがあることが望ましい。動作には10年未満の新しいハードウェアが推奨されている (下記の最小動作環境参照)。

BlenderのUIは3ボタンマウス及びペンタブレットに最適化されている。2ボタンマウスやトラックパッドでは内蔵の3ボタンエミュレーション機能を使う必要がある。またBlenderは3Dマウス (NDOFデバイス) にも対応している。

#### ディスプレイ
Blenderは旧来の狭色域SDRディスプレイに加えて、広色域ディスプレイやハイダイナミックレンジ (高輝度幅、HDR) ディスプレイにも対応している（HDRディスプレイ対応は5.0以降）。

SDRディスプレイ向けの表示色空間では狭色域のRec. 709、（Rec. 709 ガンマ2.4）および広色域のDisplay P3、Rec. 2020を、HDRディスプレイ向けの表示色空間ではRec. 2100 PQ/HLGを使うことが可能となっている。

なお広色域の色を表示するためには作業色空間を ACEScg ないし Linear Rec.2020 にする必要がある。またmacOS以外で広色域/HDRの色を表示するためには Vulkan バックエンドへの切り替えやデスクトップ環境の設定の変更なども必要となる。




広い作業色空間から狭い表示色空間への変換には色域圧縮が必要となるが、Blenderには色域圧縮の方式として以下が搭載されている:
* SDR出力専用
** Standard - リニアで変換
** Khronos PBR Neutral - 特定値までリニアでハイライト部分だけ圧縮
** Filmic - フィルムを模したもの。「Notorious 6」（高露光で6色に偏り）の問題があり 非推奨。復数のコントラスト設定が選択可能。
* SDR出力/HDR出力両対応
** AgX - Filmicを改良して実カメラのように高露光で白へと推移するようにしたもの。デフォルト。復数のコントラスト設定が選択可能。
**  1.3 - 映画向け。Filmicと同様に高露光で色相が偏る問題がある。
** ACES 2.0 - 上記の問題が解決されているだけでなく、ACES 1.xとは見た目が異なっている。

#### VR

2.83以降にはVR表示に対応するVR Scene Inspectionアドオンが搭載されている。この機能にはOpenXR対応のヘッドマウントディスプレイ (HMD) デバイス (OpenXR#対応ハードウェア参照) が必要となる。

3.0以降は入力デバイスによるナビゲーションにも対応したものの、2021年12月現在、オブジェクト操作にはxr-controller-supportブランチが必要となる。

### アドオン / テーマ / エクステンション

Blenderに機能を追加するパッケージは「アドオン」と呼ばれており、UIの配色などを追加するパッケージは「テーマ」と呼ばれている。またアドオンやテーマは併せて「エクステンション」（拡張）と呼ばれている。

Blender 4.1以前は多くの公式アドオンや公式テーマがBlender本体に付属していたが、Blender 4.2以降はアドオンやテーマをオンラインで提供するための公式レポジトリ「Blender Extensions」が用意され、そちらでの提供が中心となっている。Blender ExtensionsはBlenderの設定からもアクセス可能。

また公式レポジトリに無いオープンソースのアドオンや有料アドオンなども存在している。

### スタジオにおける導入状況

3DCG業界やアニメ業界ではMayaや3ds Maxなどプロ向けのソフトが標準となっているが、近年では機能が強化されたことで利用する動きもある。

* アニメ制作会社・カラーと、その子会社であるプロジェクトスタジオQは、従来使用してきた3ds MaxからBlenderへの移行を進めており、2021年7月に公開終了（終映）した『シン・エヴァンゲリオン劇場版:''''''』においてもBlenderの「実地検証」を実施している。また、両社はBlender財団への賛同と開発資金の提供を発表した。
* 2020年、白組がBlenderで制作した作品『はれるんウェザーアドベンチャー』を発表した。

* 2018年公開のネクスト ロボではBlenderが全面的に使用された。
*Goodbye Kansa Studioは、Unity の Adam デモ、Walking dead season 8などでblenderを採用した。

* Ubisoft Animation Studio は2020年より社内の3Dソフトウェアを全面的にblenderに移行することを表明した。

## 機能

### 下書き、ストーリーボード及び手描きアニメーション

Blenderは2D/3Dベクターペイント及びアニメーションのための**[https://docs.blender.org/manual/en/2.91/grease_pencil/index.html Grease Pencil（グリースペンシル）]**機能を有している。この機能は直接3D空間内に手描きすることが出来、それに対し3D空間での移動・変形やライティング等を含めた撮影が可能となっている。この機能は3Dモデリングのための下書き、ストーリーボード、手描きアニメーションなどに利用できる。またストロークはリギングできるため、カットアウトアニメーションを作ることも可能となっている。

2Dアニメーションに向けて、「2Dアニメーション」テンプレートが付属している。またボックス変形、キャンバス回転、ブラシパックのインポートなどに対応するGrease Pencil Toolsアドオンも用意されている。

また5.0以降はストーリーボード作成に向けて、「Storyboarding」テンプレートも搭載されている。

#### 画像入力・画像トレス・ライン抽出
BlenderはPNG形式などのラスタ画像（ビットマップ画像）の入力に対応しており、Grease Pencilはそのラスタ画像をベクター化する画像トレス機能を有している（ベース）。ただし可能なのはアウトライン（輪郭線）化のみであり、線画トレスで使われるセンターライン（中心線）のベクトル化には未対応となっている。

また、2.93以降のGrease Pencilはベクター画像のSVG形式の入力や、3Dからのライン抽出（LineArt機能）にも対応している。3.3以降はLineArt機能が影のラインにも対応している。

#### 作画・彩色
ベクタ自体の生成はドローモードで、生成後の編集はエディットモード・スカルプトモードでおこなわれる。2Dレイヤー機能を持っており、下描きレイヤーで下描きした後、線画レイヤーで線画作業することも可能となっている。

Grease Pencilマテリアルはストローク（線）とフィル（面）にテクスチャを指定することができ、それによってアナログ画材風にすることができる。またストロークとフィルの色は単一色だけでなく頂点カラーで指定することもできる。頂点カラーで指定する場合はシーン内に大量のマテリアルを作成する必要性が低くなる。

#### 動画・撮影
Grease Pencilは前後の参照フレームを表示するためのOnion Skinning機能を有している。また、フレーム補間（interpolation）機能も有しており、セルアニメにおける中割り（動画工程）を自動で行うことが可能となっている。

Grease Pencil オブジェクトはメッシュやライトなどのように単独のオブジェクトであるため、3D空間に配置され移動や撮影が可能である。また視覚エフェクト（Visual Effect）機能も有しており、透過光（グロー）などの撮影処理がリアルタイムに可能となっている。

#### ベクター出力
Blender 2.93以降のGrease Pencilはベクター画像のSVG形式およびPDF形式での出力に対応している。出力した画像または動画はAcrobat Reader、Inkscape、Krita、Adobe Illustrator、Photoshop、Toon Boom Harmonyなど様々なソフトウェアで取り扱うことが可能となっている。

### モデリング
Blenderは3Dモデリング機能を提供している。様々な形状表現をサポートしており（⇒#形状表現）、それぞれに対応した高機能のウィジェット（モード）が提供されている。

#### 形状表現
Blenderは以下の形状（ジオメトリ）表現をサポートしている：

* ポリゴンメッシュ（*Meshes*）
* 曲線（*Curves*）
* 曲面（*Surfaces*）
* メタボール（*Metaball*）

*Curves で*はベジェ曲線とNURBSをサポートしている。*Surfaces* ではNURBSのみをサポートしている。

#### スカルプトツール
スカルプトモードが搭載されており、形状をスカルプトして有機的な形状を作成できる。タブレット入力に対応しており、筆圧に応じたスカルプトが可能となる（傾きにも4.5以降対応）。スカルプトモデリング用のテンプレートも搭載されている。

直感的に布の物理演算を行うことができるSculpt Cloth機能もある。2.91でプラスチックのような可塑性に対応した。

#### リトポロジ
スカルプトしたジオメトリをアニメーションで使いやすくするリトポロジでは、手動リトポロジに必要なメッシュ編集機能（ポリビルドなど）とオートリトポロジ機能が搭載されている。

高度な手動リトポロジにはRetopoflowアドオンなどが必要となる。2022年現在、Blenderでは専用のリトポロジモードが開発中となっている (D14035)。

#### プロシージャルモデリング
Blenderはモディファイア機能によりプロシージャルモデリングに対応している。

**モディファイア**（）はオブジェクトのジオメトリに対する変形指令である。モディファイアをオブジェクトに付与することで非破壊的にオブジェクトを変形できる、すなわち元オブジェクトのデータを保持したまま見た目を変えられる。1つのモディファイアはジオメトリを受取り変形し出力するため、複数のモディファイアを直列に繋ぐことができる。このモディファイアのセットは**モディファイアスタック**（）と呼ばれる。

Blenderはビルトインで様々なモディファイアを定義している。その中の一つ Geometry Nodes モディファイアはノードベースのプロシージャルモデリングを行うことが可能である。プロシージャルモデリングに特化したGeometry Nodesワークスペースが搭載されており、SpreadsheetによるGeometry Nodesのデバッグが可能となっている。またGeometry Nodesによる破壊的な編集ツールの作成も可能となっている (Node-based Tools)。

またモディファイアは Geometry Nodes を使って追加することが可能であり、Geometry Nodes の Gizmo（操作ウィジェット）ノード群を使って様々なジオメトリ操作をUIで行うことが可能となっている。

外部アドオンにはノードベースでプロシージャルモデリング/アニメーションが可能なSverchokアドオン、Animation Nodesアドオンもある。

#### ヘアツール

3.3以降、ヘアはCurvesオブジェクトとして実装されている。Curvesオブジェクトは編集モード及びスカルプトモードによって破壊編集が、Geometry Nodesによって非破壊編集が可能となっている。3.5以降はヘア向けに様々なノードアセットが付属している。

また旧来のヘアパーティクルも実装されており、そちらはパーティクルシステムモディファイアの入ったオブジェクトのパーティクル編集モードによって編集が可能となっている。

ヘアのリアルタイムレンダリング（ビューポート表示）にも対応しているが、リアルタイムのEEVEEはまだヘアシェーダ未対応となっている。

### UV展開・編集

UV編集では自動展開、ライブ展開、UVスカルプトなどに対応している。また単一UVマップだけでなく、マルチタイルUVマップ（UDIM）の編集にも対応している。3.3以降はGeometry NodesからもUV展開が可能となっている (UV Unwrap Node)。

UVの機能を強化するアドオンのMagic UVが用意されている。

### シェーディング及びルックデブ
リアルタイムレンダラーのEEVEEやインタラクティブレンダリング可能なパストレースレンダラーのCyclesが搭載されており高速なルックデブが可能となっている。

シェーダーでは各種物理ベースシェーダーのほか、ノードベースでのシェーダー作成や、Open Shading Languageによるテキストベースのシェーダー作成も可能となっている。

#### テクスチャリング及び3Dペインティング
基本的な3Dペイント機能が搭載されているほか、レイヤーペイントにはUcupaintアドオンが存在する。

2022年現在、高度なテクスチャリング機能の開発が計画されている。

### 3Dレイアウト及び入出力
Blender には独自のファイルブラウザ及び各種インポーター/エクスポーターが搭載されている。Blender 3.0以降はアセットシステム及びアセットブラウザも搭載されている。アセットブラウザではアセットのドラッグ&ドロップが可能。

#### ネイティブ形式の入出力

Blenderのネイティブ形式は独自の **.blend** 形式となっている。.blend 形式ではバージョンによって細かな仕様が異なっているものの、変換などによりなるべくバージョン間の互換性が確保されるようになっている。3.0で標準圧縮方式がgzipからZstandard（Zstd）へと変更され、それ以前のBlenderとの後方互換にはファイルの解凍が必要となった。5.0で膨大なデータに対応するためにファイル形式の改変が行われ、後方互換にはBlender 4.5 LTSを通すことが必要となった。

.blend 形式にはUIの状態、各種データブロック（シーンやオブジェクトやマテリアルなど）、埋め込みファイル（テキストやテクスチャなど）の情報を含んでいる。また3.0以降は任意のデータブロックをアセット化して説明やタグ付けすることが可能となっている。なお.blend 形式では単独シーンだけでなく複数のシーンを含むことができる。

Blenderでは外部 .blend ファイルに含まれている任意のデータブロックを個別に追加またはリンクすることが可能となっている。ライブラリオーバーライドにも対応しており、リンクしたデータブロックの任意のパラメータの上書きが可能となっている。

#### 非ネイティブ形式の入出力
ファイルのインポート及びエクスポートではオートデスクのFBX形式、クロノス・グループのCOLLADA (.dae) 形式およびglTF形式（4.1以降gltfpackによる後処理に対応）、PixarのUniversal Scene Description (USD) 形式などの代表的な3Dシーン及びモデル形式、OBJ形式やSTL形式やPLY形式などの昔ながらの3Dオブジェクト形式、ジオメトリキャッシュのAlembic形式（.abc）の読み込み及び書き出しが可能となっている。一部の形式はPythonで実装されているため低速となっており、高速化のためにネイティブでの再実装が進行中となっている。また一部の形式では複数ファイルの同時インポートにも対応している。4.2以降はコレクション単位でのエクスポートに、4.5以降はGeometry Nodesのノードによるインポートにも対応した。

CADファイルのインポートではDXF形式を入出力するためのAutoCAD DXFアドオンが、のインポートではやを読み込むためのAtomic BlenderアドオンやMolecular Nodesアドオンが用意されている。

建物情報モデル (BIM)で使われるIFC形式の入出力ではBonsaiアドオン（旧BlenderBIM）が用意されている。また外部アドオンでは地理情報システム（GIS）で使われるGeoTIFF形式などを読み込むためのBlenderGISアドオン、写真測量で使われる形式を読み込むためのblender-photogrammetryアドオンやBlender-Addon-Photogrammetry-Importerアドオンもある。

#### 対応するテクスチャ画像形式および動画形式
テクスチャ画像ではOpenEXR形式、DDS形式、Photoshop PSD形式を始めとする様々な画像形式の読み込みに対応している。

また動画や音声ではFFmpegのライブラリを使用しているため、様々なフォーマットやコーデックの動画や音声の読み込みが可能となっている。

#### スキャッタリング
Blenderではヘアパーティクル機能を使うことでオブジェクトのスキャッタリングが可能となっている。また2.92以降はGeometry Nodesが搭載され、それによってノードベースのオブジェクトのスキャッタリングも可能となった。

### ライティング

2022年現在ライティングワークスペースは搭載されていないものの、実写合成向けでは階層化可能なオブジェクトのコレクションでレンダリングの制御が可能となっており、アウトライナー上で可視性、マスキング（ホールドアウト）、直接光除去（間接光のみ）の制御が可能となっている。

3.2以降、オブジェクトとそれを照らすライトを紐付けるLight Groupsに対応し、4.0以降、Light Linking及びShadow Linkingに対応した。

### アニメーション
単純なアニメーション、Python式を使った連動アニメーション (ドライバー)、スケルタルアニメーション (ボーンアニメーション)などに対応している。

スケルタルアニメーションでは (FK・順運動学)、 (IK・逆運動学)の両方に対応している。IKソルバーにはBlender独自のものとiTaSCベースのものが搭載されている。を含む様々な拘束が可能。

#### キネティック・タイポグラフィ
3.0以降、ジオメトリノードに文字列操作ノードや、文字列からカーブへの変換ノードが用意されている。

### シミュレーション

シミュレーションにはBulletベースの剛体シミュレーション、独自の布・軟体・ヘアシミュレーション、Mantaflowベースの流体シミュレーション (液体・気体)などが搭載されている。

#### パーティクル
パーティクルは旧来の固定機能のパーティクルシステムが搭載されている。このパーティクルシステムは流体パーティクルや群行動パーティクルにも対応している。

またGeometry NodesのSimulationノードを使えばカスタムパーティクルシステムを作ることも可能となっている

### レンダリング
レンダリングエンジンの項で詳述

### ポストエフェクト及びコンポジティング
ノードベースのコンポジット機能を搭載しており、様々な画像処理が可能となっている。ディープコンポジティングには対応していないが、Cryptomatteには対応している。GPUでの高速なコンポジットにも対応しており、ビューポートでもコンポジット込みの表示が可能となっている。

また、2D/3Dモーショントラッキング、ロトスコープなどのVFXに必要となる機能及びVFXテンプレートも搭載されている。

### スクリプティング及びアドオン作成

BlenderはPythonスクリプトを使用してエディタやオペレーターを拡張することができる。標準ワークスペースにはPythonスクリプトを編集するためのScriptingワークスペースが用意されている。

Scriptingワークスペースには構文強調や閉じ括弧補完（3.1以降）に対応したテキストエディタ、Pythonコンソール、操作ログなどが用意されている。

コードの自動補完には標準で未対応であり、Intellisense for Blender Text Editorアドオンなどを入れる必要がある。

PyCharmやEclipse/などの外部エディタを使ってPythonスクリプトを編集することも可能となっている。この場合、コードの自動補完にはfake-bpy-moduleなどの外部モジュールを使う必要がある。またリモートデバッグにはremote_debugger.pyなどが必要となる。

なお、Blenderは7割前後のコードがC言語で書かれており2割前後のコードがC++で書かれているものの、C言語やC++でアドオンを作成するため機構やSDKは用意されていない。PythonからC/C++で書かれたダイナミックライブラリを呼び出し、as_pointer()メンバ関数で主要構造体のポインターを取得しダイナミックライブラリ側へと渡すことは可能なものの、構造体の定義などは自前で行う必要がある。

### 動画編集
動画編集用の Video Sequence Editor (VSE) 機能およびVideo Editingテンプレートが搭載されている。プロキシ編集に対応している。また3.0以降はタイムラインの動画サムネイル表示や変形ツールが搭載されている。5.0以降は動画編集においてもコンポジットを使うことが可能となっている（コンポジターモディファイア）。

動画編集を強化するアドオンのPower Sequencerも用意されている。様々なタイムライン形式を読み込むためにはオープンソースのVSE IOアドオンが必要となる。

### 3Dプリント
3Dプリントに向けて編集モードにメッシュ解析のためのMesh Analysisオーバーレイが搭載されているほか、クリーンアップ機能を含む3D Print Toolboxアドオンも用意されている。ただし直接3D印刷を行うことは出来ない。

## レンダリングエンジン

Workbenchはビューポート向けの作業用レンダラーであり、Eeveeは高度なリアルタイムレンダラーとなっている。CyclesはGPU（及びそれに搭載する）対応のパストレーシングレンダラーであり、オフラインレンダリング向けとなっている。これらレンダラーはビューポート上のプレビュー表示でも使うことが出来る。

CyclesとEeveeの間にはレンダリング手法が異なることもあり、マテリアルなどの非互換性が多少存在する。

なお、過去のレンダラーにはスキャンライン/レイトレーシングハイブリッドレンダラーのBlender Internalが存在した。Blender Internalはバージョン2.8で削除された。

### Cycles

Blender 2.61以降に付属しているオープンソースのパストレーシングレンダリングエンジン。3.0でCycles Xが統合され高速化されている。Blender本体から半独立しており、Blender以外のソフトウェアにも使われるようになっている:
* 公式
** Cycles Hydra Render Delegate - USDViewやNVIDIA Omniverse KitやHoudiniなどのHydraデリゲート対応ソフトウェア用。hdCycles（Tangent Animation製）の後継。
* 標準搭載
** Poser 11以降のSuperfly
** Rhinoceros 3D 6以降のRhinoCycles
** Gaffer 1.0.3.0以降（プレビュー版）
* サードパーティー製プラグイン
** Cycles 4D (Insydium製) - Cinema 4D用。INSYDIUM Fused Collectionの一部。
** Cycles for Max - 3ds Max用

レンダリングアルゴリズムは単方向パストレーシングに対応している。テクスチャベイクも可能となっている。

GPUレンダリングではが可能であり、速度の低下はあるもののGPUのVRAM容量を越える大きなシーンのレンダリングが可能となっている。

レンダーファームを作成することも可能だが、ネットワークレンダリングや分散レンダリング（Distributed Rendering）には標準で未対応となっている。

### Eevee
リアルタイムPBRレンダラー。バージョン2.8から付属。

### Workbench
ビューポート用のレンダリングエンジン

## ゲームエンジン (UPBGE)

2.7xまではゲームエンジン機能を内蔵しており、ロジックノードやPythonスクリプトを利用することでインタラクティブなコンテンツを制作することが可能であった。またゲームエンジンを動かしてその動きをキーフレームへと焼き付けることも可能であった（Record Animation機能）。

2.8ではゲームエンジン機能が一旦削除されたものの、外部プロジェクトとして旧来のゲームエンジンを維持した派生版の**UPBGE**が開発され続けている。UPBGEではEEVEEレンダラーやGPUコンポジットなどの新しいBlenderの機能を使うことが可能となっている。

また、本家でも今後インタラクティブモードが再度追加される予定となっている。

## ベンチマーク

BlenderのCyclesレンダラー用のベンチマークツールとしてBlender Benchmarkが用意されており、これによりシーンのレンダリングにかかる時間を計測することができる。計測データのアップロードにも対応しており、アップロードされたデータはBlender公式のOpen Dataサイトで閲覧可能となっている。

3.0時点でベンチマークに使われる標準シーンは以下の3つとなっている：
* Classroom（教室）
* Junkshop（ジャンク屋）
* Monster（モンスター）

## Python環境 / API
Blenderには独立したPython環境が搭載されており、Python言語を使用して独自のスクリプトや拡張アドオンを作成することが可能となっている。

BlenderのPython環境には標準で数学モジュールのNumPy/mathutils/bl_mathや、低レイヤーグラフィクスモジュールのgpu/gpu_extras（及び非推奨のbgl）、アプリケーションモジュールのbpyなどが搭載されている。それ以外の拡張モジュールを使うためにはpipなどを使って外部パッケージをBlenderのPython環境にインストールする必要がある。

BlenderのPython APIではアプリケーション情報にbpy.app経由でアクセスする。
```python3
import bpy
print(bpy.app.version_string) # Blenderのバージョンを表示
```


開いているファイルの全データにはbpy.data経由でアクセスし、操作中のデータにはbpy.context経由でアクセスする。データの変更はbpy.msgbusで受け取ることが可能。
```python3
import bpy
print(bpy.data.objects['Cube'].location) # 'Cube'オブジェクトの位置を表示
print(bpy.context.active_object.rotation_euler) # 選択中のオブジェクトのオイラー角を表示
```


オペレータの実行はbpy.ops経由で行う。
```python3
import bpy
bpy.ops.transform.resize(value=(2, 2, 2)) # 選択中のオブジェクトを二倍に拡大
```


オペレータは自前で追加することも可能である。
```python3
import bpy

class SimpleOperator(bpy.types.Operator):
    """ツール tip"""
    bl_idname = "object.simple_operator" # オペレータ識別子
    bl_label = "Simple Object Operator"  # オペレータ名

    @classmethod
    def poll(cls, context):
        return context.active_object is not None # アクティブオブジェクトがある時のみ有効

    def execute(self, context):
        for ob in context.scene.objects: # 現在のシーンのオブジェクトを辿って
            print(ob)                    # それぞれの情報を表示する
        return {'FINISHED'}

def register():
    bpy.utils.register_class(SimpleOperator) # オペレータクラスを登録

def unregister():
    bpy.utils.unregister_class(SimpleOperator) # オペレータクラスの登録を解除

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.object.simple_operator()
```


### コマンドラインでの実行

Blenderを用いたスクリプトをUI無しで使うことも可能となっている。この場合は以下のコマンドを使う必要がある：
```sh
blender [ファイル名.blend] --background --python スクリプト名.py
```


またBlenderのAPIを通常のPython環境で使うための **Blender as a Python Module** も存在し、pip経由でのインストール（コマンド：*pip install bpy*）が可能となっている（3.4で公式化）。このモジュールを使う場合は以下のように通常のPythonからの実行が可能となる：
```sh
python スクリプト名.py [引数]
```


一からシーンを構築してレンダリングするスクリプトの例：
```python3
import bpy
bpy.ops.wm.read_factory_settings(use_empty=True) # 真っ新な環境にする

bpy.ops.wm.obj_import(filepath="./test.obj") # OBJファイルインポート
bpy.ops.object.light_add(type='POINT', radius=1, location=(0, 0, 2)) # ライト1追加
bpy.ops.object.light_add(type='POINT', radius=1, location=(-2, 0, 0)) # ライト2追加
bpy.ops.object.light_add(type='POINT', radius=1, location=(2, 0, 0)) # ライト3追加
bpy.ops.object.camera_add(location=(0, -10, 0), rotation=(1.6, 0, 0)) # カメラ追加
bpy.context.scene.camera = bpy.context.active_object # シーンカメラ設定

bpy.ops.render.render() # レンダリング
bpy.data.images['Render Result'].save_render("./test.png") # 保存
```


また、Blenderを使わずにBlender形式の中身を読み取るためのPythonモジュール「**Blender Asset Tracer** (**BAT**) 」も存在する。 この BAT は Blender Asset Manager 及び blender-file モジュールの後継に当たる。この BAT も pip からのインストールが可能となっている (*pip install blender-asset-tracer*)。

## バージョン履歴
Blenderはメジャーあるいはマイナーのバージョン更新を年に数回おこなっており、バグ修正が Corrective Release として適宜リリースされている。また約1年ごとに2年サポートのLTS版をリリースしている。以下の表は近年のBlenderのバージョン履歴表である。

}
|2025-06-04
|alpha (~2025-10)
|https://developer.blender.org/docs/release_notes/5.0/
|-
|
|2025-07-25
|LTS (~2027-07)
|https://developer.blender.org/docs/release_notes/4.5/
|-
| 
|2025-03-18
|
|https://developer.blender.org/docs/release_notes/4.4/
|-
|
|2024-11-19
|
|https://developer.blender.org/docs/release_notes/4.3/
|-
| 
|2024-07-16
|LTS (~2026-07)
|https://developer.blender.org/docs/release_notes/4.2/
|-
|
|2024-03-26
|
|https://developer.blender.org/docs/release_notes/4.1/
|-
|
|2023-11-14
|
|https://developer.blender.org/docs/release_notes/4.0/
|-
|...
|
|
|
|-
|
|2023-06-27
|LTS (~2025-06)
|https://developer.blender.org/docs/release_notes/3.6/
|-
|...
|
|
|
|-
|
|2021-06-02
|LTS (~2023-06)
|https://developer.blender.org/docs/release_notes/2.93/
|-
|...
|
|
|
|-
|
|2020-06-03
|LTS (~2022-06)
|https://developer.blender.org/docs/release_notes/2.83/
|}

バージョン2.5系列ではほぼ全機能の近代化改修、ブラッシュアップが行われ、2011年4月に初の安定版2.5.7がリリースされた。

バージョン2.6系列では、2.61においてカメラトラッキング等、他のハイエンドツールにも匹敵する機能を追加した

### UI

2.4x以前はAmigaの面影を残した略語多用のインターフェースとなっていたが、開発版の2.5xでUIが一新されて近代化されていき、安定版の2.6で一応の完成を見たものの、ショートカット主体の操作などはそのままとなっていた。

その後、2.8でウィジェットやワークスペースが導入されたほか左クリックでの選択が標準となり、2.81で円形メニューが導入された。

### 内部 / API
Blender 2.10でPython APIが導入され、Blender 2.5xでPython 3系へと移行して新たなPython API「bpy」が導入され、Blender 2.62でPython APIの行列が へと変更された。

2.63でメッシュ構造が多角形ポリゴン (Ngon) に対応するBMeshへと移行された。2.80でほぼ全ての操作が複数オブジェクトの同時編集 (Multi-Object Editing) に対応した。また2.80でリグなどが循環依存しにくくなる再設計された依存グラフが導入され、2.81で汎用的な外部データのオーバーライド編集のためのLibrary Overridesが導入され、3.0でLibrary Overridesがキャラクターアニメーション限定だった旧来のプロキシを完全に置き換えた。

3.4 で内部メッシュ形式が大きく変更され、頂点・エッジ・ポリゴンの各種属性が 形式の汎用属性（Mesh.attributes）へと移行された。

また 3.1 で従来の OpenGL バックエンドに加えて macOS 向けの Metal バックエンドが追加され、それもあって Blender 3.4 の独自 Python API で従来の OpenGL ラッパーAPI「bgl」に代わって新たなGPU描画API「gpu」が導入され、旧来の「bgl」は5.0で廃止された。

### レンダラー
Blenderの内部ラスタライズレンダラーはもともとBlender Internalと呼ばれていたが、2.32でそれがオーバーホールされレイトレーシングにも対応するようになった。また内蔵ビューポートは2.48でGLSLシェーダー用いたレンダリングに対応した。

また2.32では外部レイトレーシングレンダラー（後のYafaray）の統合のベータ版が提供され、2.34でそれが安定版となった。その後もBlenderと共に使う外部レンダラーではYafrayが人気となっていたが、Blender 2.61では新たなパストレーシングレンダラーのCyclesが搭載され、Yafrayに代わってCyclesが人気となっていった。

その後、2.79でCyclesに物理ベースシェーダーが導入され、次いで2.80にはリアルタイム物理レンダラーのEEVEE及び作業用ビューポートレンダラーのWorkbenchが導入され、旧来の非物理ベースのBlender Internal及びGLSLビューポートは廃止された。

3.0ではCyclesの次世代版として高速なCyclesXが導入された。4.0ではWorkbenchの次世代版であるWorkbench Nextが導入された。また同4.0ではUSDのHydraレンダーデリゲート経由でのレンダリングに対応し、USDのリアルタイムレンダラーであるHydra Storm用のアドオンも搭載された。

4.2ではEEVEEの次世代版であるEEVEE Nextが導入され、4.5では従来のOpenGL APIに加えて新しいVulkan APIにも完全に対応した。

### 色管理
Blenderでは2.5の開発中において簡易的な色管理が導入されたものの、その対応色空間は長らくリニアRec. 709とsRGBのみに留まっていた。2012年、2.64で色管理ライブラリの OpenColorIO が統合されると、各種色空間との変換も可能となり、また専用設定ファイルを用いることで映画向けのACES色空間の広い色域を使うことも可能となった。

しかしながらACESには色相シフトの問題があり、2017年の2.79では映画向け独自トーンマッピングシステムとしてFilmicが搭載され、2023年の4.0ではその改良版のAgXが搭載された。

2024年の4.2では電子商取引向けに彩度を落ちにくくしたKhronos PBR Neutralが搭載された。

2025年の5.0ではハイダイナミックレンジ (HDR) な色空間への対応が強化され、HDR対応の色空間ではACES 1.3、ACES 2.0、AgX HDR、Rec. 2100 PQ/HLGに対応した。

### ゲームエンジン
2004年の2.33より、物理ライブラリのライセンス問題でオープンソース化後に取り外されていたゲームエンジンが再統合された。2.8ではゲームエンジン機能が一旦削除され、その機能は外部プロジェクトのUPBGEが維持することとなった（#ゲームエンジン (UPBGE)参照）。

### 国際化と地域化
Blenderでは長らく国際化の不十分な内蔵フォントが搭載されていた（外部フォントは使用可能だった）が、2.60以降は非西洋言語にも対応するインターナショナルフォントが搭載されている。その後、3.3でに対応し、3.4でより包括的なフォント「Noto Sans」が導入された。

また、日本語環境は2.49aより前までは貧弱だったが、2.49bにて2ちゃんねるのBlenderスレッドの有志が制作・配布した詳細な日本語翻訳テーブルが公式採用された事で強化された。その後、バージョン2.5系列で国際化がなくなり日本語環境での使用はできなくなっていたが、GSoC2011にて国際化され、平行して有志により再び日本語対応が行われ、バージョン2.60にて公式に日本語環境が復活した。

翻訳作業は公式が配布するi18nアドオンで行う。

## 歴史

Blenderの前身である**Traces**は、オランダのCGスタジオ、NEOGEO社の共同創設者の一人であるトン・ローセンダール (Ton Roosendaal) によって、AmigaOS向けのレイトレーシングレンダラーとして開発され、後にSGI IRIXへと移植された。その後、Tracesのソースコードは書き直されて、Blenderとなった。

1998年、トン・ローセンダールはインハウス・ツールとして使用されてきたBlenderの開発・外販を行う為に社を設立した。Windows版も用意され、ラジオシティ機能などを実装した有料版と無料版の二種を展開した。

2001年、NaN社は、Web3Dに向けて、Blender Webプラグインのベータ版をリリースしたが、セキュリティの問題から頓挫した。2002年、インターネット・バブルの崩壊と共にNaN社は倒産し、Blenderのソースコードは債権者の手に渡ってしまう。しかし開発途上にあったBlenderを手放すことができなかったトン・ローセンダールはを設立するため、"ソースコード解放"を合言葉に大々的な募金キャンペーンを行い半年で10万ユーロを世界中から集結させ、ソースコードを再びその手に取り戻した。

そして現在までBlenderは、GPLの下にオープンソースウェアとして開発・無償配布されている。ソースコードのコメントがオランダ語で書かれていた上に、プログラム自体が定石から外れた組み方をしていたため、開発を引き次いだ有志は他OSへの移植などで苦戦したという。

2002年5月、Blender Foundationがアムステルダムに設立された。

2006年3月、Blender Foundation は最初の映画である、Elephants Dreamを公開した。Elephants Dreamの成功を受け、以降のコンテンツ作成プロジェクトを制作するBlender Instituteが開設された。

2008年、UI一新などを目的とするBlender 2.5の開発が開始された。バージョン2.4系は2009年のBlender2.49をもって開発終了し、2011年に2.5系の初の安定版となるバージョン2.57がリリースされた。

2011年、Blender Foundation は開発基金の Development Fund を立ち上げ、その開発基金は同2011年にコンポジットのOpenCL対応、パーティクルノード、スカルプティングモデリング改善への支援を行った（パーティクルノードは2022年現在未マージ）。また2011年には新たにカメラトラッキング機能を搭載したBlender 2.61がリリースされ、翌2012年には Blender Institute が実写合成を用いたオープンVFX映画「」の制作を行った。

2014年末、Blender Foundation Development Fund 及び Blender Institute は18個の開発プロジェクトを公表し、後のバージョンに搭載されることとなる大きな機能の実装が開始された。

2015年、Blender 2.73 で注釈機能であった Grease Pencil 機能が強化されて2Dアニメーションが可能となり、その後も Grease Pencil V2 が登場するなど2Dアニメーション機能が強化されていった。2018年には Blender Institute がオープン映画として3D技術を用いた 2Dアニメの「HERO」を制作した。

一方、2018年6月にはYoutubeによってBlenderの使用方法を解説する動画がブロックされ、広告付きでの公開を要求された。これをBlender Foundationが拒否したところ、次々と他のBlenderチャンネルの動画がブロックされる事態となった。ローセンダールは抗議動画をYoutubeにアップロードし、それまでの動画をBlender cloudに移行することとした。

また、バージョン2.5系は2018年6月リリースの2.79bをもって開発終了とし、2019年7月にリアルタイムレンダラ「Eevee」や物理ベースレンダリング（PBR）などに対応する2.8系の初の安定版となるバージョン2.80がリリースされた。高機能化に伴って企業ユーザーが増加し、特定の版における機能の凍結と長期サポート（Long-term support、LTS）を求める企業ユーザーからの要望により、2.8系は2020年5月リリースの2.83においてLTS版として機能が凍結され、今後の開発はバグの修正のみとなった。新機能の実装はバージョン2.9系としてなされることになり、2020年9月にバージョン2.90がリリースされた。

2.9系では Everything Nodes の嚆矢となるジオメトリノード、リンクしたアセットのオーバーライド編集のためのライブラリオーバーライド、リアルタイムなエッジレンダリング (LineArt) などの機能が搭載された。その後、バージョン2.9系は2021年リリースのバージョン2.93をもって凍結された。

2021年12月にはバージョン3.0がリリースされてアセット管理システムやレンダラーの高速化 (Cycles X)などが搭載された。また2023年リリースの3.5ではリアルタイム3Dのバックエンドとして既存のOpenGL APIに加えてAppleのMetal APIにも対応している。2025年リリースのバージョン4.5ではVulkanへの対応が正式版となった。

## ブレンダー開発基金
Blender財団の主な収入源は寄付であり、一般ユーザーでも6ドルから寄付できる。

2019年7月、Unreal Engineの開発元のEpic Gamesが epic mega grant において、120万ドルを支援することを発表した。

2020年8月、Unity開発元の Unity Technologiesは、Patronメンバーとして支援を表明した。

2020年11月、Spark ARを擁するFacebookは、Patronメンバーとして基金への参加を表明した。

2020年12月、Amazon Web ServicesのThe Creative Team ジェネラルマネージャーであるKyle Rocheは、AWSがPatronメンバーとして今後最低３年間支援していくことを表明した。発表では特にキャラクターアニメーションを強化する前提での支援である旨が強調されている。

### 企業メンバーシップ
企業メンバーはblenderチームの戦略会議に出席したり、ロードマップ、優先度の決定に参画することができる。

## Blender Cloud

Blender CloudはBlender Institute が運営する有料ウェブサービスである。Blender Cloudアドオンも公開されており、Blender内から機能の一部を利用できる。月額の利用料は9.9ユーロ。

2020年12月から2021年の10月まで継続してBlender Cloudに加入すると、Blender Studioの新作オープンプロジェクトである、Sprite Frightのエンドロールに名前がクレジットされるキャンペーンが行われている

以下のサービスが利用できる

* トレーニング動画の閲覧
* オープンプロジェクトの制作風景の映像や資料の閲覧
* オープンプロジェクトで使用されたアセット、.blendファイルの入手
* HDR画像、パブリックドメインのテクスチャー素材のダウンロード
* Private Projects (10GBのストレージ)
* Blender Sync (Blenderの設定のクラウド上での同期、無料)
* Attract (映像、ゲーム製作用のプロジェクト管理ソフト)
* Flamenco (レンダーファームの管理ソフト)

## 派生版
### Bforartists
BforartistsはUIの改良に焦点を当てたBlenderの派生版である。多数のアイコンの追加などが行われている。

### UPBGE

### Goo Engine
非写実的レンダリング (NPR) 向けのフォーク。

## Blender Studio Tools

**Blender Studio Tools** は Blender Studio のオープンムービー製作のために作られたツール群であり、Blender 及び共同製作プラットフォーム Kitsu を使ったパイプラインを含むものとなっている。Blender Studio Tools には様々なアドオンが含まれている。

Blender Studio Tools を使って作られたムービーには以下がある：
* Sprite Fright

Blender Studio Toolsに含まれるアドオンのうち、Blender Extensionsプラットフォームからのインストールも可能なものには以下がある:
* CloudRig - リグ生成アドオンの一つ
* Brushstroke Tools - Geometry Nodes を使った3Dブラシ線のアドオン
* Easy Weight - ウェイトペイント補助アドオン
* GeoNode Shape Keys - リンクされオーバーライドされたメッシュをスカルプト変形できるようにするアドオン
* Lattice Magic - 部分的ラティス変形およびカメラ投影ラティス変形アドオン
* Pose Shape Keys - 補正シェイプキーアドオン

またその他の含有アドオンとして以下が含まれている
* Anim Cupboard
* Asset Pipeline - アセットにおける共同作業向けアドオン
* Blender Kitsu - 前述のKitsuと連携するためのアドオン。
* Blender Log
* Blender SVN - バージョン管理システム Apache Subversion との連携アドオン
* Bone Gizmos
* Contact Sheet - コンタクトシート生成アドオン
* Lighting Overrider

以下のアドオンは開発停止中となっている:
* Cache Manager - Alembicキャッシュ向けアドオン。

またBlenderを動画や画像などの表示向けにするための Media Viewer テンプレートも搭載されている。

## 関連ソフトウェア
### Attract

AttractはWebベースのプロダクション/タスク管理ツールである。元々のために作られ、その後も改良が続いていた。

Blender Cloudに統合されており、Blender Cloudアドオンから使用することが出来た。

Attractを使って作られたムービーには以下がある：
* 
* 
* Caminandes 3: Llamigos
* 
* Hero
* 

しかしながら Sprite Fright 以降のオープンムービーは Attract の代わりに Kitsu が使われており、Attract は開発停止中となっている（Kitsuを使ったパイプラインツールについては#Blender Studio Toolsを参照）。

### Flamenco

**Flamenco** は小規模チームに向けたWebベースのレンダーファーム管理ツールである。Blender向けのジョブ投入用アドオンも用意されている。

以前は複数拠点レンダリングに対応していた。3.0で1から書き直され、単純化されたためオフラインでも動作するようになった。

### BEER / Malt

**BEER** (Blender Extended Expressive Renderer) 及びそのバックエンドの Malt は BNPR（Blender NPRコミュニティ）によって開発されたBlender用の非写実的レンダラーの一つである。**Malt** はGLSL言語の表現に近いビジュアルプログラミングを採用している。どちらもオープンソースで実装されている。

## 参考画像

## 脚注

### 注釈

### 出典

## 外部リンク

* 
* Blender Foundation
* Blender Artists Community（ほぼ公式のコミュニティサイト）
* BlenderNation（ほぼ公式ニュースサイト）
* Dev Talk (Blender 開発者の公式プラットフォーム)
* 
* 
* 
* 
* 
* 
* 
*