2005/12/16

Local Transform



ダウンロードはこちらから

複数オブジェクトに対してローカル軸での回転・スケール変換を一括して行うことができます。標準では選択オブジェクト全体の基点になってしまうので不便ですよね。
どうにかならないものか・・・。

2005/12/12

FitSizeToImage

久々の更新です。
だいぶ間が空いてしまいました・・・(^^;
仕事で画像の貼られた"Plane"がたくさん配置してあるシーンを作っていたのですが、すべてのマップ素材を差し替えるという事態になり、Planeの縦横比を修正するのが大変だったのでスクリプトを簡単に書いてみました。このスクリプトはポリゴンに集約してしまった場合には使用することができません。

ピボットの位置さえ合っていれば、まず適当なサイズのPlaneを配置してマテリアルを適用しておけば一括で画像サイズに合わせることができます。その後は、「UVWMapper」でUVWマッピングすれば簡単ですね!

---以下スクリプト---

macroScript FitSizeToImage category:"KOHScript"
(
on execute do
(
undo on
(
disableSceneRedraw()
for i in selection do
(
if i.material != undefined then
(
if i.material.diffusemap != undefined then
(
i.length = i.material.diffusemap.bitmap.height
i.width = i.material.diffusemap.bitmap.width
)
else ( Messagebox "Non Diffusemap" )
)
else ( Messagebox "Non Material" )
)
enableSceneRedraw()
completeRedraw()
)
)
)


---ここまで---

もしPlaneのサイズが大きすぎて(小さすぎて)スケールで直す必要出てきた場合は、
-----------------------------
for i in selection do
(
scale i [0.2,0.2,0.2]
)

-----------------------------
で一気に修正することができます。
[0.2]というのは20%という意味です。

2005/10/21

Q&A

このbloggerはある記事にコメントされても"最新のコメント"を表示する機能がないので、なかなか気付き難いという欠点があります。また、スクリプトの使用方法がわからないといった意見もあるようなので"Q&A"を設置することにしました。"KOHScript"に関わるご質問はこちらにお願いいたします。

2005/10/11

HALLUCINO --- 新MAXScript講座

HALLUCINOの管理人さとうさんがMaxscript講座を再開しました(^0^)/ 今回配布されているものは2003年3月に配布されたものと全く同じもののようですが今後が楽しみです。自分自身このヘルプがなければスクリプトとは縁がなかったとつくづく思っています(^^;
http://www.maxuser.com/cgi-bin/forum/thread.php?threadid=336

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()"を使って複数のスクリプトを一括登録できるようにしました。

2005/08/18

AfterEffects Expression


↑AfterEffectsのScript Debugger

しばらく更新に間が空いてしまいました(反省
とはいうもののmaxのネタがないので今回はAfterEffects(^^;
恥ずかしながら今までExpressionというものを使ったことがなかったのですが、少し時間があったので勉強してみました。事の発端は「MAX2AE」に似た機能のスクリプトを書いたことから始まるのですが、これめちゃくちゃ便利ですね∑( ̄□ ̄; maxでいうところのパラメーターワイヤリングができるんですね。今まで疑問にも思わなかったことが恥ずかしい。その他にもmax8で搭載される予定のScript DebuggerがAfterEffectsにはすでに搭載されているんですね。JavaScriptはよくわからないので使い道があるかわかりませんがちょいと覚えてみようかな・・・。そんなに難しそうではないし。でも相変わらずsin,cosだの数学の知識が必要とされる部分は苦手"(ノ_・、)" 昔は嫌いじゃなかったんだけどな~。

参考HP
http://www.openspc2.org/reibun/AfterEffects6.5/
http://www.motionscript.com/
http://www.da-tools.com/

2005/07/27

グループ解除

■グループノード内のすべてのレベルをグループ解除
フリーモデルを使う時にパーツを全部アタッチして1つのオブジェクトとして使いたいのに、グループ化されていて解除しみてたらまたグループがたくさんあったりして・・・なんてことが多々あると思います。そんな時はオブジェクトを選択して、
------------------------------------------------
explodeGroup $
------------------------------------------------
を実行しましょう。そんだけ(^^;

2005/07/26

MemoryDisplay


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

MAXSCRIPTの作業メモリを管理するスクリプトです。
ツールバーにドッキング可能。チェックのオン、オフでスクリプトを動作を実行したり止めたりできます。また、"C"のボタンでメモリを開放することができます。たいしたスクリプトではないですが・・・(^^;

2005/07/22

便利なスクリプトの使い方④

めんどくさい単純作業はいつもスクリプトで解決。
今回は、「選択オブジェクトの頂点上に他のオブジェクトをコピーして配置する方法」。




左の画像のような状態で大きい球体の選択頂点上に、小さい球体(Sphere01)をコピーして配置します。結果が右の画像です。スクリプトはこんな感じ↓

-------------------------------------------------------
sphere_verts = #()
sphere_verts = $.selectedVerts
sphere_verts_c = sphere_verts.count
for i = 1 to sphere_verts_c do
(
new_obj = copy $sphere01
new_obj.pos = sphere_verts[i].pos
)
-------------------------------------------------------

上記のスクリプトは大きい球体が編集可能ポリゴンで頂点を選択している状態で実行してください。小さい球体の名前は6行目の"Sphere01"の部分です。"$"は必ず付けてください。

2005/07/14

KOH Scripts

公開しているほとんどのスクリプトを1つのフローターにまとめました。



ダウンロードはこちらから
2007/11/28 更新


-- インストール方法 --
①zipファイルを解凍して、「KOHScripts_v1.8.exe」を実行
②MAX上で「3dsmax9/UI/MacroScripts/KOHScripts_v1.8.mcr」を起動
③カスタマイズ⇒ユーザーインターフェイスのカテゴリ⇒KOHScriptsからツールバーなどに登録

-- 注意点 --
インストーラーの仕様上、インストール先を「C:\3ds Max 9」から変更することができません。他の場所にインストールしたい場合は"C:\3ds Max 9"直下にできたフォルダ3つすべてを上書きコピーしてご使用ください。

--- 更新履歴 ---
- v1.3 -
○KOH Scriptsのインターフェイスを変更
○1つ1つのスクリプトを起動させるボタンのみを搭載してシンプルにしました
○マクロスクリプト化してツールバーやメニューに登録可能にしました

- v1.4-
max7にもインストールできるようにインストール先のパスを修正しただけです。
併せてv1.3とv1.4ともに先日更新した"UVW Mapper v1.2"と"VisibilityKeyer v1.1"
を組み込みました。

- v1.5-
KeyShiter , ObjectProperties , ObjectLink , PieChartTool , HTML HELPを追加しました。

- v1.6 -
○"FitSizeToImage"を追加
○"FrameRateChange"をバージョンアップ
○"Keyloader"をバージョンアップ
○"LocalTransform"を追加
○MAX8に対応

- v1.7 -
○LocalTransformの廃止
○SelectionSaveの廃止
○SceneChangerの搭載
○バグ修正などでアップデートしたスクリプトの搭載
(UVW Mapper , UniqueControl , Selecter , PieChartTool , SPCutter , VisibilityKeyer)

- v1.8 -
○VerterxAnimConverterの搭載
○Selecter v1.4 の搭載
○VrayConverter v2.2(英語版、日本語版両方)の搭載
○UVW Mapper v2.0の搭載
○HTML HELP更新

2005/06/29

Pie Chart Tool


ダウンロードはこちらから


円グラフ作成ツールです。円グラフの分割数(角度または%)を最大10個まで持つことができる他、materialモディファイヤにより自動的にID分けされます。その他、指定したフレーム内で360度回転させることができます。

-- 使用方法 & 注意事項 --
①円グラフの分割値を角度または%によって決定する。全体で360度以下にしてください。最後の分割値は入力してもしなくてもOKです(6分割にするとしたら値は5つまででOK)
②Styleでグラフの形状を決める。
③"Create !"ボタンを押す。(角度により決定)
④アニメーションはフレームを指定して"Animate !"ボタンを押す。

※角度は1つの値を変更すると他のすべてが連動するようになっていますが、%はメモリの消費を抑えるために連動しない仕様になっています。そのため%の値を使用するときは必ず"Percent Priority"のボタンを押してから"Create !"ボタンを押してください。わかりにくい仕様ですみません(^^;

-- 更新履歴 --
円グラフをアニメートさせる時に1つ1つのオブジェクトの変換キーにイーズがかかってしまうバグを修正。全体のアニメーションの最初と最後のみイーズをかけるように変更(2005.07.12)

2005/06/27

QRコード

サイドバーの右下にQRコード追加しました。よろしければご利用ください。

2005/06/23

Angle


maxscriptにこんな機能があるのを初めて知りましたΣ( ̄□ ̄ゲッ! リファレンスを最初から目を通してみようかな・・・。なかなか面白そうです。近日公開?

2005/06/20

スクリプトランチャー

このサイトで公開しているスクリプトはすべて.mse形式(暗号化するため)のスクリプトでマクロスクリプトではないのでメニューやツールバーに登録することはできません。できれば、マクロスクリプトにしたいのですが.mse形式ではなぜかエラーが出てしまってできないのです(^^? マクロスクリプトのように手軽に実行させるには、ハラダさん作のms Launch v2.00をご利用ください。

2005/06/15

隣接したポリゴンを1つに結合する

仕事の合間に5分で書いたスクリプトです。



やっていることは選択したポリゴンを削除してキャップしているだけです(^^;

--------------------------------------------------------------
rollout sft_rollout "Square from triangle"
(
button go_btn "Connect" width:50 pos:[5,5]
on go_btn pressed do
(
disableSceneRedraw()
undo on(
$.EditablePoly.ConvertSelection #Face #Edge
$.EditablePoly.delete #Face
$.EditablePoly.capHoles #Edge
)
enableSceneRedraw()
completeRedraw()
)
)
createDialog sft_rollout width:60 height:30

--------------------------------------------------------------

使い方は以下のとおり。
①スクリプトをコピー&ペーストして実行
②1つに結合したいポリゴンを複数選択
③"connect"ボタンを押す

2005/06/14

スクリプトの便利な使い方③

最近、手軽にスクリプトを書くことで作業効率がアップするいいアイデアがなかったのですが、今回は「複数オブジェクトと同じ位置にオブジェクトを1つずつコピーする方法」を書いてみます。



まず、上の画像のようにランダムに配置されたボックスがあったとします。このボックスと同じ位置に右上にある球体をコピーします。以下のスクリプトをボックスを選択した状態で実行してみてください。

----------------------------------------
for i in selection do
(
new_obj = copy $Sphere01
new_obj.pos = i.pos
)

----------------------------------------

1行目はfor文を使ってオブジェクト数分の処理を繰り返すことを意味しています。3行目は"new_obj"という変数に画像右上にある球体"Sphere01"をコピーしたものを代入しています。4行目で"new_obj"の位置を選択オブジェクト"i"の位置と同じにしています。コピーするオブジェクトをインスタンスにしたい場合は3行目の"copy"を"instace"に、参照は"reference"にするとできます。ジオメトリでなくてもライトやダミーなどでも可能なので"$Sphere01"を"$omni01","$Dummy01"などとすればOKです。

2005/06/02

KeyShifter

「複数のオブジェクトの変換アニメーションキーを指定した間隔でずらしてくれるスクリプト」としてKeyShifterというのがありますがこれなかなか便利ですよね。AfterEffectsでもエクスプレッションを使ってよくやりますがmaxでやるにはスクリプトが必要。ということで、使ってみたのですがリストに登録したオブジェクトを"MoveUP""MoveDown"で1つ1つ並べ替えるのがめんどくさく感じたので少し改良しました。

ダウンロードはこちらから
2007/12/01更新

■改良点
□Sort機能
ボタンA:登録オブジェクトをオブジェクト名順に並べ替えます。
ボタンB:登録オブジェクトをオブジェクト名順に逆から並べ替えます。
ボタンC:登録オブジェクトをランダムに並べ替えます。
□Clear機能
登録したオブジェクトをすべて削除します。
その他、使用方法はHallucinoを参照してください。

2005/05/31

Object Link

連番名のついたオブジェクトをリンクさせる動作を自動化させたスクリプトです。
例えば、「Dummy01,Dummy02,....」というオブジェクトを「Box01,Box02,....」というオブジェクトにDummy01とBox01,Dummy02とBox02といった具合にリンクさせることができます。


ダウンロードはこちらから


-- 使用方法 --
①リンクさせる親または子のオブジェクト数をスピナに入力
②"Parent Name"とある欄に親の名前(数字を除いたもの)を入力
③"Child Name"とある欄に子の名前(数字を除いたもの)を入力
④"Link!"ボタンを押す

2005/05/22

スクリプトの便利な使い方②

その①でパラメーターワイヤリングを使用せずにパラメーターを一括変更する方法を書きましたが、今度は同じモディファイヤを複数オブジェクトに適用させる場合はどうでしょう?その①で使用した方法(マクロレコーダーの構文をそのまま利用)でやってみると、複数オブジェクトを選択してモディファイヤを適用した状態と同じになってしまいます。(ギズモが選択オブジェクト全体の大きさになる)
 → 


「これを1つ1つに適用させた状態にまとめてできないか?」

オブジェクトを複数選択した状態で、次のようにするとできます。(UVWマップを適用する場合)
---------------------------------------
for i in selection do
(
addmodifier i (uvwmap())
)

---------------------------------------
これはfor文というもので()内に記載された動作を「i」回繰り返し行うというものです。それを今回は選択オブジェクト分1回1回モディファイヤを適用させてほしいので「in selection」というのをつけています。詳しくはヘルプを見てください。マクロレコーダーで調べてみると、
「modPanel.addModToSelection (Uvwmap ()) ui:on」
と出るのですがこのままでは使えません。「(Uvwmap())」というのだけが使用できるので他のモディファイヤで行う時も「(SliceModifier ())」といった感じで
「addmodefier i」の後にコピーしてください。モディファイヤのパラメーターをまとめて変更したい時は前回説明した方法でやればいいと思います。

2005/05/19

スクリプトの便利な使い方①

スクリプトの便利な使い方その①
なんといっても複数オブジェクトの一括管理がスクリプトの手軽で最もよく使う手法だと思う。ごく基本的な使い方を少し紹介。

例えば、「インスタンスさせたくない複数のライトの強度をまとめて同じ値にしたい。」という時どうしますか?1つ1つやりますか?それともパラメーターワイヤリングでやりますか?スクリプトでやるとこんなに簡単。
①まずは1つのライトを選択して強度を変えてみる。この時にマクロレコーダーをオンにしてMaxscriptリスナーを開いておく。
②そうすると、リスナーに「$.multiplier = 0.3」といった感じで表示されるはず
③ここで変更したいライトすべてを選択
④さきほど表示された「$.multiplier = 0.3」を新規スクリプトから実行するか左下のミニリスナー(赤い方)にコピーして実行

これで選択したすべてのライトの強度が変わっているはずです。

マクロレコーダーに記載されるコマンドはすべてがそのまま使えるわけではないですが使えるものも多くあるのでコマンドを調べるのにもとても便利です。

-- こんな使い方は? ---
たくさんのライトを使ってライティングを設定してあるシーンで、カットごとにライティングを変えたい時は?自分ならカット別にライトをレイヤー分けしておいてまとめてライトをオン・オフして切り替える・・・かな?それかライトの設定をボタン1つで切り替えられるようにすると思う。2つも3つもカットごとにmaxファイルを用意しなくていいですし・・・。
----------------------------------
$.enabled = off
----------------------------------
といった感じで。

2005/05/18

ObjectProperties

よく使用すると思われるオブジェクトプロパティを簡単に切り替えできるようにしました。"KillMaterial"でマテリアルを未適用の状態にすることができます。複数オブジェクトに対応。ボタンをONでオブジェクトプロパティダイアログのチェックが入っている状態です。



ダウンロードはこちらから
tested using max7.0E


-- 起動方法 --
"objectproperties.zip"を解凍して"objectproperties.mse"を実行

-- 使用方法 --
①プロパティを変更したいオブジェクト(複数可)を選択
②変更したいプロパティのボタンを押す

--- 注意 ---
オブジェクトのプロパティをオフにする場合、1度ボタンをオンにしてからオフにする必要があります。

"koh@maxscript" Open!

maxscriptに関してはまだまだ未熟ですが、maxscriptの役に立つ情報などを自分のわかる範囲で少しずつ掲載していこうと思っています。自作スクリプト(kohscript)の公開もあわせて行っていくつもりです。

UVW Mapper

複数オブジェクトにUVWマップをx,y,z軸の3つまでまとめて適用することができます。x,y,z軸それぞれにマッピングチャンネルを設定することができます。選択オブジェクトのモディファイヤをスタックレベルの指定によりまとめて削除することが出来ます。



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


--- 使用方法 ---
■Set UVW
①UVWマップを適用したいオブジェクトを選択
②使用したい軸にチェックを入れる
③マップチャンネルを設定
④"Set UVW"ボタンを押す

■Delete UVW
①選択オブジェクトの削除したいモディファイヤのスタックレベルを"Stack Level"で指定。複数のモディファイヤを削除したいときは"Stack Range"で範囲を指定。
②"DeleteMod"ボタンを押す
※すべてのモディファイヤを削除したいときは"ALL Delete Mod"ボタンを押す

--- 更新履歴 ---
●v1.2 Boxにも対応させました
●v1.3 "Delete UVW"の使い勝手を向上
●v1.4 
⇒○オブジェクトに回転やスケールがかかっているときちんとギズモがオブジェクトの大きさにフィットされない問題を解消。
 ○Box機能がきちんと働いていなかった問題を解消。
●v2.0 詳細はこちら

Selecter

■OpenedShapes : 選択オブジェクトの中から開いているシェイプのみを選択します。
■CosedShapes : 選択オブジェクトの中から閉じているシェイプのみを選択します。
■PolySelecter :
①選択オブジェクトの中から指定したポリゴン数よりも小さい(または大きい)ポリゴン数のオブジェクトを選択します。(編集可能ポリゴンのみ対応)
②選択しているポリゴンをスキップ選択します。(選択位置をA,Bで変更可能)
■EdgeSelecter :選択しているエッジをスキップ選択します。(選択位置をA,Bで変更可能)



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


--- 注意 ---
□"OpenedShapes"を押したときに開いているパスが1つ以上選択されていれば問題なく動作します。"ClosedShapes"の場合も同様。ラインだけを選択してある状態であれば、対象となるパスがなくても何も起こりません。ポリゴンしか選択していなかったりすると不具合が発生します。
□スキップ選択機能はあまり賢くないので、基本的にポリゴン編集などをしたものにはうまく動作しません。プリミティブオブジェクトをポリゴンに変換しただけのオブジェクトであれば問題なく動作します。

--- 更新履歴 ---
v1.2 ポリゴンのスキップ選択機能を追加
v1.3 BugFix(2006/02)
v1.4 エッジのスキップ選択機能を追加(2007/10/09)

SelectionSave

編集可能メッシュ、編集可能ポリゴンでの頂点・エッジ・面の選択セットを作ります。それぞれ6つまで選択セットを作ることができます。ソフト選択にも対応しています。1つのオブジェクトにつき6つのセットではないのでご注意ください。

 

使ってみたい方はメール下さい
tested using Max 6.0 J



--- 起動方法 ---
"selectionsave.zip"を解凍して「スクリプトを起動」から"selectionsave.mse"を実行

--- 使用方法 ---
①選択したい頂点、エッジまたは面を選択します。
②頂点の場合は"SelectionVerts”、エッジの場合は"SelectionEdges"、面の場合は
"SelectionFaces"のロールアウトを使用します。
③"save1"に保存した情報は"load1"で呼び出すことができます。
④チェックボタンをオフにするとそのボタンに保存した情報は削除されます。

Snapshot

指定したキーフレーム(10個まで)のスナップショットをまとめて行うことができます。複数オブジェクトに対応。



ダウンロードはこちらから


--- 起動方法 ---
"snapshot.zip"を解凍して「スクリプトを起動」から"snapshot.mse"を実行

--- 使用方法 ---
①スナップショットをとるオブジェクトを選択(複数可)
②左上のチェックボックスから右側へ順々にスナップショットをとりたいフレームを入力する(入力する順序は上の画像参照)
③スナップショットをとりたいフレームの数をドロップダウンリスト(1~10)から選択する
④"SnapShot!"ボタンを押す

FrameRateChange

フレームレートを30fpsと60fpsに切り替えるスクリプトです。実際には、30fpsの時には60fpsへ、
それ以外のときは30fpsに設定するようになっています。

→(ドッキング)→→(切り替え)→

ダウンロードはこちらから


--- 起動方法 ---
"frc.zip"を解凍して「スクリプトを起動」から"frc.mse"を実行
ツールバーへドッキングして使ってください。

--- 更新履歴 ---
v1.1 マクロスクリプトに変更しました。その際にボタン表示を切り替えることができなくなってしまうので、設定したフレームレートを"30f","60f"という形でミニリスナーに表示させることで対処しました。

Key Loader

1フレーム単位でx,y,z座標が記載されているテキスト(右下の画像参照)を読み込むことにより選択しているオブジェクトすべてにキーフレームを打つことができます。絶対・相対座標に対応させています。

 

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


--- 起動方法 ---
"keyloader.zip"を解凍して「スクリプトを起動」から"keyloader.mse"を実行

--- 使用方法 ---
キーフレームを打つ間隔を"Interval Value"で設定した後、「Absolute(絶対位置)」「Relativity(相対位置)」のどちらかを選んでボタンを押し、座標値が記載されているデータを読み込むだけです。

--- 更新履歴 ---
○v1.1(10/27/2005)
ご要望により、キーフレームを打つ間隔を任意に設定できるようにしました。
○v1.3(03/28/2008)
テキストファイルに記載された座標に選択オブジェクトを配置することができるようにしました。

--- 今後の展開 ---
テキストデータの読み込み位置の変更や行をスキップさせて読み込ませるようにする予定です。いつになるかわかりませんが・・・。

Constrains

標準では複数のオブジェクトに対してコンストレインをまとめて適用させることができません。そこで、複数オブジェクトに適用させて問題のなさそうな(よく使う)コンストレインについて対応させました。現在では、パス・リンク・位置・方向・ルックアットコンストレイントの5つです。



ダウンロードはこちらから
tested using Max 6.0 J


--- 起動方法 ---
"constraints.zip"を解凍して「スクリプトを起動」から"constraints.mse"を実行

--- 使用方法 ---
標準機能と同様

Visibility Keyer

選択オブジェクトに可視トラックキーを打つことでオブジェクトのフェードイン(アウト)を行います。その他、可視トラックキーの移動、削除等の機能を付け加えてあります。



ダウンロードはこちらから


---インストール方法---
①"visibilitykeyer.zip"を解凍して、「スクリプトを起動」から"visibilitykeyer.mse"を実行

--- 説明 ---
①各項目(fade In , fede Out)のスピナにフェードイン(アウト)開始フレームを入力
②"Key"ボタンを押す。

--- 追記 ---
左側で入力したフレームに可視トラックキーの値0、右側に値1のキーが作成されます。フェードアウトはその逆。

--- 更新履歴 ---
v1.1 
カレントフレームからフレーム数を入力してフェードイン(アウト)ができるようにしました。

SPCutter

max6/7用スクリプト。
ポリゴンを分割するスクリプトです。QuickSliceやスライス平面で何分割もする作業が簡単に行えます。V2.0からmax7のEditPolyモディファイヤに対応させました。ただあまり分割しすぎると重くなるので注意してください。



ダウンロードはこちらから


---インストール方法---
①"spcutter.zip"を解凍して、「スクリプトを起動」から"spcutter.mse"を実行

--- 説明 ---
●Scissor hands
オブジェクトを編集可能ポリゴンに変換した後に各座標軸のポリゴンを分割します。
①分割したい面を選択する。
②分割したい座標軸に分割数を入力した後に"do"ボタンを押す。

●PolyCutter
選択したポリゴンをスライス平面によるスライスで一定距離に分割します。
①座標系を「ローカル」に設定する。
②オブジェクトを"編集可能ポリゴン"に変換するか"EditPolyモディファイヤ"を適用する。
③ポリゴンを1つ以上選択してスライス平面モードにする。
④スライス平面を切断したいポリゴと直角に配置します。
⑤スライス平面の移動軸とスライスする間隔、回数を入力して"Slice!"ボタンを押す。

--- 更新履歴 ---
○v2.2(2006/01/30)
オブジェクトをトップビュー以外で作った場合の"Scissorhands"におけるバグを修正しました。

○v2.1(2005/02/27) 
"Scissorhands"を選択ポリゴンのみに影響するようにしました。
ただし、上記に記載してあるバグによりうまく行かない場合もあります。

UniqueControl

オブジェクトのコピー、インスタンス、参照の相互変換を行うことができるスクリプトです。



ダウンロードはこちらから
tested using Max 4.26 J


---インストール方法---
①"uniquecontroll.lzh"を解凍して「スクリプトを起動」から"uniquecontroll.mse"を実行

--- 説明 ---
①"SelectObject"ボタンを押して元になるオブジェクト(A)を選択します。
②オブジェクト(A)のインスタンスや参照にしたいオブジェクト(B)を選択します。
③インスタンス、参照を解除するには"ChangeCopy"ボタンを押します。
インスタンスに変更するには"ChangeInstance"ボタンを押します。
参照に変更するには、"ChangeReference"ボタンを押します。

--- 注意 ---
①インスタンス⇒参照、参照⇒インスタンスの作業は必ず"ChangeCopy"を行った後に使用してください。
②バグがまだありそうなので使用には十分注意してください。
③グループ化されたオブジェクトには使用できません。

---2006/05/30 バグ修正 ---
①参照を行った後にコピーを行うとエラーが発生する問題を対処。
②グループには完全に適用できないようにしました(エラー回避のため)。

QuickAngle

マウスでクリックした距離を求めるスクリプトとしてBlurScriptの"QuickMeasure"があります。このスクリプトの発想を利用して角度を求めるスクリプトを作ってみました。




ダウンロードはこちらから
tested using Max 4.26 J

---インストール方法---
①"quickangle.lzh"を解凍して、「スクリプトを起動」から"quickangle.mse"を実行

--- 説明 ---
①メニュー等からスクリプトを起動(頂点にスナップさせたいときはスナップをONにしておく。)
②マウスで頂点3つを選択(図参照)