公開をしないとな~と思いつつ後回しにしてしまっていた PyMax を公開するための準備をはじめました。
まずは形からってことで、PyMax のサイト を立ち上げました。
コードとかバイナリとかドキュメントとか、準備ができ次第順次公開していく予定です。できれば今回のゴールデンウィーク中に一通りの準備を終えたいところです。
同時に、PyMax を一緒にメンテナンスしていただける方も絶賛募集中です!! JCGS としては既にガンガン使っているので使えることは間違いないですが、まだまだやらないといけないことがたくさんあるのです。きちんとメンテナンスをして情報発信をしていけば、日本国内だけではなく世界中のプロダクションで使用されること間違いなしの PyMax 、一緒にメンテナンスしませんか!!
CGWORLD.jp の max script 講座の第四回 が更新されました。
前回に引き続き、一気にステップアップするための内容です。
今回は具体的に ParticleFlow とスクリプトを使用して映像を作るための手順の解説をしています。
ParticleFlow に関してはいろいろと問題もあって、環境によっては今回解説した内容だけではきちんと動かない可能性もあるので、もし問題や不明な点があればご連絡頂けると嬉しいです。
3ds max のスクリプト言語としては maxScript があるのですが、これがまたどうにもこうにもアレな感じで、しかも max 以外では使うことができないので頑張って勉強をして覚えるのもためらってしまうという方が多いかと思います。というか、私もその一人です。
某所で maxScript の記事を書かせて頂いている身でこんなことを言うのは何なんですが、、、、ソレハサテオキ。
そんな maxScripter の希望の星として、max で Python が使える Py3dsMax というのが Blur Studio から公開されています。。。。。というか、正確には公開されていました。何故か2月以降公開が取りやめになってしまっていて、開発者は”もうすぐ公開するよ~”といいつつ音沙汰が無い状態です。
これではさすがに Py3dsMax ベースで仕事をすることはできないので、一念発起して自分で作ってしまいました。名づけて PyMax!!どうも某社のインハウス実装と同じ名前らしいという情報も小耳に挟んだものの、気にしない(笑。
見ての通り、Pythonスクリプトを文字列として渡してやると計算結果が maxScript のオブジェクト値として返ってきます。ぐれいと!!
今のところ __pymax__ という謎のパラメータに計算結果を代入してやらないと値の取得ができないのですが、これは回避することができそうです。
PyMaxは、公開したらどれくらいの方が開発に参加して頂けるのでしょうか?それによってはオープンソース化も考えています。一人で抱え込んでいても仕方ないですしね。興味のある方、ご連絡お待ちしています
Blur Studio 作の Py3dsMax が更新されていて、本格的に使用できるようになっていました。以前も動作はしたのですが、UI 部分が動かなかったので MaxScript から python モジュールにスクリプトを文字列として渡すとかしないといけなかったんですね。
今回のアップデートは PyQt に対応し、Python スクリプトもエディタから直接実行できるようになっています。Great!!!!!!
インストールも至って簡単で、Py3dsMax のサイト から必要なインストーラをダウンロードしてインストール、そして 3ds max のプラグインパスにインストールした Py3dsMax のパスを通すだけ(Max2010は、標準添付のQtライブラリを改名して無効にする必要あり)。
ついでなのでダウンロードからインストール、サンプルプログラムの実行までをムービーにしてみました。画面再撮で見にくかったり、インストール途中でハマってもたついたりしますが、全体の雰囲気は掴めるのではないかと思います。
とりあえずいいから動いているのを見たい!! という方は、 07:00 あたりから再生してください。
プラグイン開発者にとって、プラグインの動的 Load/Unload ができるかできないかは生産性に直結する問題です。
振り返ってみると Maya はさすがというか標準で対応していて、気軽にプラグインの更新ができるようになっています。
ところが、3ds max は遅延ロードには対応しているものの Unload ができません。これは正直アリエナイです(笑。こんな環境でプラグイン開発なんてやってたらmaxの再起動だけで1日が過ぎてしまいます。いや、そんなのに頼らずに一発で動くのを作ればいいじゃん?という声も聞こえてきそうですが、よっぽどの天才ならともかく、凡人の私には無理です(笑
ということで、プラグインマネージャからプラグインのアンロードができるように手を加えてみました。maxのモロモロの実装がアレな関係でMayaほどきちんと動かないですが、Unload→プラグイン更新→Load くらいはできます。
max2010/64bit 版のプラグインをアップロードしておくので、使いたい方は自己責任でご利用ください
Unload 対応プラグインマネージャ for 3ds max 2010/64bit
プロパティの確認
show $polySurface46.modifiers[#pointcache]
(中略)
.playbackFrame (再生フレーム) : float
(中略)
false
subAnims の確認
getSubAnimNames $polySurface46.modifiers[#pointcache]
#(#strength, #再生フレーム)
日本…語…だ…と!?
paramWire.connect $obj01.Custom_Attributes[#AnimationFrame] s.modifiers[#pointcache][#playbackFrame ] “AnimationFrame” →NG
paramWire.connect $obj01.Custom_Attributes[#AnimationFrame] s.modifiers[#pointcache][#'再生フレーム'] “AnimationFrame” →OK
Σ( ̄Д ̄;)
3ds max 死ねぇぇぇ!!
ホント、こういう中途半端なことは心底やめてほしいとおもう。こんなことするぐらいならローカライズなんかしないで、日本でも英語版のまま売ってくれたほうがマシ。
Surface に Transparency をアサインするんじゃなくて、Transmat を使うのが正解っぽい。
3ds max + Mental ray でボリュームレンダリングをする方法がわからなくて散々試行錯誤したのだけれども、やっぱりわからない(涙。
マテリアルを mental ray にして、Surface シェーダに Transparency をアサインして完全に透明にして、Volume に Mist とかを割り当てればボリュームレンダリングっぽい絵ができると思ったのに、なぜかできない。なぜだ。。。
YouTube でみつけた、こんな感じのことがしたいだけなんだけど…