日本語optionVarはTAを恐怖のドン底に叩き込んだ!

クリーク・アンド・リバー社 COYOTE CG STUDIO テクニカルチームの好きなゴジラといえばシンゴジラ、戦国大好き人間の中林です。

今回は技術的な話ではありません。公式のoptionVarでもこんなことがあるんだと驚いたネタです。ちなみにMayaの日本語版(英語版以外)を使ってないと気付かなかったです。

そもそものキッカケは?

モーションアーティストにグラフエディタの表示制限の設定を簡単に変更できるツールをできないか相談がありました。

確かにメニュー分割が親メニューしかできないので微妙に選択しづらいです。この時はoptionVarを探して0か1を代入するだけだから簡単だろうと気軽に引き受けました。それが恐怖の一日の始まりでした……

目撃せよ! 全optionVar

意外とoptionVar探しに難航、僕自身の過去ブログに書いた裏技を使おうとしてもGraphEditor;はRun Time Commandのためメニューの作り方が違うので断念。defaultRunTimeCommands.melを解析してメニューを作るあたりを解析しても表示に関するメニュー作成の記述が見つからず断念。
とはいえ、方法が尽きた分けではありません。これは僕はできれば使いたくない奥の手だけど……
optionVar -list;
で全てのOptionVarを表示することです。正直、1000以上のoptionVarの名前からピンポイントで目的のものを探すから辛いです。しかも、自作メニューでoptionVarを使っていると更に最大数が増えて自分の首を絞めているからです。
それでも経験上、今回の件は「GraphEditor」or「Graph」でテキスト検索かければ見つかると踏んでましたから、すぐに奥の手を使いました。この時に英語版を使っていればすぐに解決をして、その後の問題が解決に難航したかもしれません。英語版を使っていれば……

見よ!日本語optionVarの暴威!!混乱と恐怖の大惨事!!

結論から言うと「GraphEditor」or「Graph」で検索かけても見つかりませんでした。しかし、実はスクリプトエディタで該当のアトリビュートをオンオフするたびに「filterUI~」という命令が出ていたのを目ざとく確認をしてました。そして、我々スタッフが、一生懸命探しました……「filterUI」見つかりましたよ!!!!
それでは感動のご対面です!!
filterUISettings-グラフ エディタ
えっと、どちらさんでしょうか!? ここはoptionVarの身内の名前しかいないはずです!? なぜ日本語が現れるのでしょうか!?
それでも半信半疑でoptionVarコマンドの中身を確認すると

optionVar -q "filterUISettings-グラフ エディタ";
// 結果: 回転 移動 スケール //

結果がいましたよ!? しかも、中身も「回転 移動 スケール」とバラエティに富んだ日本語で!? でも、確かに上図でチェックを付けた内容も同じです!!
正直、見つけた時のテンションは凄いことになってました。
日本語版だからこそ偶然遭遇した僕人類初の日本語optionVarです。ちなみに僕のマシンで遡れたMaya2015でも同じ結果でした。もしかしたら、グラフエディタのフィルタが導入された当初からかもしれません。

現実(ニッポンゴ)対虚構(エイゴ)

ちなみに英語版だとoptionVarの名前が「filterUISettings-Graph Editor」だったので、もし英語版でツールを作成していたらモーションアーティストに渡した瞬間に確実に謎のエラーで止まってました。
最終的に依頼のあったモーションアーティストと相談。状況を説明しつつ、使っているMayaは日本語版というのを確認。ただし、今後は英語版を使う可能性を考慮してif文で2ヵ国語に対応してツールを作成しました。
また、細かい部分ですがWindowsの母国語とMayaの母国語で判定が少し変わるのですが、今のところは海外のWindowsを使う予定が無いのと日本国内でしか使わないのを確認して少し簡略化して作成をしました。
一応、今回の件で僕のマシンのoptionVarを全て2Byte文字で検索してけど、これ以外は見つかりませんでした。でも、この日本語optionVarもそうですが、メニューのチェック状態によってのみ現れるものもあり得ます。
「この日本語optionVarが最後の一つとは思えない。人類が今後もMayaを続ける限り、第二、第三の日本語optionVarが現れるかもしれない」

Author: 中林 伸和