MaxScript の .ms / .mcr / .mse / .mzp の違い
3dsmaxを使いスクリプトを使っている方で、色々拡張子あるけど、違いがよくわからないな~という方もいると思うので、そういう方に向けて簡単な記事でまとめておきます。
どれも中身は MaxScript です。違うのは「どう使うためのファイルか」だけです。
一覧
| 拡張子 | どんなファイル | もらったらどうする |
|---|---|---|
.ms |
ふつうのテキスト | ドラッグすればその場で動く |
.mcr |
ボタンに登録するためのもの | ドラッグしてから、自分でボタンに割り当てる |
.mse |
中身が読めなくしてある .ms |
ドラッグすればその場で動く |
.mzp |
まとめて配るためのもの | ドラッグすればインストールされる |
.ms — いちばん素のスクリプト
ただのテキストファイルです。メモ帳でも開けます。
使い方はかんたんで、ビューポートにドラッグ&ドロップすれば動きます。 メニューの スクリプト > スクリプトを実行 から選んでも同じです。
ただし、動くのはその 1 回だけです。もう一度使いたければまたドラッグします。 UI には何も残りません。
毎回使うものなら、scripts/startup フォルダに入れておくと 3ds Max の起動時に自動で読み込まれます。
ただ、3dsmaxはメモリの扱いが微妙に下手なので、下手にscripts/startupに入れすぎるとバグりやすくなります。
なので入れるものは絞ったほうがいいです。
.mcr — ボタンにして残す
中身は macroScript というブロックです。「名前の付いた操作」を定義しています。
macroScript MyTool
category:"MyTools"
buttonText:"My Tool"
tooltip:"ツールを開く"
(
-- ここに処理
)
読めなくても大丈夫です。要は「このツールをこういう名前で登録してください」という宣言です。
ドラッグしても何も起きないのは正常です
.ms と違うのは、評価すると 3ds Max に登録が残り、評価をしてもツールの中身は実行されないことです。
.mcrをドラッグ&ドロップして何もスクリプトが動かなくて???ってなった方は多いんじゃないでしょうか。(自分も初めの方はなってました。)
中身の動きは以下のような形です。
- スクリプトエディタで開いて
Ctrl+E(またはドラッグ&ドロップ) usermacrosフォルダに自動でコピーされる- カスタマイズ > ユーザーインターフェイスをカスタマイズ に、指定した
categoryで並ぶ - そこからツールバー・メニュー・ショートカットに割り当てられる
ツールバーなどに登録し、ボタンを押したりして初めてツールの中身が実行されます。
登録は次回以降の起動にも残るので、一度やれば終わりです。ここが .ms との一番の違いになります。
カスタマイズ画面で見つからないとき
「ユーザーインターフェイスをカスタマイズ」のカテゴリ一覧から探します。
どのカテゴリに入るかはスクリプト側の category で決まっているので、
配布元が書いている名前(上の例なら MyTools)で絞り込んでください。
置き場所の注意
.mcr の元ファイルを scripts/startup フォルダには入れないでください。
.mcr は評価した時点で usermacros にコピーが作られます。
元ファイルも起動時に読まれる場所に置くと、同じものが 2 か所から読み込まれます。
元ファイルは自分の作業フォルダなど、3ds Max が自動で読まない場所に置いておけば大丈夫です。
.mse — 中身が読めないスクリプト
.ms を暗号化したものです。使う側から見ると .ms とまったく同じで、ドラッグすれば動きます。
作る側が「ソースを見られたくない」ときに使います。
保護にはなっていません
配布する側の方へ。.mse はソースが読めなくなるだけで、保護にはなりません。
鍵が全環境で共通なので、出回っているツールで中身は取り出せます。気休め程度に考えてください。
それと、.mse から元の .ms に戻す手段はありません。 暗号化したら元ファイルは必ず残しておいてください。
もらったときの注意
暗号化は逆向きにも働きます。中身が読めないということは、何をするスクリプトなのか確認できないということです。
実際に、3ds Max を狙ったマルウェアが、暗号化した MaxScript にコードを潜ませて広まった例があります。
配布元がはっきりしない .mse は実行しないでください。
.ms ならテキストエディタで開けば中身を確認できます。この差は意外と大きいです。
.mzp — まとめて配るためのもの
MaxScript Zip Package の略で、実体は ZIP です。
中に mzp.run という指示書を入れておくと、ドラッグするだけでインストールが終わります。
中身がZIPなので、拡張子を.zipに書き換えるだけで解凍すれば中身が取り出せます。
mzp.run には「どのファイルをどこへコピーするか」「何を実行するか」が書いてあります。
スクリプト本体・.mcr・アイコン・マニュアルなどをまとめて 1 ファイルにできるので、
「zip を解いて、mcr をここに置いて、カスタマイズから登録して……」という手順を踏まずに済みます。
配布されているツールが .mzp なら、いちばん迷わないやつだと思ってもらって大丈夫です。
自分で .mzp を作りたい場合は MzpPackager をブラウザから使えます。
mzp.run の書き方や中身の内訳は マニュアルにまとめてあります。
配る側になったら
- 自分で動かすだけ →
.msのまま - ボタンやショートカットに置いてほしい →
.mcrも付ける - 人に渡す →
.mzpにまとめる - ソースを見せたくない →
.mse。ただし気休めと割り切る
コメント