2005/09/22

Scene Changer


ダウンロードはこちらから
tested using Max 8 SP3 E

場面ごとに使うオブジェクト、カメラ、ライトを登録しておくことのできるスクリプトです。その他、レイヤーごとにアニメーション範囲の情報を持つことができ、レイヤー内にあるライトは非表示の時自動的にオフになります。1つのシーンファイル内でいくつかの場面に分けてオブジェクトを管理したい時に役立つかと思います。

-- 使用方法(赤文字v1.2からの仕様) --
○テキストボックス(空欄):レイヤーの名前
○Add:オブジェクトを追加(登録)、アニメーション範囲の登録
○Del:登録してあるオブジェクトをレイヤーから削除

○Select:登録オブジェクトを選択(1つのオブジェクトを2つ以上のレイヤーに登録することも可能です。)
○on/off(一番左にある細長いボタン):on時/登録オブジェクトを表示、アニメーション範囲切替 , off時/登録オブジェクトを非表示(ライトは自動的にオフになります)
○Clear:登録オブジェクトをすべて削除
○Save:レイヤー情報をテキスト形式で保存
○Load:レイヤー情報を開く

--2006/06/05 機能追加、バグ修正(v1.2)
①Del機能の追加
②アニメーション範囲情報を持たせる機能の追加
③"Load"でテキストファイルを何回も選択しなくていいようになった

--2006/05/30 バグ修正(v1.1)
○スクリプトに登録してあるオブジェクトの名前変更や削除した時にエラーが発生していた問題を修正しました。これで今のところ、わかっているバグはすべて対処しました。

2005/09/12

MAX2AE


3dsmaxのシーン情報をAfteterEffectsにエクスポートするプラグイン「MAX2AE」というのがありますが、後で2D素材を3Dカメラの動きに合わせたい時にとても便利です。頑張ればトラッキングという手もありますが、こちらの方が整合性のよさでも手間的にも断然いい。RPFカメラを使用した場合との比較はこちらのサイトで検証しているので参考までに。

早速、「MAX2AE」のデモ版を使ってみたんですが・・・・・なんだか「これ作れそう?」ということで作ってみました(^^; カメラとノードの情報さえ書き出せればいいので2つの機能のみです。AfterEffectsのカメラ設定でズームというのがあるのですがこれをコンポサイズと視野角(FOV)から割り出す計算式(三角関数)に少し戸惑いましたがこんな感じで解決。タンジェントなんて久々に使いましたよ(汗

このスクリプトは「MAX2AE」がシェアウェアということもあり残念ながら公開はできません。制作するに当たって参考にしたスクリプトは「Maya Camera Importer/Exporter(Laszlo Sebo)」です。このスクリプトでカメラの情報は書き出せる(.cam形式ですが、.txtに拡張子を変えればOK)のでこれをAfterEffectsで読み込めるようにテキストを編集すればできると思います。その他参考になったサイト

※ちなみにAfterEffectsのカメラ情報などをMAXに読み込んだりもできます。MAXに読みこむには「KEYLOADER」などでできます(位置情報のみ)。ただ、使い道がいまいち思いつきませんが・・・。

-- 9/12追記 --

↑MAX2AEのカメラ     ↑自分の書いたスクリプト

ターゲットカメラのロール値はどうやって取得するのだろうと悩んでいたのですが、HALLUCINOのMAX SCRIPTフォーラムですでにスレッドがあったのに気づきませんでした(^^; これでようやくロール値の取得もできるようになりあとはフリーカメラにも対応できるようにすれば完璧!「MAX2AE」はどうやって回転値を取得しているんだろう?」なんて思ってデモ版を使ってみたんですがカメラに回転アニメーションを加えると左の画像のようにうまくいきませんね・・・。これでシェアウェアなのか~。

2005/09/05

Maxscript Editor


 Maxscriptの検証を行なう時は今まで"MKEditor"を使って自分でsyntaxを書いていたのですがMAXのバージョンが上がるにつれて関数が増えるのも事実・・・。"MKEditor"で書いたスクリプトをコピーしてMAX上でペーストして評価させる手間もめんどくさいです。結局、MAX上で書いてエラーが出て強制終了⇒今まで書いてたスクリプトが全部パーなんてことも・・・。

 そこで色々と調べていたら"REZN8"から「mxscom - MAXScript / COM Bridge」というフリーウェアが出ているのを発見!テキストを読んでみるとどうやらこのフリーウェアと「CRIMSON EDITOR」というソフトを使うことでテキストエディタ上からスクリプトを実行したりMAX上でスクリプトを書くときと同じ環境で行なうことができるそうです。インストール方法などすべて英語なので手順を簡単ですが下記に記載しておきます。

-- "mxscom - MAXScript / COM Bridge"のインストール --
1,REZN8からソフトをダウンロード
2,「maxscript7.reg」と「mxscom.exe」を3dsmax7のフォルダ直下にコピー
3,「maxscript7.reg」をダブルクリックでレジストリに追加
4,「RegisterOLEControl.ms」を"3dsmax\scripts\startup"にコピー

-- "Crimson Editor"のインストール --
1,「www.crimsoneditor.com」にアクセスしてソフトをダウンロード
2,「cedt370r.exe」を実行してインストール
3,「Crimson Editor」を起動

■コードの評価設定
1,"Tools⇒Preferences"の"Tools⇒User Tools"にアクセス
2,Menu Text: 「MAXSCript Execute」と記述
 Command: 3dsmaxフォルダ内にコピーした"mxscom.exe"を選択
 Argument: 「-f $(FilePath)」と記述
 Hot Key: "Ctrl + E"を押す

■コードをMAX上で開く設定
1,"Tools⇒Preferences"の"Tools⇒User Tools"にアクセス
2,Menu Text: 「Maxscript open」と記述
Command: 3dsmaxフォルダ内にコピーした"mxscom.exe"を選択
Argument: 「-e edit "$(FilePath)"」と記述
Hot Key: "Ctrl + R"を押す

これで設定は終わりです。実際にテキストエディタ上からスクリプトを実行してみて下さい。

2005/09/01

SetMaterials


使ってみたい方はメール下さい


マテリアルエディタに新しいマテリアルを登録する際に、毎回マテリアルライブラリーを開くのがめどくさかったのでマテリアルエディタ上から簡単に操作できるようにしました。

※今回は1つのマクロスクリプト内に"include()"を使って複数のスクリプトを一括登録できるようにしました。