mbとma

前サイトの記事転載

Mayaには mayaAsciiとmayaBinaryの2種類の保存形式がありますが、どちらをどう使ったらいいのかわからずに なんとなくこっち という風に、使い分けをしないでつかうケースが多々あります。
ですが、この無意識に使っている保存形式ですが、
アスキー形式・バイナリ形式の意味と利点・欠点を理解していると、無駄な時間を減らして より効率よく作業することができます。

「アスキー形式」・「バイナリー形式」とは?

アスキーとは、

1963年にアメリカ規格協会(ANSI)が定めた、情報交換用の文字コードの体系。1967年に国際標準化機構(ISO)で定められた情報交換用符号の国際規格「ISO 646」とほぼ同じもの。7ビットで表現され、128種類のローマ字、数字、記号、制御コードで構成されている。実際にはコンピュータは1文字を8ビット(1バイト)で表現するため、256種類の文字を扱うことができるが、ASCIIが定めていない128文字分の拡張領域には、コンピュータメーカーや国によって異なる文字が収録されている。日本では、拡張領域にカナ文字を収録したコード体系が「JIS X 0201」として規格化されている。

となっていますが、わかりにくいので簡単に説明すると、文字ファイル(txtなど)のことをアスキーと呼びます。
つまり、Mayaアスキー形式とは、『中身が文字列でできているMayaファイル』のことをさします。
Mayaアスキーは、中身が文字列のためメモ帳などのテキストエディタで開いて編集することができ、内容も「人間が理解することのできる文字列」で書かれています。
その中身は、
file requires createNode setAttr addAttr parent connectAttr
disconnectAttr select currentUnit fileInfo
の11種類のmelコマンドでかかれており、このコマンドを直接手で書き換えてシーンを作り変えることも可能です。

バイナリーとは

コンピュータが処理・記憶するために2進化されたファイル のこと。
アスキーファイルは、テキストエディタで開くと、人間が理解することのできる文字列でかかれていましたが、バイナリーファイルは機械語で書かれているため、人間には理解できません。
ので、もちろん直接手で編集したりは基本できません。

利点と欠点

アスキー形式もバイナリー形式も、どちらが優れているとかではなく それぞれに利点と欠点があり、ケースバイケースで使い分ける必要があります。

アスキーファイルの利点

☆テキストデータなので、Mayaがなくてもある程度の編集が可能
(バージョンの低いMayaで開けるようにする、リファレンスのパスを変える等)
☆どのバージョンで保存したか確認することができる。

アスキーファイルの欠点

×すべて文字列で記述されているため、ファイルサイズがバイナリーに比べて2~3倍になる。
×保存や読み込み時に、バイナリに比べて時間がかかる

以上のことから、どういうときに使いやすいかというと、
・プログラムで、シーン内をパース(検索)しにいく場合
・人にデータを渡す場合
・リファレンスを含むシーンを保存する場合
主に、人にデータを渡すときに、ファイルパスが代わっても対応しやすいようにするためにアスキー形式を使うと便利です。
データのやり取りをするときに、ファイルパスが同じになるようにできればよいのですが
そうでないケースも多くあると思います。

そういう場合、バイナリー形式でデータをやりとりすると 特にリファレンスを使用している場合は、必要なファイルがわかりにくく パスが変わってしまったら読めない、必要なファイルがわからない など、いろいろとトラブルが発生しがちです。
アスキーファイルの場合、リファレンスモデルを読み込む行は、基本上のほうにまとまって書かれているので、必要なファイルが一目瞭然ですし、リファレンスモデルのパスを変えるのも、Mayaを立ち上げずに変えることができます。
また、アスキーファイルの頭には、どのバージョンのMayaファイルなのか書かれているので 「このmbどのバージョンでひらけるんだっけ?」ということが起こらなくなります。

バイナリーファイルの利点

容量が小さく、保存・読み込みに時間がかからない
不明なプラグインノードが含まれていても保存できる(保存するだけで機能は持たない)

バイナリーファイルの欠点

Mayaのどのバージョンのファイルかわからない
古いバージョンのファイルを開くことができない(FileOpenのオプションで、無理やり開く設定が可能でした)
リファレンス・テクスチャのファイルパスなどの変更がしにくい

バイナリーファイルのほうがよいケースは、
・作業途中ファイル
・アニメーションモデルなどの独立した、完成ファイル
など。

アスキーとは違い、あとで変更することはできませんが、圧倒的に容量が小さく 保存するときにも時間がかからないので、自分の作業途中のデータなど ほかの人が触らないもの、更新頻度が高いものなどはバイナリーのほうが時間が短縮できます。
それ以外に、リファレンスモデルは、シーン開くときにそのつどモデルを読み込む必要があります。
ので、できるだけモデルデータは軽いバイナリーを使用することで、ロード時間を減らすことができます。
※追記
いくつか間違ってたところがあったので修正。

mbとma」への3件のフィードバック

  1. 大変為になりました。情報公開ありがとうございます!
    maシーン重くなると知らずに1か月ほど使い続けてしまいました…どうりで最近シーンロードに時間が掛かると思ったら^^;
    大きくなり過ぎたmaシーンをダイエットさせてmb化する方法はあるのでしょうか?

  2. 簡単な方法だと、OptimizedSceneSizeで不要なゴミを減らすとかでしょうか。
    Mayaの場合、掃除しないとすぐゴミがたまってファイルが肥大化してしまうので…
    いらないノードを消す=シーンを軽くする→mbで保存し直すというのが、シンプルながら一番の基本なのかなぁと思います。
    あとはケースバイケースなので、状況次第…という感じです。
    答えになってるか分からないですが(;´Д`)

    • シーンサイズの最適化と不要ノード削除をやってみました所、だいぶスリムになり作業も楽になりました!
      本当に助かりました。ありがとうございます^^
      掃除しないとゴミがたまるなんて…Mayaって人間みたいで可愛い奴ですね( ´艸`)

コメントを残す

メールアドレスが公開されることはありません。


*