FBX Python SDKでBlender と 3ds Max間の出力シーンの画角アニメーションの変換スクリプトを
書きはじめてみています。
以前にアンダースキャンレンダリング用のスクリプトを書いた時にほぼ同内容の変換をやった気になっていましたが
ちょっと違っており、かつメモとしてあって良さそうなもんなのでPythonの関数としてママをおいておきます。
mm、インチ、ディグリー、ラジアンなど値が入り混じるワナにハマることがあるので気をつけなきゃだなー
なんて思いつつ、mathのみで成立させられるなんて便利だなーなんて思ったりもしました。
FBX Python SDK Blender ↔︎ 3ds Max
Camera Animation can Not be converted !

普段は3ds Maxを日常的・能動的に使うことがないので詳しい事情はわからないのですが
カメラに関してちょっと特殊な感じがしています。
Film Offset
まずMayaやCinema4Dでいうフィルムオフセット、Blenderでいうレンズ→シフトがありません。
代わりなのか、そういうわけでもないのか、仰・俯角を補正するモディファイヤがあったりします。
とかくフィルムオフセットがあるシーンをMaxに渡した際は
最終的には目合わせや大きく出力してトリミングするといった手法をとることになると思います。
Lens Animation
そして少し前に発覚したのがレンズのアニメーションに関して。
Maxからは水平視野角のみしか出力されないようです。
もちろん、焦点距離は諸条件から連動した絶対値になるので
あえて持つ必要がないという考え方も理屈ではわかります。
が、この先困ったことに遭遇することがおそらくそれなりの頻度で発生しそうな気がします。
Blender Python Script Grease Pencil to Data
(Convert to TimeRemap Data for AE)
まず最初に
このGreasePencilってレンダリングに関してeeveeにしろCyclesにしろ重いなー
こんな状態なら必要分だけ書き出した方がいいなー
と思っていたところからこの試みは始まったわけですが、、、
この問題はそもそもビューポートレンダラーを使用すれば解決するというオチでした。
※海外フォーラムでその記事を読んだ際には
えーー!!!?
と思ったのと同時に
いや、そらそうか!
とも思う爽快な納得感が春風のように吹き抜けました。
しかし、ともあれBlender上のキーフレームデータを
AEに渡すことができるというのはアニメーションのタイミング調整をする必要が発生した時などに、
まずまず有益だろうとおもうので一応自分で納得できるところまで進めてみました。
過去エントリー
つまり、ClipStudioタイプのタイムシートcsvです。
Blender Python 開発中セレクトダイアログを使う時はPySide
セレクトダイアログのシンプルなAPIが当然あるとおもって取り掛かったんですが、、、、
ネットで情報をあたりつつ確認のため公式Python APIをみてみるも恐ろしくごちゃごちゃしておる。
本格的にBlenderとマッチしたUIをつくるようなプロダクションレベルに仕上げる時は
そうしたいという意向もなくはないが、
開発段階でサクッとカジュアルに保存先としてディレクトリを指定したいぐらいの場合は
ちょっとしたことなのでその必要は全くないのです。
ということで、そこはショートカットしたいのでtkとかPySideとかダイアログが用意されている
既存のものをつかえないのだろうか。
Blender GeometryNodes考 その1
これが無料なのか、、、おそろしい、、、
以前にもさらりとチュートリアルをしたことがありますがあらためて触っています。
ノードベースのプログラミングとしてはC4DのXpressoも一緒ですし
雰囲気的にはMographをXPressoで組み上げる感じなので違和感はありません。
ただ、ちょっと気になっていることもあります。
XPressoでもシンプルなノードのみで何かしようとすると
ひどく煩雑でごちゃつくことが多くあります。
それはシンプルな値の計算や条件分岐みたいなことです。
FBX SDK Python FBX Version Convert Script

あー、こーゆーのもあんのね。
というのがFBX SDKの記事を目にした時の第一印象でした。
C4D、Blenderを主に使用しているのでそんなのどうつかうん?という感じです。
Mayaを使っていた頃にはなんとなく存在自体は知っていた気がしますが
それで何ができるかとかはしらず、さらにいえば自分には縁のないモノであろうということで
忘れ去っていました。
では今回なぜ使うことになったかと言いますと、ポメロ越田くんから
Blender→3dsMaxへのデータコンバートでうまくいかないシーンデータがある
との相談をいただいたからなのですが、、、
その際はもちろん可及的速やかに確実な検証込みのデータ渡しが必要ですので
そー言った場合の前提として、立ってるモノは親でもつかえの精神で最短・確実を目指します。
Blender→(fbx)→Cinema4D→(fbx)→3ds Max
という解を検証の結果導きだせました。
これはまさに最短でかつ確実性を重視した手持ちツールつかうパターンです。
早速、4シーンをコンバート・確認しデータを提供させていただきました。
Rosetta …
おわかれの時がきたようですね、ロゼッタ。。。
intel Mac用アプリをエミュレートしてくれる便利なものですが
基本的には移行期に使う機能ということになると思います。
そして、時代は流れてAdobeも2024になりAE、Pr(多分ほかのアプリケーション)は
Universal binaryとはなっているもののAppleシリコンMacではRosettaを介しての使用はできなくなりました。
これで過去に永続ライセンスとして購入し使用しているプラグインなどが使えなくなってしまい
お受けできる仕事の幅が狭まるなーということで大変なのですがそれはまたの機会に。
Blender Python pipでパッケージをインストールしてみる
Pythonの環境を整理するためにいじっていて
そういえば、BlenderのPythonてどうなってんだろう?と思って調べてみました。
Blender自体もHomebrew caskでパッケージの管理をしてるので常に新しい環境になっています。
Cinama4D Blender VDBをレンダリングしてみる
おまけUnreal Engine 5.1でも
少々先の予定ですがボリューメトリックオブジェクトでエフェクトをつくるような作業のご相談があり
とりあえず、色々と検証をしています。
ボリュームはEmberGenでサクッと出力するのがテストを重ねる上でもよいのでそれは確定としています。
ただライトやカメラなどの表現や操作性の都合で、
画像としてのレンダリングは別にする必要もあるかもなーと考えています。
と言うことで、レンダラーを少し試してみました。
かかりっきりになって時間的に拘束されてしまいますし、
GPUをつかうので作業中はワットメーター振り切っているので
昨今の状況から考えてちょっと電気代が心配ではありますが。
Blender Python Script GreasePencil キーフレームをファイル出力
ひとまずタイミングを数字として取り出すことができました。
直近で必要というわけでもなんでもないんですが
ClipStudio同様に最近アニメの描き用appとして使われていることもあるので
AEにフッテージと一緒にキーフレームデータを渡せるようにしておきたかったという感じです。
尺分フルで出してたんじゃデータが大きすぎるからキーフレームの分だけ画を出力するといった場合は、
通常のアニメ撮影同様にインハウスツールでタイムリマップに流し込んで使うこともできますしね。
Blender Macでコンソール出力を表示させる
Blenderでpythonをつかってみようかと思いたち
おきまりの”Hello World!!”で
テキストエディタからpython コードを実行しprint()で出力を確認しようにも
どこに出るのかわかりません。
Blender STEP ONE
残念ながらマッチしなくなってしまったモノをきっぱりあきらめ
挑戦障壁が低いことをどんどん実行し経験やひらめきを得たい時期ですね。
全世界をまきこむ疫病の禍を乗り越える胆力が必要とされ
変化を余儀なくされる未来にむけ、新たなコトをどんどんやるべきだと思っています。
ぶっちゃけビジネスに活かせるのか?ということはさておきチュートリアルをやりつつ
自らの趣向も入れつつSTEP ONEとしてレンダリングしてみました。
