Windows で Blender 最新版の bpy をソースコードからビルドして、インストールする(Build Tools for Visual Studio を利用)(書きかけ)
https://wiki.blender.org/wiki/Building_Blender/Windowsの手順に従う
【目次】
Blender および関連ライブラリの利用条件などは、利用者が確認すること。
【サイト内の関連ページ】
- Windows の種々のソフトウェアのインストール(目次): 別ページ »にまとめ
- 3次元コンピュータグラフィックスのソフト Blender 2.79b のインストール(Windows 上)
- Windows での Blender,Blender の Python モジュールのインストール(ソースコード,Build Tools for Visual Studio を使用を使用)
謝辞:このWebページで紹介するBlenderソフトウェアの作者に感謝します
前準備
Python 3.12 のインストール
インストール済みの場合は実行不要。
管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行する。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要である。
REM Python をシステム領域にインストール
winget install --scope machine --id Python.Python.3.12 -e --silent
REM Python のパス設定
set "PYTHON_PATH=C:\Program Files\Python312"
set "PYTHON_SCRIPTS_PATH=C:\Program Files\Python312\Scripts"
echo "%PATH%" | find /i "%PYTHON_PATH%" >nul
if errorlevel 1 setx PATH "%PATH%;%PYTHON_PATH%" /M >nul
echo "%PATH%" | find /i "%PYTHON_SCRIPTS_PATH%" >nul
if errorlevel 1 setx PATH "%PATH%;%PYTHON_SCRIPTS_PATH%" /M >nul
【関連する外部ページ】
Python の公式ページ: https://www.python.org/
AI エディタ Windsurf のインストール
Pythonプログラムの編集・実行には、AI エディタの利用を推奨する。ここでは,Windsurfのインストールを説明する。
管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行して、Windsurfをシステム全体にインストールする。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要となる。
winget install --scope machine Codeium.Windsurf -e --silent
【関連する外部ページ】
Windsurf の公式ページ: https://windsurf.com/
Gitのインストール
管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行する。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要となる。
REM Git をシステム領域にインストール
winget install --scope machine --id Git.Git -e --silent
REM Git のパス設定
set "GIT_PATH=C:\Program Files\Git\cmd"
if exist "%GIT_PATH%" (
echo "%PATH%" | find /i "%GIT_PATH%" >nul
if errorlevel 1 setx PATH "%PATH%;%GIT_PATH%" /M >nul
)
CMakeのインストール
管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行する。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要となる。
REM CMake をシステム領域にインストール
winget install --scope machine --id Kitware.CMake -e --silent
REM CMake のパス設定
set "GMAKE_PATH=C:\Program Files\CMake\bin"
if exist "%GMAKE_PATH%" (
echo "%PATH%" | find /i "%GMAKE_PATH%" >nul
if errorlevel 1 setx PATH "%PATH%;%GMAKE_PATH%" /M >nul
)
Visual Studio 2022 Build Toolsとランタイムのインストール
管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)し、以下を実行する。管理者権限は、wingetの--scope machineオプションでシステム全体にソフトウェアをインストールするために必要である。
REM Visual Studio 2022 Build Toolsとランタイムのインストール
winget install --scope machine Microsoft.VisualStudio.2022.BuildTools Microsoft.VCRedist.2015+.x64
set VS_INSTALLER="C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe"
set VS_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools"
REM C++開発ワークロードのインストール
%VS_INSTALLER% modify --installPath %VS_PATH% ^
--add Microsoft.VisualStudio.Workload.VCTools ^
--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ^
--add Microsoft.VisualStudio.Component.Windows11SDK.22621 ^
--includeRecommended --quiet --norestart
NVIDIA ドライバのインストール(Windows 上)
NVIDIA ドライバ
NVIDIA ドライバは,NVIDIA製GPUを動作させるための重要なソフトウェアである.このドライバをインストールすることにより,GPUの性能を引き出すことができ,グラフィックス関連のアプリ,AI関連のアプリの高速化が期待できる.
ドライバはNVIDIA公式サイトである https://www.nvidia.co.jp/Download/index.aspx?lang=jp からダウンロードできる.このサイトからダウンロードするときには,グラフィックスカードとオペレーティングシステムを選択する. なお,NVIDIA GeForce Experiance を用いてインストールすることも可能である.
【サイト内の関連ページ】
- NVIDIA グラフィックス・ボードの確認
Windows で,NVIDIA グラフィックス・ボードの種類を調べたいときは, 次のコマンドを実行することにより調べることができる.
wmic path win32_VideoController get name
- NVIDIA ドライバのダウンロード
NVIDIA ドライバは,以下の NVIDIA 公式サイトからダウンロードできる.
- ダウンロードの際には,使用しているグラフィックス・ボードの型番とオペレーティングシステムを選択する.
NVIDIA CUDA ツールキット 11.8 のインストール(Windows 上)
NVIDIA CUDA ツールキットのインストール時の注意点
NVIDIAのGPUを使用して並列計算を行うためのツールセット
主な機能: GPU を利用した並列処理,GPU のメモリ管理,C++をベースとした拡張言語とAPIとライブラリ
【NVIDIA CUDA ツールキットの動作に必要なもの】
- CUDA対応のNVIDIA GPUが必要.
そのために,NVIDIA グラフィックス・ボードを確認する. Windows で,NVIDIA グラフィックス・ボードの種類を調べたいときは, 次のコマンドを実行することにより調べることができる.
wmic path win32_VideoController get name
- NVIDIA ドライバのダウンロードとインストール
NVIDIA ドライバは,以下の NVIDIA 公式サイトからダウンロードできる. ダウンロードの際には,使用しているグラフィックス・ボードの型番とオペレーティングシステムを選択する.
- Windows では,インストール前に,Build Tools for Visual Studio もしくは Visual Studio をインストールしておくことが必要である.
【Windows でインストールするときの注意点】
- Windows では, NVIDIA CUDA ツールキットのインストール中は,なるべく他のウインドウはすべて閉じておくこと.
- NVIDIA CUDA ツールキットのインストールが終わったら,ユーザ環境変数 TEMP の設定を行う.
Windows のユーザ名が日本語のとき,nvcc がうまく動作しないエラーを回避するためである.
ユーザ環境変数 TEMP に「C:\TEMP」を設定するために, コマンドプロンプトで,次のコマンドを実行する.
mkdir C:\TEMP powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
【関連する外部ページ】
- NVIDIA CUDA ツールキットのアーカイブの公式ページ: https://developer.nvidia.com/cuda-toolkit-archive
- NVIDIA CUDA ツールキット の公式のドキュメント: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
- NVIDIA CUDA ツールキットのインストールに関する,NVIDIA CUDA クイックスタートガイドの公式ページ: https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html
【関連項目】 NVIDIA CUDA ツールキット, NVIDIA CUDA ツールキット 12.6 のインストール(Windows 上), NVIDIA CUDA ツールキット 11.8 のインストール(Windows 上)
- Windows では,NVIDIA CUDA ツールキットのインストール中は,なるべく他のウインドウはすべて閉じておくこと.
- Windows で,管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー >
cmd
と入力 > 右クリック > 「管理者として実行」)。 - 次のコマンドを実行
次のコマンドは,NVIDIA GeForce Experience,NVIDIA CUDA ツールキット 11.8 をインストールするものである.
wmic path win32_VideoController get name winget install --scope machine Nvidia.CUDA --version 11.8 powershell -command "[System.Environment]::SetEnvironmentVariable(\"CUDA_HOME\", \"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\", \"Machine\")"
- NVIDIA CUDA ツールキットのインストールが終わったら,ユーザ環境変数 TEMP の設定を行う.
Windows のユーザ名が日本語のとき,nvcc がうまく動作しないエラーを回避するためである.
ユーザ環境変数 TEMP に「C:\TEMP」を設定するために, コマンドプロンプトで,次のコマンドを実行する.
mkdir C:\TEMP powershell -command "[System.Environment]::SetEnvironmentVariable(\"TEMP\", \"C:\TEMP\", \"User\")"
Windows で Blender 最新版をソースコードからビルドして、インストール
Windows での「Windows での Blender,Blender の Python モジュールのインストール(ソースコード,Build Tools for Visual Studio を使用を使用)」 で説明している.
Blender bpy のインストール(Build Tools for Visual Studio を利用)(Windows 上)
- Visual Studio の x64 Native Tools コマンドプロンプトを起動.
起動は,Windows のメニューで「Visual Studio 20..」の下の「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」を選ぶ.「x64」は,64ビット版の意味である.
「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」がないとき:
C++ ビルドツール (Build Tools) のインストールを行うことで, 「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」がインストールされる.その手順は,別ページ »で説明
- cmake の実行
https://blender.stackexchange.com/questions/117200/how-to-build-blender-as-a-python-module の記述に従う
cmake のオプションの 「Visual Studio 17 2022」のところは, 使用する Visual Studio のバージョンにあわせること. Visual Studio 2022 のときは,「Visual Studio 17 2022」. Visual Studio 2019 のときは,「Visual Studio 16 2019」.
cd /d c:%HOMEPATH% cd blender del CMakeCache.txt rmdir /s /q CMakeFiles\ cd .. rmdir /s /q cmake-make mkdir cmake-make cd cmake-make cmake -G "Visual Studio 17 2022" -A x64 -T host=x64 ^ -DCMAKE_INSTALL_PREFIX="c:\tools\blender" ^ -DWITH_PYTHON_INSTALL=OFF ^ -DWITH_PYTHON_INSTALL_NUMPY=OFF ^ -DWITH_PYTHON_MODULE=ON ^ -DWITH_CYCLES_CUDA_BINARIES=ON ^ ..\blender
- 結果を確認する
- bpy をソースコードからビルドする
- 実行結果の確認
* 下図のとおりになるとは限らない.
* うまくいっていない場合は、設定を変えてやり直す.
以下、書きかけ
- インストールする(書きかけ)
https://blender.stackexchange.com/questions/117200/how-to-build-blender-as-a-python-module の記述に従う
copy %HOMEPATH%\cmake-make\bin\Release\bpy.pyd "c:\Program Files\Python39\Lib" copy %HOMEPATH%\*.dll "c:\Program Files\Python39\Lib" del "c:\Program Files\Python39\Lib\python37.dll" cd /d c:%HOMEPATH%\2.80 xcopy * "c:\Program Files\Python39\Lib /S /E copy %HOMEPATH%\cmake-make\lib\Release\*.lib "c:\Program Files\Python39\Lib" copy %HOMEPATH%\cmake-make\lib\Release\*.exp "c:\Program Files\Python39\Lib"
echo bpy > "c:\Program Files\Python39\Lib\bpy.pth" mkdir "c:\Program Files\Python39\Lib\bpy" copy %HOMEPATH%\cmake-make\bin\Release\bpy.pyd "c:\Program Files\Python39\Lib\bpy" copy %HOMEPATH%\cmake-make\lib\Release\*.lib "c:\Program Files\Python39\Lib\bpy" copy %HOMEPATH%\cmake-make\lib\Release\*.exp "c:\Program Files\Python39\Lib\bpy" del "c:\Program Files\Python39\Lib\python37.dll" cd /d c:%HOMEPATH% xcopy 2.80 c:\tools\Anaconda3site-packages\bpy /S /E rm ${BL_DIR}/python37.dll # 不要なファイルを削除 cp -rp 2.80 ${PY_DIR}
Blender bpy を使ってみる
Python プログラムを動かしたい. そのために, IPython シェルを使う
- Python プログラムの実行
Python プログラムの実行
- Windows では python (Python ランチャーは py)
- Ubuntu では python3
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.
Python のまとめ: 別ページ »にまとめ
python
Blender オブジェクトの確認
import bpy for i in bpy.data.objects: print(i.name)
Blender オブジェクトが確認できる(下の実行結果例では Camera, Cube, Lamp の 3つ)
- 試しに3次元オブジェクト(タイプが「MESH」であるオブジェクト)の一覧表示を行ってみる.
コンソール画面で次を実行
for i in bpy.data.objects: if i.type == "MESH": print(i.name)
- 今度は,Blender 画面の一覧表示を行ってみる.
コンソール画面で次を実行
for i in bpy.data.screens: print(i.name)
画面名が確認できる
- 自動補完(Auto comlete) を試してみる
コンソール画面で「bpy.data.」と入力したあとで、「オートコンプリート (Autocomplete)」をクリック
補完の候補が表示される.
使ってみる
レンダリング
Windows の場合
Windows の場合は,環境変数 HOMEPATH を使うことにする.
* Linux の場合は,「HOMEPATH」の代わりに「HOME」を使う.
import os
bpy.ops.render.render()
bpy.data.images['Render Result'].save_render(filepath = os.environ['HOMEPATH'] + '/hoge.png')
できあがった画像ファイル hoge.png は次の通り.
光源(ランプ)の設定
Pythonスクリプトで光源(ランプ)を設定する
import os
pi = 3.141592
lamp = { "location" : (20, 0, 10), "rotation_euler" : (0, 0.2, 0.4), "falloff_type" : 'INVERSE_LINEAR', "shadow_method" : 'RAY_SHADOW' }
# lamp = { "location" : (20, 20, 10), "rotation_euler" : (0, 0.2, 0.4), "falloff_type" : 'INVERSE_LINEAR', "shadow_method" : 'NOSHADOW' }
lamp_obj = bpy.data.objects['Lamp']
lamp_obj.location = lamp["location"]
lamp_obj.rotation_euler = lamp["rotation_euler"]
lamp_obj.data.falloff_type = lamp["falloff_type"]
lamp_obj.data.shadow_method = lamp["shadow_method"]
bpy.ops.render.render()
bpy.data.images['Render Result'].save_render(filepath = os.environ['HOMEPATH'] + '/hoge.png')
できあがった画像ファイル hoge.png は次の通り.
カメラの設定
Pythonスクリプトでカメラを設定する
pi = 3.141592
camera = { "location" : (15, 0, 15), "rotation_euler" : (0, 1, 0), "type" : 'PERSP', "angle" : 50.0 * (pi/180.0) }
scene = bpy.data.scenes["Scene"]
scene.camera.location = camera["location"]
scene.camera.rotation_euler = camera["rotation_euler"]
scene.camera.data.type = camera["type"]
scene.camera.data.angle = camera["angle"]
bpy.ops.render.render()
bpy.data.images['Render Result'].save_render(filepath = os.environ['HOMEPATH'] + '/hoge.png')
できあがった画像ファイル hoge.png は次の通り.
データアクセスを行う Python プログラム(書きかけ)
【関連する外部ページ】 https://docs.blender.org/api/blender_python_api_2_63_release/bpy.data.html
https://docs.blender.org/api/blender_python_api_2_63_release/bmesh.html
オブジェクトの一覧
for i in bpy.data.objects:
print(i.name)
シーン名の一覧
print(bpy.data.scenes.keys())
3次元オブジェクトのメッシュの取得
if "Cube" in bpy.data.meshes:
mesh = bpy.data.meshes["Cube"]
for i in mesh.edges:
print(i)
for i in mesh.vertices:
print(i)
for i in mesh.polygons:
print(i)
以下,書きかけ