2018年12月3日月曜日

リストをフィルタリングしたい

自作のツールを作るとき、リストを表示するレイアウトには treeView を良く利用しているのですが、大量にアイテムが並んでいたりすると項目を選ぶのに苦労します。
そんなこんなで、Outliner に付いている文字を入力したら表示物を絞れる機能を付けたいなぁと思ってしまうのでした。

Outliner に付いているってのは、こんなヤツです。


2018年11月19日月曜日

ジョイントが上手く描画されない

リグを組み、テストの動作チェックをしていたところ、コントローラで拘束しているジョイントが思ったように動いてくれない状況に遭遇しました。

特にアニメーションを作成するために、タイムスライダーを動かしたとき、ジョイントが動かなくなるようです。
コントローラにキーを打つなどしたらジョイントは動くのですが、また直ぐに動かなくなります。

2018年11月12日月曜日

なんか見慣れないアトリビュートがあった

リグを組む時、コントローラには主にカーブオブジェクトを使用するわけですが、最近、カーブシェイプで見慣れないアトリビュートを見つけました。


Extra にある LineWidth アトリビュートです。
今まで全く気づくかなかったのは新しく加わったからなのでしょうかね・・・?

2018年11月5日月曜日

mayaでシーン内の重複ノードを探し出す

 リグを組む時などはジョイントを名指しで特定したりするわけなのですが、何十本も骨があるようなのが何十体もあったりすると、たまにノード名が重複しているようなヒューマンエラーが出てきたりします。

 基本的に mayaは重複ノードができないようになっていますが、階層構造を複製すると容易に作成できてしまいます。
こんな感じに。


 腕とか脚とか片側を作って反転させたりしたであろうケースで良く見つかります。

2018年8月28日火曜日

optionMenuとoptionMenuGrpの違い

UI作成にQtが対応した頃から、ウィンドウコントロールの~Sliderみたいなコマンドに、~SliderGrpみたいな感じで末尾にGrpの付いたものが追加されました。
ラベルと入力フィールドが一気に作成できて、更に各幅なんかも微調整できたりして、なかなか便利なのです。

そんな~Grpコマンドの中で、optionMenuGrpの使い方にちょっとつまづいたのでメモ。

2018年7月30日月曜日

mayaが重いだって?

年々機能が強化・追加されていくmayaですが、アーティストは重い重いと言ってハードウェアのアップグレードを要求するようです。
今までと同じようなポリゴン数のオブジェクトを編集しているのに・・・。

どんな機能がどんな風に追加されたのかを気に掛けなければ誤解するのも無理はないですがね。
大抵は、ほとんど使わない追加機能がプラグインで提供され、余分にロードされたので重くなるのが原因というのがオチだったりします。
純粋なポリゴンモデラーが、muscleやAlembic、humanIkなんてロードの無駄です。

mayaを起動したらプラグインマネージャを起動して、全てのオートロードのチェックをオフにしたら、動作が軽くなる事はけっこうあります。
文句をいうのは、こういう対策をしない人が多いですね。

2018年6月25日月曜日

Arnoldでrequiresが付加しないのは?

Arnoldの使用されているシーンには requires が記述されず、プラグインのロードを試みないようになっています。

これは何でだろうと軽く考えてみたところ、ファイルリファレンスを使用する時には結構便利なのではと云うことに気が付きました。

Mental Ray が猛威を振るっていた頃、リグファイルへモデルファイルをリファレンスすると、不意にモデラーが作ったmayaファイルへ requires mayatomr が仕込まれたりすると、アニメーション用のファイルにもmayatomeが追加され、
「このアニメータ、mental rayロードしてやがる( ゚Д゚)凸」
と濡れ衣を着せられる事になります。

Arnold のように requires が記述されていなければ、アニメーション用ファイルでは余計なレンダープラグインを読み込まなくて済みます。
まぁステキ。


でも、参照しているモデルファイルを開く時にエラーが出てくるのは気持ち悪いですがね・・・。

惜しいところまで来ていますが、あともう少しです。

2018年6月20日水曜日

Arnoldをロードせずにファイルを開く

モデルデータを引取ると、なにも知らずにArnoldをロードしているシーンでモデリングしているであろうファイルを受け取るシチュエーションに遭遇する機会がでてきました。

そこで気が付いたのですが、Arnoldはシェイプノードに"ai_translator"みたいなアトリビュートを追加しているようです。
このノードはArnoldプラグインがロードされていないとエラーを出し、最終的にファイルオープンがエラーで終了します。

見ためには普通に開いて見えるのですが、これだとファイル名が取得できない状態になっています。
file -q -sn;
を実行すると何も返ってきません。
バッチ処理するときに面倒なことになりそうです。

ふつう、mayaはレンダラーのような外部プラグインをロードしているシーンでは、
requiresというコマンドでプラグインのロードを促すのですが、Arnoldでは何故か付いていません・・。

ギレン「mayaが用意してくれた requires は死んだ。なぜだ?」
キャスバル「アーノルド(坊や)だからさ」

30歳以下の人には分からないようなやり取りが頭をよぎりつつ、やっぱArnoldはクソだなと再認識しました。


2018年5月7日月曜日

mayaの起動オプション

mayaをコマンド ラインから起動すると、いくつか起動オプションを使えるようです。
で、どんな起動オプションがあるのかを調べる場合はコマンドラインで

maya -help

を実行すると、mayaのOutput Windowが起動して、そこに表示されます。
※反応が無いとな思ったらタスクバーをチェック!

こんな感じのが出てきます。

なんでOutput Window・・・。


2018年4月23日月曜日

Arnold用環境変数

maya2018から、いよいよメインレンダラとしてmayaと抱き合わされるようになったArnord。
課金しなければまともにバッチレンダリングもできないみたいですし職業ガラ使う場面もホボない。
そもそもarnold以外のレンダラもインストールしないのですがね・・・。

2018年3月26日月曜日

maya2018のcontrollerノードを使ってみた感想

maya2018にcontrollerノードと云うのが追加されたみたいです。
新機能ダイジェストでは紹介されていない地味な機能ですが、コントローラの可視性を設定することが出来るらしいです。

リグのコントローラへ接続してアトリビュートを設定するとマウスオーバーでリグの表示・非表示が切り替わる。みたいな。

controllerというmelコマンドも追加されているようです。
ドキュメントを読んでみると

string $lct[]=`spaceLocator`;
string $tag=`controller $lct[0]`;

みたいにしたら、作成したノード名を取得できそうな感じを受けますが、何も帰ってこない・・・。
バグってる?
仕方が無いので

string $tags[]=`ls "*_tag"`;
for( $tag in $tags ) setAttr ($tag+".visibilityMode") 2;

とする事にしました。


可視性の設定をしてリグを操作してみた感想としては、
使い物になりません
マウスをコントローラの位置まで持っていかないとリグが見えないので、どこにコントローラが有るかを手当たり次第に探す羽目になります。
リグを作った当事者であれば、コントローラの位置を把握できているハズなので、選択しに行けそうですが、表示非表示の反応がシビアなので何を選択しているのかが分かりづらい・・・。
どうしても使うと言うのであれば、scriptJob でselectionChangedを監視して、visibilityModeを積極的に変更するようにしたら少しはマシになるのかも。

なので、今の段階でコントローラの可視性を設定するのはイヤガラセ以外の何物でも無いみたいな感じですね。

同じノードを使ってピックウォークを設定できるみたいですが、設定が面倒なので、なんか使う気には成れなかったです。
使い道としては、多分、こっちがメインなのだと思うけれども。

autodeskがどう云うロードマップを敷いているのかはわからないですが、もう少しブラッシュアップの必要なノードに思いました。

2018年2月16日金曜日

エクセルでファイルサイズのリストを作る

MS-DOSとEXCELを使用してファイルサイズの表を作成してみるテスト。

まず、ファイルサイズのリストを作成したいフォルダを開きアドレスバーに cmd と入力してDOS窓を開きます。
※こうすると開いていたフォルダがカレントになっているので、 cd(chdir)する手間が減ります

で、2つのファイルを作成するため、以下のようにコマンドを実行します。

2018年1月25日木曜日

MELを使って別名保存を行う

膨大なフラグが存在するfileコマンド。
しかも幾つかのメインフラグと、それを補助する二次フラグに分かれていて、適切に組み合わせないと上手く動作しないクセにサンプルコードの種類が少ない厄介者です。

ふだん何気なく行っている操作で「シーンを別名で保存」というのがありますが、これをMELだけでやろうとすると意外とつまづくみたいです。

参考用にスクリプトエディタの履歴をみても、

file -f -save -options "v=0;";

としか表示されていません。
単純に考えて、

file -save -type "mayaAscii" "d:/hogehoge.ma";

みたいに最後に保存パスを指定してもエラーになります。
エラーを良く見ると、-save ではファイル名を指定できないから、先にリネームしろと言っています。
昔は回避方法とか記されていなかったような気がしましたが、良く起こす間違いなので追加されたのかな?

要は

file -rename "d:/hogehoge,ma";
file -save -type "mayaAscii";

と2つに分けて実行しろと云う事みたいです。

リネームの時、フルパスではなくファイルの名称だけで指定すると、カレントワークスペースへ保存されてしまう罠も仕掛けられているので要注意。