TVプロジェクトを開始すると、色々と制作にまつわるルールを決める事になります。Binaryのどちらを使うかです。どちらが優れているのか...。今回はその争いに終止符を打ちます!...と言いたいところですが、両陣営の目がキラリとこちらを注視している雰囲気を感じますので、ここは一つ穏便にそれぞれの特徴を見ていき、どういう状況でどちらを選ぶべきかの判断材料をご紹介していきたいと思います。(超高速でハイパフォーマンスなアスキーファイルがあればそれで万事オッケーなのですが...)世の中Mayaに限らず昔からデータのフォーマットとして「アスキー」と「バイナリ」があり、どちらも一長一短です。Mayaも類にもれず、どちらがより優れているということはないですが、状況によってどちらが使いやすいかというのはあります。いうわけで特徴と使い分けを見ていきましょう。BinaryMaya2018をインストールしたので起動してみました。Binary」となっていました。Binaryといえます。Binaryは端的にいうと「パフォーマンスが良い」フォーマットです。特徴については本当に色々ありますので、思いつくところで並べていくと次のような特徴があります。・ファイルサイズが小さい・unknownノード(プラグインが読み込まれていない時のプラグイン専用ノード)があっても保存できる一般的なソフトウェアではアスキーよりもバイナリファイルをサポートすることが多いように思いますので、やはりMayaのデフォルトファイルフォーマットと言えます。ASCIIと同様にコマンドを実行してシーンを再現します。ASCIIとそれほど速度は変わらなくなります。利点が最大限発揮されるのは、メッシュなど大量の数値を扱っているシーンです。アスキーよりも高速で、ファイルサイズも小さくなります。Mayaが扱っている数値データをそのまま書き出したり読み出したりする部分が多い程高速です。メッシュやマテリアルを多く含む背景シーン、高ポリゴンのメッシュを持つキャラクタのシーンなどで有利です。バイナリはファイルがおかしくなったときに中身を見て直すことが難しいです。シーン情報を得るのにバイナリファイルから取得することも難しいので、一度Mayaでファイルを開いて情報を取り出すことになります。(バイナリファイル内を直接解析する人もいるようですが。ASCIIバイナリの特徴だけ見るとバイナリ派閥に軍配が上がりそうですが、アスキーは実際の運用でとても便利な利点があります。ASCIIは端的にいうと「出来ることが多い」フォーマットです。こちらも特徴を並べてご紹介します。・シーンの書き換えが可能(必要な情報部分のみファイルからスクリプトエディタにコピペして実行すれば、メッシュデータやリグのデータ、アニメーションデータなどを復活出来る)・Mayaを開かないでシーンの情報を抜き出せる(テキストファイルなので中のテキストを検索すれば良い)・ファイル同士を合成可能(テキストをがっちゃんこする。SizeからUnknownノードを削除してから保存。二度とそのプラグインのデータは戻ってきません)中身がテキストなので開いて内容を読めますし、書き換え可能なので問題が起きたときに直接修正できるところがもっとも大きな特徴です。プロジェクトを進める上では問題が起きたときに「素早い対処」「原因の究明」をいかに早く確実に行うかが重要です。アスキーファイルは問題箇所を見つけやすく、書き換えればすぐに修正できますのでプロジェクト運営にとても役立ちます。数値の書き換えはもちろんのこと、createNodeコマンドを追記してノードの追加もできれば、逆にcreateNodeコマンドを削除してノードを作らないように出来ます。setAttrやconnectAttr部分を削除すれば、その部分の編集がなかったことに出来ます。ファイル内にprintを埋め込むことでシーンを開いている途中の情報を出力したり、適宜printすることでどこまで読み込んだかを確認したり出来ますのでデバッグにも使用できます。場合によっては大量のシーンファイルの値を変更するのにも向いています。バイナリだとシーンをMayaで開いて修正していく必要がありますが、アスキーなら単に文字の置き換えで済みます。テキストエディタなどの文字の置き換え機能を利用するだけで良いので、ツールもすぐに手に入りますし、何より高速です。バイナリでもアスキーでもMayaにシーンを開いたあとのメモリ消費量はともに同じです。シーンを開いた後の大きな違いは無いので、バイナリとアスキーの違いでキーとなるのは読み書きの速度です。Binaryと比べてファイルサイズが大きくなります。読み書きもバイナリのほうが高速です。Binaryのところでも触れましたが、ファイル内にノードの作成などのコマンドが多く含まれている場合はバイナリでもアスキーでも大差はありません。ファイルを解析してMayaに司令を送るだけですので、ロード時間はMayaのコマンド実行時間が大きく関わります。アスキーは数値などのパース(解析)で時間がかかるので、大量コンポーネント、メッシュがある場合は時間がかかりがちです。これはファイルを開くときに影響が出ます。ファイルサイズが大きくなることで、特にネットワーク越しにファイルを読み書きすると時間がかかりがちです。最近のバージョンでは対処が行なわれており、以前よりも高速化しています。シーンを開く回数も考慮すると良いです。シーンを開くのに時間がかかっても、頻繁に開かないならアスキーでも大丈夫かもしれません。データが壊れた時の復旧を考えると、日に数回の待ち時間はよしとするという考えです。逆にシーンを開くのがそこそこ早くても、かなりの回数開く場合はバイナリのほうが良いかもしれません。ゲームのファイルをエクスポートするのに、バッチ処理で必ずMayaのシーンファイルを開いて加工しないといけないとします。この場合はファイルが数千ファイルあるとすれば、バイナリを使ったほうが圧倒的に処理時間を軽減できます。一方で、もし数千のファイル内でとある名前のロケーターの位置を知りたいというだけでしたら、アスキーで保存して中身の文字を検索する方がMayaバッチを起動するよりも速いので、アスキーを使った方が良いかもしれません。ファイルリファレンスアスキーで読み書きが重くなるのは、シーン内に複雑なデータや大量のメッシュ、キーフレームがある時です。Binaryに書き出しておくと良いです。大きなデータを別ファイルとして保存してファイルリファレンスにすれば、シーンを保存するときはリファレンスの情報だけ保存すれば良いので、重いデータを保存しないで良くなります。シーンを開くときはバイナリファイルをリファレンスとして読み込むので、読み込みも速くなります。次の図のように、読み込み時間に影響がある巨大な背景データはMBで保存、それ以外はMAで保存してファイルリファレンスとして読み込めば、アスキーとバイナリのいいとこ取りが出来きます。上記の背景データの様に巨大な一つのシーンを扱う時はバイナリが有利です。親となるシーンはファイルリファレンスを沢山読み込み、パスの扱いが重要になるのでアスキーがベターです。一つMayaの重要な仕組みがあります。同じファイルをリファレンスとして複数回読み込んでいたとしても、ファイルから読み込むのは一つ目だけで、二つ目以降はメモリからコピーされるようになっています。同じファイルをリファレンスするときは数が増えても二倍三倍と時間がかかるわけではありません。そのため大きなデータをファイルリファレンスとしてとして複数回読み込むのなら、アスキーでも問題ない場合があります。建物や木のデータが多少大きくても、複数回リファレンスするならアスキーとバイナリであまり時間が変わらない可能性があります。まとめというわけでそれぞれのファイル形式の特徴がなんとなくつかめてもらえたと思います。ASCIIを使ってみるのがおすすめです。Binaryにする、という運用で良いと思います。実際の所ファイルが壊れるということはそうそう無いので、プロジェクト全体のパフォーマンスを考えて、全てバイナリにしておくというのも一つの戦略です。30日間無償で体験できます。30日間無償で体験できます。製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。