hibitさんが開発されているScript Mapperに、別のカメラスクリプトのカメラパスを読み込めるscriptコマンドを追加した改造版Script Mapper用の、Blenderで作ったカメラパスをCameraPlus用のカメラスクリプトとして出力するBlender用スクリプトです。
2023/12/11追記:本家のScript Mapper Version 1.09もscriptコマンドに対応しました。こちらはV3譜面にも対応しています。
これを使ってScriptmapperで作れないような複雑なカメラワークをBlenderで作って利用できます。
KandyWrongさんが開発されているBlenderからCamera2用のカメラスクリプトを作るBlender2Camera2をCameraPlusフォーマットに変更したものになります。
-
Blenderがインストールされていない人は、ダウンロードしてインストールします。
Blenderのインストール方法、基本的な使い方はWeb上に色々あります。
3Dモデリングソフト「Blender」の操作を0から学べる1,400ページの解説書が無償公開などが、学生の講義用に作られていてわかりやすいです。最新は2021年度版にあります。
第1回概要説明、Blenderの基本操作
だけ読めば、本ツールの作業には支障はありません。また、元ツールのBlender2Camera2のマニュアルのUsing Blenderが英語ですが、本ツールの使い方に集約されており、動画もあるので大変参考になります。
-
Releasesから最新のAssetsの
Source code (zip)
をダウンロードします。※専用のzipファイルは無いのでSource codeでOKです。 -
ダウンロードした
blender2ScriptMapper-****-**-**.zip
を適当なフォルダで解凍します。
-
解凍したblender2ScriptMapperの
template
フォルダにあるtemplate.blend
を作業用にコピー&リネームして適当に保存します。元ツールのBlender2Camera2では、プレイ録画した譜面の動画の音声と静止画分割したファイルを、
template
フォルダにあるaudio
とvideo
フォルダに入れて、Blender上でタイミングを測りながら、カメラパスを作成していく様になっています。本ツールでは、1カットのカメラパスのみ作成して、タイミングの調整などはScriptmapperを使うため、このあたりの作業は飛ばしています。template.blend
とカメラスクリプト出力用のb2sm_export.py
のみあれば作業可能です。 もちろん、最初から最後までBlender上で作ることも可能で、その場合はBlender2Camera2のマニュアル通りに作成してください。Blender2ScriptMapperはBlender2Camera2の出力フォーマットをCameraPlus用に変更しただけなので、それ以外はBlender2Camera2と同様に使えます。 -
リネームした
template.blend
をBlenderで開きます。※.blendファイルをダブルクリックここから先は、Blender2Camera2のUsing the Template Fileの手順と同じです。
-
オブジェクトモード
でModeling
タブにします。右側のシーンコレクション
のPaths
グループのPath1
は不要なので表示を消します。
- 画面の表示を見やすい様に上から表示(表示ツリーのZ軸をクリック)して、
シーンコレクション
のPaths
グループを選択した状態で、メニューの追加
からパス
を追加します。
- 追加された
NURBSパス
を選択した状態で、'G' → 'Y' キーでマウスで前方に移動して、'R' → '90' → Enterで90度回転します。
- 横方向からの視点にするため、表示ツリーの'X'をクリックします。'G' → 'Z' で目線より上に上げて、'G' → 'Y' で少し後方(左)に移動、'R'で少し上方から目線まで斜めにします。
- パスの
編集モード
(NURBSパス
を選択した状態で、'TAB'キー)にします。
- 端の編集点を選択して'E'キーを押すと編集点が追加できます。追加した編集点をCtrlを押しながら移動するとグリッドに乗って調整しやすいです。
- 末端を選択して'E'で追加でどんどんパスを伸ばしていきます。黒い細い線が実際のカメラパスになります。
- 編集点を選択して'G'キーで移動してパスの形状を調整します。
- 横からも見直してパスの編集点を調整します。
Modeling
タブでオブジェクトモード
に戻して、Render
のb2c2_main
カメラを選択して、下のオプションリストのコンストレイント
でFollow Path1
のターゲット
をNURBSパス
に変更します。
オフセット
を-100~0
の範囲で、どこを始点にするか決めます。オフセット項目をマウスの左ドラッグで移動します。
- カメラビューボタンで切り替えると、どの様に映るかわかります。
- カメラパスからTargetに向かって、カメラの角度が自動調整されます。Targetを選択して'G'キーで移動してアバターの顔の前あたりに調整します。
- FOVの変更はデータのレンズのレンズ単位を視野角に変更すると、視野角で設定できます。
- カメラを始点位置にオフセットしたら、
Layout
タブに移動して、下にもともとある不要なキーフレームを選択して、右クリックから削除します。
- 開始フレームを0に移動して、オフセットの右にあるアニメーションをチェックすると、現在のフレームにキーフレームが追加されます。
- 終了フレームに値を変更します。終了フレームは、5秒間のパスなら60FPS☓5秒=300以上にします。実際にはScriptMapperで分割時間が自動調整されるので、多い分には問題ありません。短すぎると、長い時間で動かす時に動きがぎこちなくなります。終了フレームに変更したら、終了のオフセット位置に変更すると、終了のキーフレームが追加されます。
- 再生ボタンでパスの動きを確認します。
Animation
タブにして、b2c2_main
カメラを選択すると、オフセットの変化グラフが表示されます。表示はマウスのスクロールで大きくなるので、見やすく拡大します。バーを回転移動させると、イージングをかけることができます。
Scripting
タブを開いて、開く
からb2sm_export.py
を選択して開きます。Scriptingタブが見つからない場合は、タブの上をマウスの中ボタン(スクロールクリック)して左右に移動します。
- 再生ボタンを押してスクリプトを実行します。出力するカメラスクリプトの保存先、ファイル名を決めてエクスポートします。エクスポートされるファイル名は、設定したファイル名+カメラ名(デフォルトならb2c2_main)になります。複数のb2c2_で始まる名前のカメラがBlender上にある場合、それぞれ別のスクリプトで出力されます。※Fix camera FOV for Blender rendersのオプションはScriptMapperで使う場合はOFFで構いません。
- 出力したスクリプトをScriptMapperで使うには、scriptコマンドが追加されたScript Mapper Version 1.09以降を使いますので、対応していない場合はアップデートしてください。
- 譜面フォルダに
script
フォルダを作成して、その中にエクスポートしたスクリプトを置きます。
- ScriptMapperのブックマークに
script,エクスポートしたファイル名(.jsonなし)
のコマンドで設定します。例:test_b2c2_main.json
ならscript,test_b2c2_main
- 作成したカメラパスで動作することを確認します。移動時間はScriptMapperで設定した間隔に自動調整されます。
Blender2Camera2のAdvanced Techniquesに高度な制御方法など解説がありますので、参考にしてください。
その他にもBlenderのカメラパスの作り方のサイトはいっぱいあるので参考にしてください。リアルなカメラ手ブレのプラグインCamera Shakifyなどもあります。