![]() | |
![]() Blender 3.3.0 LTS | |
開発元 | Blender Foundation |
---|---|
初版 | 1998年1月1日[1] |
最新版 |
4.0.2[2] ![]() |
リポジトリ | |
プログラミング 言語 | C、C++、Python |
対応OS | Windows、macOS、Linux、FreeBSD |
プラットフォーム | クロスプラットフォーム |
種別 | 統合型3DCGソフトウェア、2Dアニメーション制作ソフトウェア、スカルプトモデリングソフトウェア、VFX向けデジタル合成ソフトウェア、動画編集ソフトウェア |
ライセンス | GNU General Public License v3 or later[注 1][3] |
公式サイト |
blender |
Blender(ブレンダー)はオープンソースの統合型3DCG製作、2Dアニメーション製作、VFX向けデジタル合成、動画編集ソフトウェアである。
Blenderにはそれぞれの用途に特化したファイルテンプレートが用意されており、3DCG[注 2]では3Dモデリング、モーショングラフィックス、アニメーション、シミュレーション、レンダリング、ポストエフェクト(コンポジット内)などの、2Dアニメーション[注 3]ではベクターペイントや中割り[4]や撮影処理などの、VFX向けデジタル合成[注 4]ではキーイングやロトスコープ(マスキング画面)やマッチムーブなどの、動画編集[注 5]ではプロキシ編集などの作業が可能となっている。
Blenderは一般的な3DCGソフトウェアと比較すると軽量かつ多機能ながらライセンス料が無料なことから、アマチュア層にも普及している[5]。
操作面ではバージョン2.7x系までは「オブジェクト(個々の3Dモデル)は右クリックで選択」が基本という、他の大半のソフトウェアと異なる点が特徴の一つであったが、バージョン2.8x以降は「左クリックで選択・右クリックでサブメニュー」という、一般的なソフトウェアの操作が標準になっている[注 6]。
元々ネットワークドライブを使ったファイルの共有は可能となっていた(例えばWindows版ではUNCパス(「\\コンピュータ名\共有フォルダ名」)に対応[6])。
その後、3.0でアセットブラウザ機能が搭載されアセットの共有が容易となり[7]、3.1でアセットの索引付けが行われるようになってアセット一覧の読み込みが高速化された[8][9]。
また、マルチユーザー同時操作が可能な外部アドオンのUbisoft Mixerアドオン[10][11]やMulti-userアドオンなども存在している。
BlenderはWindows(バージョン8.1、10、11)、macOS(10.13以上)、Linuxなど複数のOS環境上で動作する (クロスプラットフォーム)[12]。ダウンロード可能なバイナリにはポータブル版 (Windowsでは.zip、Linuxでは.tar.xz) 、インストーラー版、各ストア版(Microsoft Store/Snap Store/Steam)が用意されている。
Blenderはグラフィック向けワークステーションが必要なプロ向けソフトと比較すると負荷が低いため、一般向けのPCにビデオカードを追加する程度で始めることができる。動作には10年未満の新しいハードウェアが推奨されている (下記の最小動作環境参照)[12]。グラフィックカードについてはプロ向けの3DCGソフトウェアで推奨されるNVIDIA Quadroより、ゲーム向けであるNVIDIA GeForceの方が、世代は最新よりも1世代前の方がレンダリングが速いという結果もある[13]。
BlenderのUIは3ボタンマウス及びペンタブレットに最適化されている。2ボタンマウスやトラックパッドでは内蔵の3ボタンエミュレーション機能を使う必要がある[14][15]。またBlenderは3Dマウス (NDOFデバイス) にも対応している[15]。
部品 | 最小動作環境[12] | 推奨動作環境[12] |
---|---|---|
CPU | 64ビット 4コア(SSE2対応) | 64ビット 8コア |
DRAM | 8 GB | 32 GB |
GPU | VRAM 2GB、OpenGL 4.3以上またはMetal対応 | VRAM 8GB |
ディスプレイ | Full HD(1920px×1080px) | WQHD(2560px×1440px) |
ポインティングデバイス | マウス、トラックパッド又はペンタブレット | 3ボタンマウス又はペンタブレット |
2.83以降にはVR表示に対応するVR Scene Inspectionアドオンが搭載されている[16]。この機能にはOpenXR対応のヘッドマウントディスプレイ (HMD) デバイス (OpenXR#対応ハードウェア参照) が必要となる[17]。
3.0以降は入力デバイスによるナビゲーションにも対応したものの、2021年12月現在、オブジェクト操作にはxr-controller-supportブランチが必要となる。
3DCG業界やアニメ業界ではMayaや3ds Maxなどプロ向けのソフトが標準となっているが[18]、近年では機能が強化されたことで利用する動きもある[19]。
Blenderは2D/3Dベクターペイント及びアニメーションのためのGrease Pencil(グリースペンシル)機能を有している。この機能は直接3D空間内に手描きすることが出来、それに対し3D空間での移動・変形やライティング等を含めた撮影が可能となっている[27]。この機能は3Dモデリングのための下書き、ストーリーボード[28][29]、手描きアニメーションなどに利用できる。またストロークはリギングできるため、カットアウトアニメーションを作ることも可能となっている[30]。
2Dアニメーションに向けて、2D Animationテンプレートが付属している。またボックス変形、キャンバス回転、ブラシパックのインポートなどに対応するGrease Pencil Toolsアドオンも搭載されている。またストーリーボードの作成用のStorypencilアドオンや外部アドオンのUbisoft Shot Manager[31]もある。
BlenderはPNG形式などのラスタ画像(ビットマップ画像)の入力に対応しており[32]、Grease Pencilはそのラスタ画像をベクター化する画像トレス機能を有している[33](Potraceベース)。ただし可能なのはアウトライン(輪郭線)化のみであり、線画トレスで使われるセンターライン(中心線)のベクトル化には未対応となっている。
また、2.93以降のGrease Pencilはベクター画像のSVG形式の入力や、3Dからのライン抽出(LineArt機能)にも対応している。3.3以降はLineArt機能が影のラインにも対応している。
ベクタ自体の生成はドローモードで、生成後の編集はエディットモード・スカルプトモードでおこなわれる[34]。2Dレイヤー機能を持っており、下描きレイヤーで下描きした後、線画レイヤーで線画作業することも可能となっている。
Grease Pencilマテリアルはストローク(線)とフィル(面)にテクスチャを指定することができ、それによってアナログ画材風にすることができる。またストロークとフィルの色は単一色だけでなく頂点カラーで指定することもできる。頂点カラーで指定する場合はシーン内に大量のマテリアルを作成する必要性が低くなる。
Grease Pencilは前後の参照フレームを表示するためのOnion Skinning機能を有している。また、フレーム補間(interpolation)機能も有しており、セルアニメにおける中割り(動画工程)を自動で行うことが可能となっている[4]。
Grease Pencil オブジェクトはメッシュやライトなどのように単独のオブジェクトであるため、3D空間に配置され移動や撮影が可能である。また視覚エフェクト(Visual Effect)機能も有しており、透過光(グロー)などの撮影処理がリアルタイムに可能となっている。
Blender 2.93以降のGrease Pencilはベクター画像のSVG形式およびPDF形式での出力に対応している。出力した画像または動画はAcrobat Reader、Inkscape、Krita、Adobe Illustrator、Photoshop、Toon Boom Harmonyなど様々なソフトウェアで取り扱うことが可能となっている[35]。
ツール毎に独自の操作ウィジェットを持つポリゴンモデリング機能、カーブモデリング機能、非破壊で様々な効果を加えるモディファイア機能、高度なスカルプトモデリング機能などを備えている。ポリゴンモデリングでは複数オブジェクトの同時編集に対応している。
またモデリング用として、様々な有償・無償アドオンが存在する。
名称 | 効果 |
---|---|
押し出し | フリー、または軸に沿って面や点などを押し出す。 |
面を差し込む | 選択した面に新しい面を挿入する。 |
ベベル | 選択物を一定の角度でカットし、斜面や溝を作成する。 |
ループカット | オブジェクトに一周辺を入れる。 |
ナイフ | メッシュに切り込みを入れる。 |
ポリビルド | 頂点の編集や面の作成などができる。 |
スピン | 円を描くように選択した頂点を押し出す。 |
スムーズ | 選択した頂点の角度を滑らかにする。 |
辺をスライド | 辺をスライドする。 |
縮小/膨張 | 選択した点を法線に沿って拡大縮小する。 |
せん断 | 画面の水平方向に選択物をせん断する。 |
領域リップ | ポリゴンを引き裂き、移動する。 |
スカルプトモードが搭載されており、形状をスカルプトして有機的な形状を作成できる。タブレット入力に対応しており、筆圧に応じたスカルプトが可能となる(傾きには未対応)。スカルプトモデリング用のテンプレートも搭載されている。
直感的に布の物理演算を行うことができるSculpt Cloth機能もある[17]。2.91でプラスチックのような可塑性に対応した。
スカルプトしたジオメトリをアニメーションで使いやすくするリトポロジでは、手動リトポロジに必要なメッシュ編集機能(ポリビルドなど)とオートリトポロジ機能が搭載されている。
高度な手動リトポロジにはRetopoflowアドオンなどが必要となる。2022年現在、Blenderでは専用のリトポロジモードが開発中となっている (D14035)。
モディファイア機能が搭載されており、オブジェクトに対する様々な非破壊的変形が可能となっている。特にその中の一つGeometry Nodesモディファイアはノードベースのプロシージャルモデリングを行うことが可能である。2.93以降はプロシージャルモデリングに特化したGeometry Nodesワークスペースが搭載されており、SpreadsheetによるGeometry Nodesのデバッグが可能となっている。
4.0以降はGeometry Nodesによる破壊的な編集ツールの作成も可能となっている (Node-based Tools)。
また外部アドオンにはノードベースでプロシージャルモデリング/アニメーションが可能なSverchokアドオン、Sorcarアドオン、Animation Nodesアドオンもある。
3.3以降、ヘアはCurvesオブジェクトとして実装されている。Curvesオブジェクトは編集モード及びスカルプトモードによって破壊編集が、Geometry Nodesによって非破壊編集が可能となっている。3.5以降はヘア向けに様々なノードアセットが付属している。
また旧来のヘアパーティクルも実装されており、そちらはパーティクルシステムモディファイアの入ったオブジェクトのパーティクル編集モードによって編集が可能となっている。
ヘアのリアルタイムレンダリング(ビューポート表示)にも対応しているが、リアルタイムのEEVEEはまだヘアシェーダ未対応となっている[36]。
UV編集では自動展開、ライブ展開、UVスカルプトなどに対応している。また単一UVマップだけでなく、マルチタイルUVマップ(UDIM)の編集にも対応している。3.3以降はGeometry NodesからもUV展開が可能となっている (UV Unwrap Node)[37]。
UVの機能を強化するアドオンのMagic UVが搭載されている。
リアルタイムレンダラーのEEVEEやインタラクティブレンダリング可能なパストレースレンダラーのCyclesが搭載されており高速なルックデブが可能となっている。
シェーダーでは各種物理ベースシェーダーのほか、ノードベースでのシェーダー作成や、Open Shading Languageによるテキストベースのシェーダー作成も可能となっている。
基本的な3Dペイント機能が搭載されている。2022年現在、高度なテクスチャリング機能の開発が計画されている[38]。
Blender には独自のファイルブラウザ及び各種インポーター/エクスポーターが搭載されている。Blender 3.0以降はアセットシステム及びアセットブラウザも搭載されている。アセットブラウザではアセットのドラッグ&ドロップが可能。
拡張子 | .blend |
---|---|
開発者 | Blender Foundation |
種別 | 3Dシーン形式 |
Blenderのネイティブ形式は独自の .blend 形式となっている。.blend 形式ではバージョンによって細かな仕様が異なっているものの、変換などによりなるべくバージョン間の互換性が確保されるようになっている。3.0で標準圧縮方式がgzipからZstandard(Zstd)へと変更され、それ以前のBlenderとの後方互換にはファイルの解凍が必要となった[39]。
.blend 形式にはUIの状態、各種データブロック(シーンやオブジェクトやマテリアルなど)、埋め込みファイル(テキストやテクスチャなど)の情報を含んでいる。また3.0以降は任意のデータブロックをアセット化して説明やタグ付けすることが可能となっている。なお.blend 形式では単独シーンだけでなく複数のシーンを含むことができる。
Blenderでは外部 .blend ファイルに含まれている任意のデータブロックを個別に追加またはリンクすることが可能となっている。ライブラリオーバーライドにも対応しており[40]、リンクしたデータブロックの任意のパラメータの上書きが可能となっている。
ファイルのインポート及びエクスポートではオートデスクのFBX形式、クロノス・グループのCOLLADA (.dae) 形式およびglTF形式、PixarのUniversal Scene Description (USD) 形式などの代表的な3Dシーン及びモデル形式、OBJ形式やSTL形式やPLY形式などの昔ながらの3Dオブジェクト形式、ジオメトリキャッシュのAlembic形式(.abc)の読み込み及び書き出しが可能となっている。一部の形式はPythonで実装されているため低速となっており、高速化のためにネイティブでの再実装が進行中となっている[注 7]。また一部の形式では複数ファイルの同時インポートにも対応している[注 8]。
CADファイルのインポートではDXF形式を入出力するためのAutoCAD DXFアドオンが、化学ファイル形式のインポートではPDB形式及びXYZ形式を読み込むためのAtomic Blenderアドオンが搭載されている。
外部アドオンには建物情報モデル (BIM)で使われるIFC形式などを入出力するためのBlenderBIMアドオン、地理情報システム(GIS)で使われるGeoTIFF形式などを読み込むためのBlenderGISアドオン、写真測量で使われる形式を読み込むためのblender-photogrammetryアドオン[42]やBlender-Addon-Photogrammetry-Importerアドオン[43]もある。
テクスチャ画像ではOpenEXR形式、DDS形式、Photoshop PSD形式を始めとする様々な画像形式の読み込みに対応している。
また動画や音声ではFFmpegのライブラリを使用しているため、様々なフォーマットやコーデックの動画や音声の読み込みが可能となっている。
Blenderではヘアパーティクル機能を使うことでオブジェクトのスキャッタリングが可能となっている[44]。また2.92以降はGeometry Nodesが搭載され、それによってノードベースのオブジェクトのスキャッタリングも可能となった[45]。
2022年現在ライティングワークスペースは搭載されていないものの、実写合成向けでは階層化可能なオブジェクトのコレクションでレンダリングの制御が可能となっており[注 9]、アウトライナー上で可視性、マスキング(ホールドアウト)、直接光除去(間接光のみ)の制御が可能となっている。
3.2以降、オブジェクトとそれを照らすライトを紐付けるLight Groupsに対応し、4.0以降、Light Linking及びShadow Linkingに対応した。
単純なアニメーション、Python式を使った連動アニメーション (ドライバー[注 10])、スケルタルアニメーション (ボーンアニメーション)などに対応している。
スケルタルアニメーションではフォワード・キネマティクス (FK・順運動学)、インバース・キネマティクス (IK・逆運動学)の両方に対応している。IKソルバーにはBlender独自のものとiTaSCベースのもの[46]が搭載されている。ジョイント・コンストレイントを含む様々な拘束が可能。
3.0以降、ジオメトリノードに文字列操作ノードや、文字列からカーブへの変換ノードが用意されている。
シミュレーションにはBulletベースの剛体シミュレーション[47]、独自の布・軟体・ヘアシミュレーション、Mantaflowベースの流体シミュレーション (液体・気体)[48]などが搭載されている。
レンダリングエンジンの項で詳述
ノードベースのコンポジット機能を搭載しており、様々な画像処理が可能となっている。ディープコンポジティングには対応していないが、Cryptomatteには対応している。
OpenCLによるGPU処理によってニアリアルタイムなコンポジットが既に可能となっているが、2022年現在ビューポートでコンポジット結果をリアルタイム表示する機能も開発中となっている。
また、2D/3Dモーショントラッキング、ロトスコープなどのVFXに必要となる機能及びVFXテンプレートも搭載されている。
BlenderはPythonスクリプトを使用してエディタやオペレーターを拡張することができる。標準ワークスペースにはPythonスクリプトを編集するためのScriptingワークスペースが用意されている[49]。
Scriptingワークスペースには構文強調や閉じ括弧補完(3.1以降)に対応したテキストエディタ、Pythonコンソール、操作ログなどが用意されている。
コードの自動補完には標準で未対応であり、Intellisense for Blender Text Editorアドオンなどを入れる必要がある。
PyCharmやEclipse/PyDevなどの外部エディタを使ってPythonスクリプトを編集することも可能となっている。この場合、コードの自動補完にはfake-bpy-moduleなどの外部モジュールを使う必要がある[50]。またリモートデバッグにはremote_debugger.pyなどが必要となる[51]。
なお、Blenderは7割前後のコードがC言語で書かれており2割前後のコードがC++で書かれている[52]ものの、C言語やC++でアドオンを作成するため機構やSDKは用意されていない。PythonからC/C++で書かれたダイナミックライブラリを呼び出し、as_pointer()メンバ関数で主要構造体のポインターを取得しダイナミックライブラリ側へと渡すことは可能[53]なものの、構造体の定義などは自前で行う必要がある。
動画編集用の Video Sequence Editor (VSE) 機能およびVideo Editingテンプレートが搭載されている。プロキシ編集に対応している。また3.0以降はタイムラインの動画サムネイル表示や変形ツールが搭載されている。
動画編集を強化するアドオンのBlender Power Sequencerも付属している。様々なタイムライン形式を読み込むためにはオープンソースのVSE IOアドオンが必要となる[54]。
3Dプリントに向けて編集モードのMesh Analysisオーバーレイ[55]や3D-Print Toolboxアドオン[56]などのメッシュ解析・クリーンアップ機能が搭載されている。ただし直接3D印刷を行うことは出来ない。
Workbenchはビューポート向けの作業用レンダラーであり、Eeveeは高度なリアルタイムレンダラーとなっている。CyclesはGPU(及びそれに搭載するレイトレーシングアクセラレータ)対応のパストレーシングレンダラーであり、オフラインレンダリング向けとなっている。これらレンダラーはビューポート上のプレビュー表示でも使うことが出来る。
CyclesとEeveeの間にはレンダリング手法が異なることもあり、マテリアルなどの非互換性が多少存在する[57][36][58]。
機能 | Workbench | EEVEE | Cycles | |
---|---|---|---|---|
基本アルゴリズム | ラスタライズ | ラスタライズ[58] | パストレーシング[58] | |
レンダリングモデル | 非物理的 | 物理的 | ||
速度 | リアルタイム | リアルタイム / ニアリアルタイム | インタラクティブ / オフライン | |
CPUレンダリング対応 | 不可能ではない[注 11] | Yes | ||
GPUレンダリング対応 | Windows / Linux | OpenGL経由 (Vulkan対応予定) | CUDA (NVIDIA)/HIP (AMD)[59]/SYCL (Intel)対応[注 12] | |
macOS | Metal経由[注 13] | Metal対応 (macOS 12以降)[60] | ||
CPU+GPUハイブリッドレンダリング対応 | No | No | Yes | |
レイトレーシングアクセラレータ対応[注 14] | Windows / Linux | No | No | OptiX (NVIDIA)、HIP-RT (AMD)、oneAPI (Intel) |
macOS | No | No | Metal RT対応 (macOS 12以降) | |
環境遮蔽 (AO) | No | スクリーン空間[58] (GTAO[61]) | 3D空間[58] | |
大域照明 | No | ライトプローブ[58] | 単方向パストレーシング / パスガイディング(CPUレンダリングのみ[62])[注 15] | |
反射 / 屈折 | No | スクリーン空間反射 (SSR) / 反射プローブ[57][58] | ||
影 | シャドウボリューム | Cascaded Shadow Map / Contact Shadows | ||
表面下散乱 | No | Separable Subsurface Scattering (スクリーン空間[57]) | パストレースSSS (Random Walk方式) / 拡散モデル | |
異方性反射 | No | No[36] | Yes | |
ヘア / ファー | No | ヘアシェーダ未対応[36] | Chiangモデル[63] / Huangモデル(4.0以降) | |
ボリュームの多重散乱 | No | No[57] | Yes | |
カスタムシェーダー | No | No | Open Shading Language | |
ディスプレイスメント(変位) | No | No[36] | Yes | |
コースティクス | No | No | Yes (MNEEにも対応) | |
魚眼 / パノラマレンズ | No | No[57] | Yes | |
被写界深度 (DOF) | Bokeh DOF[64] | Diaphragm DOF[65] | 正確[58] | |
モーションブラー | No | Accumulation Motion Blur / Post-Process Blur[66] | 3Dモーションブラー | |
アンチエイリアス | SMAA / TAA | 時間的アンチエイリアス (TAA)[67] | ピクセルフィルター | |
AOV出力 | No | 2.92以降 | Yes | |
Cryptomatte出力 | No | 2.92以降 | Yes |
なお、過去のレンダラーにはスキャンライン/レイトレーシングハイブリッドレンダラーのBlender Internalが存在した。Blender Internalはバージョン2.8で削除された。
開発元 | Blender Foundation |
---|---|
最新版 |
3.4.0
/ 2022年12月7日 |
リポジトリ |
developer.blender.org/diffusion/C/ (独立版) developer.blender.org/diffusion/B/browse/master/intern/cycles/ (内蔵版) |
プログラミング 言語 | C++[注 16]、CUDA、HIP[注 17] |
対応OS | Windows、macOS、Linux、FreeBSD |
プラットフォーム | クロスプラットフォーム |
種別 | 3Dレンダラー |
ライセンス | Apache License 2.0 |
公式サイト |
developer |
Blender 2.61以降に付属しているオープンソースのパストレーシングレンダリングエンジン。3.0でCycles Xが統合され高速化されている。Blender本体から半独立しており、Blender以外のソフトウェアにも使われるようになっている:
レンダリングアルゴリズムは単方向パストレーシングに対応している[注 18]。テクスチャベイクも可能となっている。
GPUレンダリングではCPUメモリの使用が可能であり、速度の低下はあるもののGPUのVRAM容量を越える大きなシーンのレンダリングが可能となっている[62]。
レンダーファームを作成することも可能だが、ネットワークレンダリングや分散レンダリング(Distributed Rendering)には標準で未対応となっている。
また実験的機能として適応細分割 (Adaptive subdivision)が存在する[71]
リアルタイムPBRレンダラー。バージョン2.8から付属。
ビューポート用のレンダリングエンジン
開発元 | UPBGE team |
---|---|
最新版 |
0.30
/ 2021年12月4日 |
リポジトリ |
github |
プログラミング 言語 | C、C++、Python |
対応OS | Windows、macOS、Linux、FreeBSD |
プラットフォーム | クロスプラットフォーム |
種別 | ゲームエンジン、ゲームエディター |
ライセンス | GPL 3.0 |
公式サイト |
upbge |
2.7xまではゲームエンジン機能を内蔵しており、ロジックノードやPythonスクリプトを利用することでインタラクティブなコンテンツを制作することが可能であった。またゲームエンジンを動かしてその動きをキーフレームへと焼き付けることも可能であった(Record Animation機能)。
2.8ではゲームエンジン機能が一旦削除されたものの、外部プロジェクトとして旧来のゲームエンジンを維持した派生版のUPBGEが開発され続けている。UPBGEではEEVEEレンダラーなどの新しいBlenderの機能を使うことが可能となっている。
また、本家でも今後インタラクティブモードが再度追加される予定となっている。
開発元 | Blender Foundation |
---|---|
初版 | 2018年8月10日[72][73] |
最新版 |
3.4
/ 2022年12月7日[74] |
リポジトリ | git.blender.org/gitweb/gitweb.cgi/blender-open-data.git |
プログラミング 言語 | C、C++、Python |
対応OS | Windows、macOS、Linux |
プラットフォーム | クロスプラットフォーム |
種別 | ベンチマーク |
ライセンス | GNU General Public License (テストシーンはCC0)[72] |
公式サイト |
opendata |
BlenderのCyclesレンダラー用のベンチマークツールとしてBlender Benchmarkが用意されており、これによりシーンのレンダリングにかかる時間を計測することができる。計測データのアップロードにも対応しており、アップロードされたデータはBlender公式のOpen Dataサイトで閲覧可能となっている[72]。
3.0時点でベンチマークに使われる標準シーンは以下の3つとなっている[74]:
Blenderには独立したPython環境が搭載されており、Python言語を使用して独自のスクリプトや拡張アドオンを作成することが可能となっている。
BlenderのPython環境には標準で数学モジュールのNumPy[75]/mathutils/bl_mathや、低レイヤーグラフィクスモジュールのgpu/gpu_extras(及び非推奨のbgl)、アプリケーションモジュールのbpyなどが搭載されている[76]。それ以外の拡張モジュールを使うためにはpipなどを使って外部パッケージをBlenderのPython環境にインストールする必要がある。
BlenderのPython APIではアプリケーション情報にbpy.app経由でアクセスする[77]。
import bpy
print(bpy.app.version_string) # Blenderのバージョンを表示
開いているファイルの全データにはbpy.data経由でアクセスし、操作中のデータにはbpy.context経由でアクセスする。データの変更はbpy.msgbusで受け取ることが可能。
import bpy
print(bpy.data.objects['Cube'].location) # 'Cube'オブジェクトの位置を表示
print(bpy.context.active_object.rotation_euler) # 選択中のオブジェクトのオイラー角を表示
オペレータの実行はbpy.ops経由で行う。
import bpy
bpy.ops.transform.resize(value=(2, 2, 2)) # 選択中のオブジェクトを二倍に拡大
オペレータは自前で追加することも可能である。
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 Foundation(Tyler Alden Gubalaより移管[78]) |
---|---|
初版 | 2.82 / 2020年6月24日[79] |
最新版 |
3.5.0
/ 2023年3月30日 |
リポジトリ |
git |
プログラミング 言語 | C、C++、Python |
対応OS | Windows、macOS、Linux |
プラットフォーム | クロスプラットフォーム |
種別 | Pythonモジュール |
ライセンス | GNU General Public License |
公式サイト |
pypi |
Blenderを用いたスクリプトをUI無しで使うことも可能となっている[81]。この場合は以下のコマンドを使う必要がある[81]:
blender [ファイル名.blend] --background --python スクリプト名.py
またBlenderのAPIを通常のPython環境で使うための Blender as a Python Module も存在し[82]、pip経由でのインストール(コマンド:pip install bpy)が可能となっている(3.4で公式化)。このモジュールを使う場合は以下のように通常のPythonからの実行が可能となる:
python スクリプト名.py [引数]
一からシーンを構築してレンダリングするスクリプトの例:
import bpy
bpy.ops.wm.read_factory_settings(use_empty=True) # 真っ新な環境にする
bpy.ops.import_scene.obj(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 モジュールの後継に当たる[83]。この BAT も pip からのインストールが可能となっている (pip install blender-asset-tracer)。
バージョン2.5系列ではほぼ全機能の近代化改修、ブラッシュアップが行われ、2011年4月に初の安定版2.5.7がリリースされた[84]。
バージョン2.6系列では、2.61においてカメラトラッキング等、他のハイエンドツールにも匹敵する機能を追加した
2.4x以前はAmigaの面影を残した略語多用のインターフェースとなっていたが、開発版の2.5xでUIが一新されて近代化されていき、安定版の2.6で一応の完成を見たものの、ショートカット主体の操作などはそのままとなっていた。
その後、2.8でウィジェットやワークスペースが導入されたほか左クリックでの選択が標準となり、2.81で円形メニューが導入された。
Blender 2.10でPython APIが導入され[85]、Blender 2.5xでPython 3系へと移行して新たなPython API「bpy」が導入され[86][87]、Blender 2.62でPython APIの行列が行優先から列優先 へと変更された[88]。
2.63でメッシュ構造が多角形ポリゴン (Ngon) に対応するBMeshへと移行された[85]。2.80でほぼ全ての操作が複数オブジェクトの同時編集 (Multi-Object Editing) に対応した[89]。また2.80でリグなどが循環依存しにくくなる再設計された依存グラフが導入され[90]、2.81で汎用的な外部データのオーバーライド編集のためのLibrary Overridesが導入され、3.0でLibrary Overridesがキャラクターアニメーション限定だった旧来のプロキシを完全に置き換えた[40][91]。
3.xで内部メッシュ形式が大きく変更され、頂点・エッジ・ポリゴンの各種属性が配列構造体 (Structure of arrays) 形式のジェネリックアトリビュート(Mesh.attributes)へと移された。
Blenderの内部ラスタライズレンダラーはもともとBlender Internalと呼ばれていたが、2.32でそれがオーバーホールされ[85]レイトレーシングにも対応するようになった[92]。また内蔵ビューポートは2.48でGLSLシェーダー用いたレンダリングに対応した[85]。
また2.32では外部レイトレーシングレンダラーYafRayの統合のベータ版が提供され[92]、2.34でそれが安定版となった[85]。その後もBlenderと共に使う外部レンダラーではYafrayが人気となっていた[93]が、Blender 2.61では新たなパストレーシングレンダラーのCyclesが搭載され[85]、Yafrayに代わってCyclesが人気となっていった。
その後、2.79でCyclesに物理ベースシェーダーが導入され[85]、次いで2.80にはリアルタイム物理レンダラーのEEVEE[85]及び作業用ビューポートレンダラーのWorkbenchが導入され、旧来の非物理ベースのBlender Internal及びGLSLビューポートは廃止された。
3.0ではCyclesの次世代版として高速なCyclesXが導入された。4.0ではWorkbenchの次世代版であるWorkbench nextが導入予定となっている。また同4.0ではUSDのHydraレンダーデリゲート経由でのレンダリングに対応し、USDのリアルタイムレンダラーであるHydra Storm用のアドオンも搭載された。
また2023年現在、EEVEEの次世代版であるEEVEE Nextが開発中となっている。
2004年の2.33より、物理ライブラリのライセンス問題でオープンソース化後に取り外されていたゲームエンジンが再統合された。2.8ではゲームエンジン機能が一旦削除され、その機能は外部プロジェクトのUPBGEが維持することとなった(#ゲームエンジン (UPBGE) 参照)。
Blenderでは長らく国際化の不十分な内蔵フォント[注 19]が搭載されていた(外部フォントは使用可能だった)が、2.60以降は非西洋言語にも対応するインターナショナルフォント[注 20]が搭載されている[95]。その後、3.3でフォントフォールバックに対応し[37]、3.4でより包括的なフォント「Noto Sans」が導入された。
また、日本語環境は2.49aより前までは貧弱だったが、2.49bにて2ちゃんねるのBlenderスレッドの有志が制作・配布した詳細な日本語翻訳テーブルが公式採用された事で強化された。その後、バージョン2.5系列で国際化がなくなり日本語環境での使用はできなくなっていたが、GSoC2011にて国際化され、平行して有志により再び日本語対応が行われ、バージョン2.60にて公式に日本語環境が復活した。
翻訳作業は公式が配布するi18nアドオンで行う[96]。
Blenderの前身であるTracesは、オランダのCGスタジオ、NEOGEO社の共同創設者の一人であるトン・ローセンダール (Ton Roosendaal) によって、AmigaOS向けのレイトレーシングレンダラーとして開発され、後にSGI IRIXへと移植された。その後、Tracesのソースコードは書き直されて、Blenderとなった。
1998年、トン・ローセンダールはインハウス・ツールとして使用されてきたBlenderの開発・外販を行う為にNot a Number Technologies (NaN)社を設立した。Windows版も用意され、ラジオシティ機能などを実装した有料版と無料版の二種を展開した。
2001年、NaN社は、Web3Dに向けて、Blender Webプラグインのベータ版をリリースした[97]が、セキュリティの問題から頓挫した。2002年、インターネット・バブルの崩壊と共にNaN社は倒産し、Blenderのソースコードは債権者の手に渡ってしまう。しかし開発途上にあったBlenderを手放すことができなかったトン・ローセンダールはBlender Foundationを設立するため、"ソースコード解放"を合言葉に大々的な募金キャンペーンを行い半年で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 を立ち上げ[98]、その開発基金は同2011年にコンポジットのOpenCL対応、パーティクルノード、スカルプティングモデリング改善への支援を行った[99](パーティクルノードは2022年現在未マージ)。また2011年には新たにカメラトラッキング機能を搭載したBlender 2.61がリリースされ、翌2012年には Blender Institute が実写合成を用いたオープンVFX映画「Tears of Steel」の制作を行った。
2014年末、Blender Foundation Development Fund 及び Blender Institute は18個の開発プロジェクトを公表し[100]、後のバージョンに搭載されることとなる大きな機能の実装が開始された。
2015年、Blender 2.73 で注釈機能であった Grease Pencil 機能が強化されて2Dアニメーションが可能となり[101]、その後も Grease Pencil V2 が登場するなど2Dアニメーション機能が強化されていった。2018年には Blender Institute がオープン映画として3D技術を用いた 2Dアニメの「HERO」を制作した[102]。
一方、2018年6月にはYoutubeによってBlenderの使用方法を解説する動画がブロックされ、広告付きでの公開を要求された。これをBlender Foundationが拒否したところ、次々と他のBlenderチャンネルの動画がブロックされる事態となった。ローセンダールは抗議動画をYoutubeにアップロードし、それまでの動画をBlender cloudに移行することとした。[103]
また、バージョン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 の嚆矢となるジオメトリノード[45]、リンクしたアセットのオーバーライド編集のためのライブラリオーバーライド、リアルタイムなエッジレンダリング (LineArt) などの機能が搭載された。その後、バージョン2.9系は2021年リリースのバージョン2.93をもって凍結された。
2021年12月にはバージョン3.0がリリースされてアセット管理システムやレンダラーの高速化 (Cycles X)などが搭載された。また2023年リリースの3.5ではリアルタイム3Dのバックエンドとして既存のOpenGL APIに加えてAppleのMetal APIにも対応した[104]。今後はVulkanへの対応も計画されている。
Blender財団の主な収入源は寄付であり、一般ユーザーでも6ドルから寄付できる[105]。
2019年7月、Unreal Engineの開発元のEpic Gamesが epic mega grant において、120万ドルを支援することを発表した[106]。
2020年8月、Unity開発元の Unity Technologiesは、Patronメンバーとして支援を表明した。
2020年11月、Spark ARを擁するFacebookは、Patronメンバーとして基金への参加を表明した[107]。
2020年12月、Amazon Web ServicesのThe Creative Team ジェネラルマネージャーであるKyle Rocheは、AWSがPatronメンバーとして今後最低3年間支援していくことを表明した。発表では特にキャラクターアニメーションを強化する前提での支援である旨が強調されている[108][109]。
企業メンバーはblenderチームの戦略会議に出席したり、ロードマップ、優先度の決定に参画することができる[110]。
メンバーシップ | 費用(ユーロ) | 特典 |
---|---|---|
Bronze | 6,000 | 開発者1人月 |
Silver | 12,000 | 開発者2人月 |
Gold | 30,000 | 開発者6人月 |
Patron | 120,000 | 開発者12人月以上 |
Patron | Corporate Gold | Corporate Silver |
---|---|---|
|
|
URL |
cloud |
---|---|
タイプ | 共有・管理 |
現在の状態 | 活発 |
Blender CloudはBlender Institute が運営する有料ウェブサービスである[111]。Blender Cloudアドオンも公開されており、Blender内から機能の一部を利用できる。月額の利用料は9.9ユーロ。
2020年12月から2021年の10月まで継続してBlender Cloudに加入すると、Blender Studioの新作オープンプロジェクトである、Sprite Frightのエンドロールに名前がクレジットされるキャンペーンが行われている[112]
以下のサービスが利用できる
BforartistsはUIの改良に焦点を当てたBlenderの派生版である[113]。多数のアイコンの追加などが行われている[113]。
開発元 | Blender Animation Studio |
---|---|
リポジトリ |
git |
プログラミング 言語 | Python、JavaScript、Sass |
対応OS | Linux |
種別 | プロダクション/タスク管理 |
ライセンス | GNU General Public License |
公式サイト |
attract |
AttractはWebベースのプロダクション/タスク管理ツールである[114][115]。元々Tears of Steelのために作られ、その後も改良が続いている[115]。
Blender Cloudに統合されており、Blender Cloudアドオンから使用することが出来る[116]。
Attractを使って作られたムービーには以下がある:
なお Sprite Fright 以降のオープンムービーは Attract の代わりに Kitsu が使われており[118]、その制作で使われた Blender 用アドオンの Blender Kitsu が提供されている[119]。
開発元 | Blender Institute |
---|---|
最新版 |
3.0
/ 2022年9月12日 |
リポジトリ |
git |
プログラミング 言語 | Go、Python、JavaScript |
対応OS | Windows、Linux、macOS |
種別 | レンダーファーム管理 |
ライセンス | GNU General Public License |
公式サイト |
flamenco |
Flamencoは小規模チームに向けたWebベースのレンダーファーム管理ツールである[115][120]。Blender向けのジョブ投入用アドオンも用意されている。
以前は複数拠点レンダリングに対応していた[115]。3.0で1から書き直され[120]、単純化されたためオフラインでも動作するようになった[120]。
開発元 | BNPR |
---|---|
リポジトリ |
github |
プログラミング 言語 | Python |
種別 | 非写実的レンダラー |
ライセンス | MITライセンス |
公式サイト |
www![]() |
開発元 | BNPR |
---|---|
最新評価版 |
v1.0.0-beta.3
/ 2022年9月8日 |
リポジトリ |
github |
プログラミング 言語 | Python、C++、C言語 |
対応OS | Windows、Linux |
プラットフォーム | Blender |
種別 | 非写実的レンダラー |
ライセンス | MITライセンス |
公式サイト |
malt3d |
BEER (Blender Extended Expressive Renderer) 及びそのバックエンドの Malt は BNPR(Blender NPRコミュニティ)によって開発されたBlender用の非写実的レンダラーの一つである[121]。Malt はGLSL言語の表現に近いビジュアルプログラミングを採用している。どちらもオープンソースで実装されている。