2016/07/29

exrに余白を付けてレンダリングする

先日いろいろ調べてたら、exrに余白付きでレンダリング出来ることに気がついたのでメモ。


mayaだったらここにメタデータ書き込めばexrのデータが上書きされる。
レンダー設定のイメージフォーマットオプション。

 カメラの情報だとかいろいろ書き込めるみたいで応用すればいろんなことが出来そう。

ここにこんな感じで書き込む。

displayWindow=(20,20,2067,1171);

そうすると表示範囲を指定できる。

nukeでその画面を表示すると下のような画面になる。


 レンダリング自体は余白部分まで出てるけど、nukeの扱い自体はdisplayWindowの数値を見てくれる。

 レンズの歪みとかボケ系のエフェクトを入れるときにそのまま与えてやれば領域外の部分を使ってくれるのであまり考える必要が無い。
 一部ノードによってはダメな場合もあるけど:(


毎回書き加えるのは面倒なのでPreRenderMelとPostRenderMelにスクリプトを書き加えてあげれば簡単にオーバースキャンの画像を作ることが出来る。
例えばこんな感じとか。(レンダラーVRayの場合)

PreRenderMEL
int $overscan = 100;
int $width = getAttr ("vraySettings.width");
int $height = getAttr ("vraySettings.height");

string $cameraNode[] = `lsType("camera")`;
string $nodes;
for($nodes in $cameraNode){
    if ($nodes != "<done>"){
        if(`getAttr ($nodes + ".renderable")` == 1){
            $getPostScale = `getAttr ($nodes+".postScale")`;
            setAttr ($nodes+".postScale",($getPostScale * $width / ($width + $overscan)));
        }}}
       
setAttr ("vraySettings.width" ,($width + $overscan));
setAttr ("vraySettings.height" ,($height + $overscan));
setAttr -type "string" vraySettings.imgOpt_exr_attributes ("displayWindow=(50,50,1009,589);");

PostRenderMEL
int $overscan = 100;
int $width = getAttr ("vraySettings.width");
int $height = getAttr ("vraySettings.height");

string $cameraNode[] = `lsType("camera")`;
string $nodes;
for($nodes in $cameraNode){
    if ($nodes != "<done>"){
        if(`getAttr ($nodes + ".renderable")` == 1){
            $getPostScale = `getAttr ($nodes+".postScale")`;
            setAttr ($nodes+".postScale",($getPostScale * $width / ($width - $overscan)));
        }}}
       
setAttr ("vraySettings.width" ,($width - $overscan));
setAttr ("vraySettings.height" ,($height - $overscan));
setAttr -type "string" vraySettings.imgOpt_exr_attributes "";
 スクリプト作って自動で書き込んであげるようにすればいちいち面倒な計算しなくてすむ。やったね!


追記
公式でoverscanの項目が追加されたみたい。
 めんどくさいことはしなくて済みそうだ。



2016/03/11

VRay Ligthtをオブジェクトの変形に追従させる

VRay Lightなどのロケータを変形するオブジェクトに追従させるには




上記のように追従させたい場所にライト、ロケータを配置

変形するオブジェクトのvertexを選択、Shift押しながらロケータを選択
 Constrain>PointOnPolyを実行

するとロケーターが追従するようになるので
そのロケーターにライトを親子付け


 オブジェクトを変形してもライトは追従します。


2016/02/25

MayaからNukeへのオブジェクト、カメラの書き出し

いままでFBX使ったりしてたけど、alembicでやると超簡単。

Maya Expression Editorがメモ帳で開いてしまう問題

Expression Editorが勝手にテキストで開かれるようになっちゃうことが多々あり、設定を忘れてしまいがちなのでメモ

C:\Users\(ユーザ)\Documents\maya\2016\prefs
 userPrefs.mel

を開いて、

 -iv "EEexprEdTextEditor"

を検索

 -iv "EEexprEdTextEditor" 0

になってると思うので、

 -iv "EEexprEdTextEditor" 1

に変更する。

そしたら元のExpression Editorが立ち上がるようになる。
設定ファイルを直接いじらせるとかMayaらしいというか。。

2015/11/26

マウスについて

先日使用しているマウスがチャタリングが発生するようになり壊れてしまいました。
ただのクリックがダブルクリックになる現象でドラックもままならず。。
早速新しいマウスを購入したのですが、これがまた随分と使いづらく、ストレスが溜まります。
3D作業をやる上で1ピクセル単位の使い心地は致命的に作業速度が変わります。

今まで使用していたマウスは、
LOGICOOLのゲーミングマウスでした。


有線ですがかなり動きがよく、細かい動きにも追従してくれます。
設定で動きを調整したり、重りの数を変えて軽さを調整したりもできます。

今現在、家で使っているマウスもLOGICOOL製のレボリューションMX-Rを使っています。



こっちは高速スクロールに親指スクロールとかなり多機能。
 無線ですが、全く遜色なく使えています。
充電スタンドが必要ですが、そんなに電池切れすることはありません。
 このマウスを触っちゃうと他に移れなくなるぐらいの使い心地のよさ。

なぜこのふたつを紹介したかというと、
壊れたマウスと同じものを買おうと思ってアキバの電気屋に行ったわけですが、
どこを探しても同じ型番のものが置いていない。
最新機種が出ているようで、全部それになっていました。

試供品を触ってみたのですがどうもしっくりこず、、
一番手に馴染んだものを買ってきたわけですが、動作がひどすぎる!というわけ

amazonとかカカクコムで同じ型番のマウスを探してみると、
なんと3万~5万と3倍以上の値段になっている。中古でも1.2万もする。。
在庫がなくなってプレミアが付いてしまったというわけですね。

というわけで同じものを買うのは断念。
壊れたマウスは修理しようと思います。
 LOGICOOLさん、すっごくできの良いマウスなので変に改良せずそのままのマウスも買えるようにしてください。



余談
ロジクール製マウスの左スクロールを中ボタンに設定するとmayaやmaxの操作が劇的に楽になります。
中ボタンってどのマウスも変に押しこむ必要があって使いにくいですよね。
3ボタン式もあるけどめっきり見なくなってしまったし。












2015/01/14

Maya コピペ

あんまり使ってなかった機能だったけど、コピペ機能がなにげに便利。
インポート、エクスポートの手間を考えるとこっちのほうがいいな。

ほしいパーツ、マテリアルをCtrl+c、Ctrl+vするだけ。

ただ、標準のままだとペーストしたオブジェクトにpasted_って名前が追加されるので結構ノードが多かったりすると、リネームしなくちゃいけなくてあんまりよろしくない。

以前デジフロの記事に出ていたやり方でmelを書き換えてpasted_が出ないようにしてみる。
楽しいmayaハッキング(誤ペースト撲滅委員会)
ついでにダイヤログも出るようにしてもいいかもね。
頻繁にコピペすることがあるのでひとまずこのまま。



ここを
 // import scene
 string $newTransforms[] = `file -force
  -import
  -renameAll true
  -renamingPrefix "pasted_"
  -groupReference
  -returnNewNodes
  $filePath`;
このように
 // import scene
 string $newTransforms[] = `file -force
  -import
  -namespace ":"
  -groupReference
  -returnNewNodes
  $filePath`;

これでペーストしてもpasted_はつかない。
名前がダブっていたりしたら末尾に+1がつく。

シーンを2つ開いて行ったり来たりする時なんかに便利。

2014/12/11

スイッチセット


スイッチセット


以前紹介したスイッチンググループの発展版です。
以前のグループでスイッチする方法を使用していた場合、
大量のスイッチがシーンにあると、どこにスイッチが隠れているかわからなくなり管理が大変でした。

なので、今回はMayaの標準機能であるセットにスイッチ機能を付け加えてみました。

以下起動画面















ウィンドウが起動するようになりました。
グループの作成、ShowAll,HideAll機能の追加、名前の事前設定ができます。
スイッチしたいオブジェクト、またはグループを選択し、スイッチセットを作成を押します。




するとこのようなセットが作成されます。
 
セットにはEnumアトリビュートが追加されて、表示したいオブジェクトを選ぶことができます。

セットを削除すれば、表示の状態にもとに戻すことができます。

それから、おまけでVRayマテリアルの切り替えも可能です。(VRay2.0のみ動作確認済み)
 こちらはセットは作成されず、VRayBlendMaterialのBlendAmountを1,0で切り替えてスイッチさせる事ができます。

 パーツの切り替えとかバリエーションを大量に出すときに役たつのではないでしょうか。
この発展として、シーンにあるスイッチをリスト化、保存、読み込みをできるようにしたいと思います。大枠はできてますが、公開はもう少しお待ちを。