Blender
Blender(ブレンダー)はオープンソースの統合型3DCG製作、2Dアニメーション製作、VFX向けデジタル合成、動画編集ソフトウェアである。
Blenderにはそれぞれの用途に特化したファイルテンプレートが用意されており、3DCGでは3Dモデリング、モーショングラフィックス、アニメーション、シミュレーション、レンダリング、ポストエフェクト(コンポジット内)などの、2Dアニメーションではベクターペイントや中割りや撮影処理などの、VFX向けデジタル合成ではキーイングやロトスコープ(マスキング画面)やマッチムーブなどの、動画編集ではプロキシ編集などの作業が可能となっている。
Blenderは一般的な3DCGソフトウェアと比較すると軽量かつ多機能ながらライセンス料が無料なことから、アマチュア層にも普及している。
操作面ではバージョン2.7x系までは「オブジェクト(個々の3Dモデル)は右クリックで選択」が基本という、他の大半のソフトウェアと異なる点が特徴の一つであったが、バージョン2.8x以降は「左クリックで選択・右クリックでサブメニュー」という、一般的なソフトウェアの操作が標準になっている。
元々ネットワークドライブを使ったファイルの共有は可能となっていた(例えばWindows版ではUNCパス(「\\コンピュータ名\共有フォルダ名」)に対応)。
その後、3.0でアセットブラウザ機能が搭載されアセットの共有が容易となり、3.1でアセットの索引付けが行われるようになってアセット一覧の読み込みが高速化された。
また、マルチユーザー同時操作が可能な外部アドオンのUbisoft MixerアドオンやMulti-userアドオンなども存在している。
BlenderはWindows(バージョン8.1、10、11)、macOS(10.13以上)、Linuxなど複数のOS環境上で動作する (クロスプラットフォーム)。ダウンロード可能なバイナリにはポータブル版 (Windowsでは.zip、Linuxでは.tar.xz) 、インストーラー版、各ストア版(Microsoft Store/Snap Store/Steam)が用意されている。
Blenderはグラフィック向けワークステーションが必要なプロ向けソフトと比較すると負荷が低いため、一般向けのPCにビデオカードを追加する程度で始めることができる。動作には10年未満の新しいハードウェアが推奨されている (下記の最小動作環境参照)。グラフィックカードについてはプロ向けの3DCGソフトウェアで推奨されるNVIDIA Quadroより、ゲーム向けであるNVIDIA GeForceの方が、世代は最新よりも1世代前の方がレンダリングが速いという結果もある。
BlenderのUIは3ボタンマウス及びペンタブレットに最適化されている。2ボタンマウスやトラックパッドでは内蔵の3ボタンエミュレーション機能を使う必要がある。またBlenderは3Dマウス (NDOFデバイス) にも対応している。
2.83以降にはVR表示に対応するVR Scene Inspectionアドオンが搭載されている。この機能にはOpenXR対応のヘッドマウントディスプレイ (HMD) デバイス (OpenXR#対応ハードウェア参照) が必要となる。
3.0以降は入力デバイスによるナビゲーションにも対応したものの、2021年12月現在、オブジェクト操作にはxr-controller-supportブランチが必要となる。
3DCG業界やアニメ業界ではMayaや3ds Maxなどプロ向けのソフトが標準となっているが、近年では機能が強化されたことで利用する動きもある。
アニメ制作会社・カラーと、その子会社であるプロジェクトスタジオQは、従来使用してきた3ds MaxからBlenderへの移行を進めており、2021年7月に公開終了(終映)した『シン・エヴァンゲリオン劇場版:』においてもBlenderの「実地検証」を実施している。また、両社はBlender財団への賛同と開発資金の提供を発表した。
2018年公開のネクスト ロボではblenderが全面的に使用された。
Goodbye Kansa Studioは、Unity の Adam デモ、Walking dead season 8などでblenderを採用した。
Ubisoft Animation Studio は2020年より社内の3Dソフトウェアを全面的にblenderに移行することを表明した。
Blenderは2D/3Dベクターペイント及びアニメーションのための'機能を有している。この機能は直接3D空間内に手描きすることが出来、それに対し3D空間での移動・変形やライティング等を含めた撮影が可能となっている。この機能は3Dモデリングのための下書き、ストーリーボード、手描きアニメーションなどに利用できる。またストロークはリギングできるため、カットアウトアニメーションを作ることも可能となっている。
2Dアニメーションに向けて、2D Animationテンプレートが付属している。またボックス変形、キャンバス回転、ブラシパックのインポートなどに対応するGrease Pencil Toolsアドオンも搭載されている。またストーリーボードの作成用のStorypencilアドオンや外部アドオンのUbisoft Shot Managerもある。
BlenderはPNG形式などのラスタ画像(ビットマップ画像)の入力に対応しており、Grease Pencilはそのラスタ画像をベクター化する画像トレス機能を有している(Potraceベース)。ただし可能なのはアウトライン(輪郭線)化のみであり、線画トレスで使われるセンターライン(中心線)のベクトル化には未対応となっている。
また、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など様々なソフトウェアで取り扱うことが可能となっている。
ツール毎に独自の操作ウィジェットを持つポリゴンモデリング機能、カーブモデリング機能、非破壊で様々な効果を加えるモディファイア機能、高度なスカルプトモデリング機能などを備えている。ポリゴンモデリングでは複数オブジェクトの同時編集に対応している。
またモデリング用として、様々な有償・無償アドオンが存在する。
スカルプトモードが搭載されており、形状をスカルプトして有機的な形状を作成できる。タブレット入力に対応しており、筆圧に応じたスカルプトが可能となる(傾きには未対応)。スカルプトモデリング用のテンプレートも搭載されている。
直感的に布の物理演算を行うことができるSculpt Cloth機能もある。2.91でプラスチックのような可塑性に対応した。
スカルプトしたジオメトリをアニメーションで使いやすくするリトポロジでは、手動リトポロジに必要なメッシュ編集機能(ポリビルドなど)とオートリトポロジ機能が搭載されている。
高度な手動リトポロジにはRetopoflowアドオンなどが必要となる。2022年現在、Blenderでは専用のリトポロジモードが開発中となっている (D14035)。
モディファイア機能が搭載されており、オブジェクトに対する様々な非破壊的変形が可能となっている。特にその中の一つGeometry Nodesモディファイアはノードベースのプロシージャルモデリングを行うことが可能である。2.93以降はプロシージャルモデリングに特化したGeometry Nodesワークスペースが搭載されており、SpreadsheetによるGeometry Nodesのデバッグが可能となっている。
また外部アドオンにはノードベースでプロシージャルモデリング/アニメーションが可能なSverchokアドオン、Sorcarアドオン、Animation Nodesアドオンもある。
3.3以降、ヘアはCurvesオブジェクトとして実装されている。Curvesオブジェクトは編集モード及びスカルプトモードによって破壊編集が、Geometry Nodesによって非破壊編集が可能となっている。3.5以降はヘア向けに様々なノードアセットが付属している。
また旧来のヘアパーティクルも実装されており、そちらはパーティクルシステムモディファイアの入ったオブジェクトのパーティクル編集モードによって編集が可能となっている。
ヘアのリアルタイムレンダリング(ビューポート表示)にも対応しているが、リアルタイムのEEVEEはまだヘアシェーダ未対応となっている。
UV編集では自動展開、ライブ展開、UVスカルプトなどに対応している。また単一UVマップだけでなく、マルチタイルUVマップ(UDIM)の編集にも対応している。3.3以降はGeometry NodesからもUV展開が可能となっている (UV Unwrap Node)。
UVの機能を強化するアドオンのMagic UVが搭載されている。
リアルタイムレンダラーのEEVEEやインタラクティブレンダリング可能なパストレースレンダラーのCyclesが搭載されており高速なルックデブが可能となっている。
シェーダーでは各種物理ベースシェーダーのほか、ノードベースでのシェーダー作成や、Open Shading Languageによるテキストベースのシェーダー作成も可能となっている。
基本的な3Dペイント機能が搭載されている。2022年現在、高度なテクスチャリング機能の開発が計画されている。
Blender には独自のファイルブラウザ及び各種インポーター/エクスポーターが搭載されている。Blender 3.0以降はアセットシステム及びアセットブラウザも搭載されている。アセットブラウザではアセットのドラッグ&ドロップが可能。
.blend 形式
Blenderのネイティブ形式は独自の .blend 形式となっている。.blend 形式ではバージョンによって細かな仕様が異なっているものの、変換などによりなるべくバージョン間の互換性が確保されるようになっている。3.0で標準圧縮方式がgzipからZstandard(Zstd)へと変更され、それ以前のBlenderとの後方互換にはファイルの解凍が必要となった。
.blend 形式にはUIの状態、各種データブロック(シーンやオブジェクトやマテリアルなど)、埋め込みファイル(テキストやテクスチャなど)の情報を含んでいる。また3.0以降は任意のデータブロックをアセット化して説明やタグ付けすることが可能となっている。なお.blend 形式では単独シーンだけでなく複数のシーンを含むことができる。
Blenderでは外部 .blend ファイルに含まれている任意のデータブロックを個別に追加またはリンクすることが可能となっている。ライブラリオーバーライドにも対応しており、リンクしたデータブロックの任意のパラメータの上書きが可能となっている。
ファイルのインポート及びエクスポートではオートデスクのFBX形式、クロノス・グループのCOLLADA (.dae) 形式およびglTF形式、PixarのUniversal Scene Description (USD) 形式などの代表的な3Dシーン及びモデル形式、OBJ形式やSTL形式やPLY形式などの昔ながらの3Dオブジェクト形式、ジオメトリキャッシュのAlembic形式(.abc)の読み込み及び書き出しが可能となっている。一部の形式はPythonで実装されているため低速となっており、高速化のためにネイティブでの再実装が進行中となっているネイティブ実装されている形式にはCOLADDA形式、USD形式、Alembic形式、OBJ形式(エクスポータは3.1以降、インポータは3.2以降)、STL形式(インポータのみ/3.3以降)、PLY形式(3.6以降)などがある。なお2022年現在STL形式のエクスポータとglTF形式とFBX形式はPython実装のみとなっている。。また一部の形式では複数ファイルの同時インポートにも対応しているSTL形式では以前より、OBJ形式では3.4以降。。
CADファイルのインポートではDXF形式を入出力するためのAutoCAD DXFアドオンが、化学ファイル形式のインポートではプロテインデータバンク (ファイル形式)及びXYZファイル形式を読み込むためのAtomic Blenderアドオンが搭載されている。
外部アドオンには建物情報モデル (BIM)で使われるIFC形式などを入出力するための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に対応している。
単純なアニメーション、Python式を使った連動アニメーション (ドライバー)、スケルタルアニメーション (ボーンアニメーション)などに対応している。
スケルタルアニメーションではフォワード・キネマティクス (FK・順運動学)、インバース・キネマティクス (IK・逆運動学)の両方に対応している。IKソルバーにはBlender独自のものとiTaSCベースのものが搭載されている。ジョイント・コンストレイントを含む様々な拘束が可能。
3.0以降、ジオメトリノードに文字列操作ノードや、文字列からカーブへの変換ノードが用意されている。
シミュレーションにはBulletベースの剛体シミュレーション、独自の布・軟体・ヘアシミュレーション、Mantaflowベースの流体シミュレーション (液体・気体)などが搭載されている。
ノードベースのコンポジット機能を搭載しており、様々な画像処理が可能となっている。ディープコンポジティングには対応していないが、Cryptomatteには対応している。
OpenCLによるGPU処理によってニアリアルタイムなコンポジットが既に可能となっているが、2022年現在ビューポートでコンポジット結果をリアルタイム表示する機能も開発中となっている。
また、2D/3Dモーショントラッキング、ロトスコープなどのVFXに必要となる機能及びVFXテンプレートも搭載されている。
BlenderはPythonスクリプトを使用してエディタやオペレーターを拡張することができる。標準ワークスペースにはPythonスクリプトを編集するためのScriptingワークスペースが用意されている。
Scriptingワークスペースには構文強調や閉じ括弧補完(3.1以降)に対応したテキストエディタ、Pythonコンソール、操作ログなどが用意されている。
コードの自動補完には標準で未対応であり、Intellisense for Blender Text Editorアドオンなどを入れる必要がある。
PyCharmやEclipse/PyDevなどの外部エディタを使って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以降はタイムラインの動画サムネイル表示や変形ツールが搭載されている。
動画編集を強化するアドオンのBlender Power Sequencerも付属している。様々なタイムライン形式を読み込むためにはオープンソースのVSE IOアドオンが必要となる。
3Dプリントに向けて編集モードのMesh Analysisオーバーレイや3D-Print Toolboxアドオンなどのメッシュ解析・クリーンアップ機能が搭載されている。ただし直接3D印刷を行うことは出来ない。
Workbenchはビューポート向けの作業用レンダラーであり、Eeveeは高度なリアルタイムレンダラーとなっている。CyclesはGPU(及びそれに搭載するレイトレーシングハードウェア)対応のパストレーシングレンダラーであり、オフラインレンダリング向けとなっている。これらレンダラーはビューポート上のプレビュー表示でも使うことが出来る。
CyclesとEeveeの間にはレンダリング手法が異なることもあり、マテリアルなどの非互換性が多少存在する。
なお、過去のレンダラーにはスキャンライン/レイトレーシングハイブリッドレンダラーのBlender Internalが存在した。Blender Internalはバージョン2.8で削除された。
Cycles Render Engine
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用
レンダリングアルゴリズムは単方向パストレーシングに対応している3.0より前は分岐パストレーシングにも対応していた。。テクスチャベイクも可能となっている。
GPUレンダリングでは外部記憶アルゴリズムが可能であり、速度の低下はあるもののGPUのVRAM容量を越える大きなシーンのレンダリングが可能となっている。
レンダーファームを作成することも可能だが、ネットワークレンダリングや分散レンダリング(Distributed Rendering)には標準で未対応となっている。
また実験的機能として適応細分割 (Adaptive subdivision)が存在する
リアルタイムPBRレンダラー。バージョン2.8から付属。
2.7xまではゲームエンジン機能を内蔵しており、ロジックノードやPythonスクリプトを利用することでインタラクティブなコンテンツを制作することが可能であった。またゲームエンジンを動かしてその動きをキーフレームへと焼き付けることも可能であった(Record Animation機能)。
2.8ではゲームエンジン機能が一旦削除されたものの、外部プロジェクトとして旧来のゲームエンジンを維持した派生版のUPBGEが開発され続けている。UPBGEではEEVEEレンダラーなどの新しいBlenderの機能を使うことが可能となっている。
また、本家でも今後インタラクティブモードが再度追加される予定となっている。
Blender Benchmark
BlenderのCyclesレンダラー用のベンチマークツールとしてBlender Benchmarkが用意されており、これによりシーンのレンダリングにかかる時間を計測することができる。計測データのアップロードにも対応しており、アップロードされたデータはBlender公式のOpen Dataサイトで閲覧可能となっている。
3.0時点でベンチマークに使われる標準シーンは以下の3つとなっている:
Classroom(教室)
Junkshop(ジャンク屋)
Monster(モンスター)
Blenderには独立したPython環境が搭載されており、Python言語を使用して独自のスクリプトや拡張アドオンを作成することが可能となっている。
BlenderのPython環境には標準で数学モジュールのNumPy/mathutils/bl_mathや、低レイヤーグラフィクスモジュールのgpu/gpu_extras(及び非推奨のbgl)、アプリケーションモジュールのbpyなどが搭載されている。それ以外の拡張モジュールを使うためにはpipなどを使って外部パッケージをBlenderのPython環境にインストールする必要がある。
BlenderのPython APIではアプリケーション情報にbpy.app経由でアクセスする。
開いているファイルの全データにはbpy.data経由でアクセスし、操作中のデータにはbpy.context経由でアクセスする。データの変更はbpy.msgbusで受け取ることが可能。
オペレータの実行はbpy.ops経由で行う。
オペレータは自前で追加することも可能である。
Blender as a Python Module
Blender Asset Tracer
Blenderを用いたスクリプトをUI無しで使うことも可能となっている。この場合は以下のコマンドを使う必要がある:
またBlenderのAPIを通常のPython環境で使うための Blender as a Python Module も存在し、pip経由でのインストール(コマンド:pip install bpy)が可能となっている(3.4で公式化)。このモジュールを使う場合は以下のように通常のPythonからの実行が可能となる:
一からシーンを構築してレンダリングするスクリプトの例:
また、Blenderを使わずにBlender形式の中身を読み取るためのPythonモジュール「Blender Asset Tracer (BAT) 」も存在する。 この BAT は Blender Asset Manager 及び blender-file モジュールの後継に当たる。この BAT も pip からのインストールが可能となっている (pip install blender-asset-tracer)。
バージョン2.5系列ではほぼ全機能の近代化改修、ブラッシュアップが行われ、2011年4月に初の安定版2.5.7がリリースされた。
バージョン2.6系列では、2.61においてカメラトラッキング等、他のハイエンドツールにも匹敵する機能を追加した
2.4x以前はAmigaの面影を残した略語多用のインターフェースとなっていたが、開発版の2.5xでUIが一新されて近代化されていき、安定版の2.6で一応の完成を見たものの、ショートカット主体の操作などはそのままとなっていた。
その後、2.8でウィジェットやワークスペースが導入されたほか左クリックでの選択が標準となり、2.81で円形メニューが導入された。
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.xで内部メッシュ形式が大きく変更され、頂点・エッジ・ポリゴンの各種属性がAoSとSoA 形式のジェネリックアトリビュート(Mesh.attributes)へと移された。
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ビューポートは廃止された。