ReadShift & maya カメラシェーダー

今日はReadShift & mayaでRedshiftカメラシェーダーです。

昨日よりSLiBを使っての実験です。個人的にはこれは今後RedShiftに同梱してほしいですね。


ちょっと明るすぎな感じです。実は前回のSLiBで説明していない箇所があるのです。

アイコンでお気づきかと思いますが、「露出」です。


数値を変えるとオーバーやアンダーの画像になります。でもこれだけでは細かい設定はできないのです。

そこでRedshift専用のカメラ設定とシェーダーを使います。
まず、専用のPerspを複製して作ります。

解りやすく名前を任意に変えてますが、普通にそのカメラのアトリビュートを見ると・・・

「オブジェクトディスプレイ」と「Mentalray」の間にRedshiftの項目があるのです。
まずは、モーションブラーのスイッチです。これはまたアニメーションの時にやりますのでONのままで結構です。次に「CameraType」です。

RedShiftのカメラで面白いのは「Fisheye」=魚眼があることです。


さらに「StereoSpherical」があります。


VR映像など様々に応用できそうですね。「Spherical」は上記の半分だけ、Clindricalは円柱レンダリングです。
では「Standerd」に戻して、LenzShaderのMapボタンを押します。さらにPhotographic Exposureを選びます。


以下のようにアトリビュートが変わります。

ISO(フィルム感度)、Shutter Time Ratio(シャッタースピード)、F-Stop(絞り値)、WhitePoint(ホワイトバランス)、ToneMapping(トーンカーブ)など、写真撮影と同じような微調整をここですべて行うことができます。

一番上のEnableのチェックでON/OFFで具合を確認できます。GPUベースの高速レンダリングなので、即チェックできるには非常に効率がいいです。

いかがでしょう?今日はここまでです。

ReadShift & maya ニュース:教育版無料+SLiB VPRプラグイン

久々にRedshift&Mayaへ戻って来ました!
まず最初にニュースからです。

http://lesterbanks.com/2017/05/redshift-announces-free-edu-licenses-institutions-come-september/

なんとRedShiftは今年の9月から教育期間向けを無料で提供するとのことです!
ただでさえ安いのに、こんなサービスいいのか?というくらい驚きです。
海外では新学期は9月からですから、それを狙っているのではと思います。

クラウドライセンスでオンラインである学校だけになりますが、1台あたり120ドル出せばオフラインのライセンスが買えるみたいですね。

映像制作している学生さんには朗報ですね。

 

さて今日のもう一つの話題はRedshiftのプラグイン「SLiB VPR (ViewPortRender) for Redshift」です。ちなみに有料プラグインで30ドルです。

まだこの連載でもレンダリングの細かい設定についてはやっていませんので、上の動画を見てもメリットが判りにくいかもしれませんので、今後何回かに別けて紹介します。

ちなみにこのプラグインはPythonで書かれています。普通のプラグインはC++言語で作成します。しかし、その場合Mayaのバージョンごとに用意しないといけない問題がでます。新しいMayaが出てもプラグインが対応してない・・・という悲しい思いをすることがあるのですが、Pythonのプラグインはそういう問題が出にくいのが利点です。


インストールして起動した状態です。結構わかりにくく、シェルフにアイコンがたくさん並びますが、「V」しか使えません(笑)。それ以外は同メーカの別のプラグインの起動用です。

で、この会社はさらにRedshift用のシェーダーを別売りしています。1つ45ドルとまあまあの値段です。時間がない場合にはお手軽かと思います。

まず最初にレンダラーの設定をRedShiftにして、さらにどれかのビューポートをアクティブにしてから「V」で起動します。すると上の図のようにチャネルボックのところにタブが出ます(ここまでがマニュアルになく四苦八苦しました!)。

このような画面が出ます。ビューの上をドラッグすればフローティングになります。

注意ですが、レンダリングの実行や確認は通常のコマンドやレンダービューが使わずに、このビューから全て行います。


一番右側の矢印が3つ回転してるボタンがレンダリング実行です。
これがONになっていると、ライトを作ったり、変更したり、カメラを変えたりなどの操作をリアルタイムで反映してくれます。

隣りにあるボタンで止めることができます。

中央あたりの数値は解像度の縦横です。キー入力で変更し、先程のボタンを押せば再計算されます。

で、この画面でALTを押すと・・・

なんと!普通のビューポートになるではありませんか!ということは、これはフローティングにするのではなく、メイン画面として使ってもいい、ということです。


これは便利ですね!ドンドン他の機能も紹介します。


アルファチャンネル,

アルファ、RBGチャンネルの確認です。

RedShift用のマテリアル、ライトの新規作成ができます。

一番左の電球アイコンで、既にあるライトの選択ができます。
カメラのアイコンは「StoreImage」でレンダリング後の画像を一時保存可能です。

一番嬉しいのはこれ!プラグインにHDRが入っていて、IBLのテストが確認できるのです。

レンダリングのビューをズームしながら再レンダリングできるボタンです。


さらに、アンビエントオクルージョンやUVの解像度などを確認できるボタンが並んでいます。

おまけですが、最初の紹介の動画はver2.0なのですが、こちらは2.1です。

次回からライトの設定の続きとカメラ、そしてレンダリングの細かいテクニックの説明になります。

文系デザイナーのためのmaya MEL/Python基礎の基礎⑤

さて、今回からPythonでのプログラムを実際に勉強していきます。

では、「基礎の基礎」らしく、そもそもプログラムって何でしょう?からやりましょう。
私としてはここのマンガが大好きでいつも学校では使ってます。

「人間がやると面倒なことをコンピュータにやらせる方法。それがプログラムだ」

名言です・・・これ以上何も説明が要りません。でも逆をいえば、

「人間が面倒だと思うことが無ければプログラムはいらない」

ということでもあります。つまり、Mayaを使っていて、面倒だなァ・・・疲れるなァ・・・と思うことが大切です。MayaのPythonに勝手にやってもらって自分は怠けたい、という気持ちを持ってください。

次に大切なのは、

「コンピュータは人間の言葉を理解してくれない。仕方がないので、人間がコンピュータが判る言葉で、やることを説明してあげる必要がある」

ということです。つまり、それがプログラム言語であり、その種類がMayaではPythonなのです。(さっきのマンガはJavaScriptです。Webブラウザのプログラムはコレ)

さらに厄介なのは、文系デザイナー(ディレクター)的な「あいまいな指示」がコンピュータは苦手なのです。「サクッとシャキッとバーンって感じで作って」とか拒否されます。

「プログラムはコンピュータの理解できるルールで、事細かく段取りを伝える」

ということです。一字一句間違えたり、手抜きの段取りはダメです。細かいこと苦手な人と、そもそも旅行や宴会の段取りが苦手!嫌い!という人はちょっと頑張らないといけないかもしれません。

ちょっと前置きが長くなりました。ゴメンナサイ・・・
ではMayaを起動してポリゴンの箱、球、ピラミッドを出してましょう。
polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -cuv 4 -ch 1;


polySphere -r 1 -sx 20 -sy 20 -ax 0 1 0 -cuv 2 -ch 1;


polyPyramid -w 1 -ns 4 -sh 1 -sc 0 -ax 0 1 0 -cuv 3 -ch 1;

それぞれのMELの命令が出て来ます。
最初に出でくる言葉がpolyCube=箱、polySphere=球、polyPyramid=ピラミッドとプリミティブごとに違うことが判りますね。これが「命令」です。
ちょっとチャネルボックスと見比べると、分割数とか大きさの数値がMELの「-?? 数値」命令と一致しているのが判ります。

では、実験です。面倒ですが、初心者のうちは必ず新規作成して、スクリプトエディタをクリアしてやりましょう!まずはこのような命令に書き換えます。コピーしてペーストした後書き換えてください。

polyCube -w 1 -h 2 -d 0.5;

です。あれ?文が短いですね・・・

エラーは出ません。実は命令は短くしてもmayaが空気を読んでくれる場合があります。
-w 1 =幅が1
-h 2 =高さ2
-d 0.5 =深度0.5
なのは判りますね。この一字一句、スペースまでルールまで決まっています。
では次です。

polySphere -r 0.5 -sx 8 -sy 8;

これは、-r 0.5が半径、-sx 8 -sy 8がそれぞれ分割数ですね。
では、次の実験です。

polyPyramid -ax 1 0 0;

ピラミッドが横向きでXの方向になりました。-axはもともと010だったのをこのように変えました。つまり、これは010でYが上、110でXが上になるピラミッドができます。

このようにルールに従い、命令と数値を組み合わせて1行に書くことがプログラムなのが分かりました。

では、この短くした3行を、昨日の「Free ezMel2Python for Maya」で変換します。

polyCube -w 1 -h 2 -d 0.5;
polySphere -r 0.5 -sx 8 -sy 8;
polyPyramid -ax 1 0 0;

↓変換

import pymel.core as pm
pm.polyCube(h=2, d=0.5, w=1)
pm.polySphere(sy=8, r=0.5, sx=8)
pm.polyPyramid(ax=(1, 0, 0))


変換した命令4行を、スクリプトエディタを必ず「Python」に切り替えてコピー&ペーストして実行(CTRL+Enter)すれば、ちゃんと長い箱、ローポリ球、横向きピラミッドができました。
なんかおかしくないですか?作った記憶が無い1行が増えてますね?

import pymel.core as pm

面倒ですが一度mayaを再起動して、この行を削除した3行で実行します。

エラーが出て動かないのです・・・

削除したこの行はMayaでPythonを使うために必須な行です。
最初の回で言ってますが、Mayaは基本MELしか判りません。PythonはGoogleとか使うくらいですから、一般的なIT関連の命令しか知りません。それでは、MayaをPythonで動かすことができないのです。
別の言葉しか解らない外国人が同居している、という状態です。

だからわざわざスクリプトエディタもMELとPythonの2つの受付窓口があって、それぞれの命令しか受け付けないようになってます。
そこで考えましたのです。

PythonにMELの命令を覚えててください=「import pymel.core as pm」

という方式なのです。各行の最初に「pm.」がついていますね。「これがついているのはMELの命令ですから、Pythonさん解ってくださいね」ということなのです。
なのでこの1行と最初のpm.は意味が解らないままでいいので、必ず付ける、という風に覚えてください。

今日はここまでです。これくらいのペースでゆっくりやりますので、気長にやっていきましょう!