MYAM_genericSelector(仮名)を作り始めました

昔とある仕事場で作成した MYAM_quickSelector2 の後継ツールをQtで作り始めました。

前述のツールの機能に加え、足したい機能は大体以下の様な感じです

・オブジェクトアイコンに任意の画像が使用できる
・オブジェクトアイコンのサイズや形状を自由に変更できる
・Maya/MotionBuilder/Houdiniあたりで共通して使えるようにする
・選択オブジェクトのグループ登録/簡単選択

まだほとんど仮組みの状態ですが、完成したらCreative Crashあたりで公開すると思います。

MYAM_genericSelector_SS001

Ricoh THETA S でIBL画像を作成するためのスクリプトを書きました

簡易的なIBL用のHDRIを作成するため、素材になる天球マップ画像をRicoh THETA SをiPhoneで遠隔操作して手軽にオートブラケット撮影できるようにしてみました。

撮影方法は、ISOを固定しEVを変化させて行う露出ブラケット撮影になります。
今の所、使用する撮影モードではシャッタースピードを同時に操作できなそうなので、自動設定にしてあります。

THETA SはRAWデータでの撮影ができず、また撮影時に厳密なホワイトバランス設定などもできないので精度は落ちますが、簡易的に使用するにはそこそこ使えるHDRIが得られると思います。

iOSデバイスに限らず、THETA Sとネットワーク接続できるデバイスで、なおかつ標準的なPythonを実行できるなら同じように使用できるはずです。

というわけで、需要がありそうなのでソースコードを公開します。

時間の関係で良い作例の用意ができていませんが、そのうち貼りたいと思います。

・使い方

1:デバイスとTHETA Sをネットワーク接続接続します

2:下記スクリプトをデバイス内のPython実行環境で実行します
当方は、iPhone6S+上で iOS用のPython 2.7 というアプリを使用しています。

3:撮影されたJPEG画像をHDR ShopLuminance HDRなどを使ってHDRIにします

・設定

設定の変更を行うにはコードを直接書き換える必要があります。
撮影枚数は、ThetaSettingsの evs で指定されているEV値の数で指定されます。
撮影ごとにリスト内のEV値がそれぞれ使用されます。

・EV値と撮影枚数の設定

指定できるEV値は、上記の Full で指定されている13個の値になります。
THETA Sは一枚撮影するごとに内部処理に約8秒ほどかかるようなので、撮影枚数が多くなると時間がかかります。
必要に応じ、不要な値を削除するなどして調整してください。

・各種オプションの設定

現在は、上記を指定できます。
必要に応じ、RICOH THETA API v2 Referenceを参照して値を設定してください。
といいつつおそらく上記の中では iso と _shutterVolume くらいしかいじらないと思います。

・_shutterVolume
0−100の間で指定します。0が無音です。

・iso
以下の値が使えます
100, 125, 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600

Fabric Engine 2 プラグインをMayaへ導入する

ふと気が付くとFabric Engine 2.0 がリリースされていたので、導入方法をメモしておきます。
やり方はほとんどバージョン1.15.3と変わらず。ライセンス入力あたりだけが大きく違います。

説明が急ぎ足なので、後で加筆修正するかも。


■Fabric Engine サイト

http://fabricengine.com/


■ダウンロードリンク

以前のようにEvaluation Lisenceのダウンロードリンクはありません。
ライセンスは後から取得し入力します。

FabricEngine-2.0.0-Windows-x86_64.zip
約500MB程度。ダウンロードを待ち、完了させます。


■解凍とコピー

ダウンロードが完了したら、zipファイルを解凍します。
解凍してできたフォルダ「FabricEngine-2.0.0-Windows-x86_64」は、C:\Program Filesの直下に置きました。


■ライセンスの取得

再びダウンロードページに戻り、ページ下部にある評価ライセンス請求フォームへ記入し、送信します。


送信が完了すると、ライセンスコードが表示されます。

このライセンスコードを保存しておき、あとでFabric Engineのライセンス登録フォームに記入します。


■Maya.envの編集

・以下を追加
MAYA_MODULE_PATH=C:\Program Files\FabricEngine-2.0.0-Windows-x86_64\DCCIntegrations\FabricMaya2014;


■Maya起動とプラグインのロード

ロードが完了すると、メニューに「Fabric」が追加されます。


■ライセンスの入力

ちょっと曖昧ですが、初回のプラグインロード時か初回のグラフ作成時にライセンス入力を求められるので、以前の手順で入手していたライセンスコードをコピーペーストして認証を完了させます。


 

■グラフを作ってみる

Fabricメニュ- → Create Graph

今バージョンから、メインで使用するノードタイプがcanvasNodeに変更されたようです。

Open Canvas ボタンを押します。

その他のノードベースツールで定番の操作、TABキーを押し、ノード名の一部を入力することでインテリセンスを使用して任意のノードを簡単に作成できます。

また、左右端のスライドバーをドラッグすると、ノード一覧が表示されます。
サブカテゴリを開き、キャンバス内にドラッグしてノードを追加できます。

ポートの追加は、左右の入出力ポードリストを右クリックし、Create Portを選択して行えます。

過去に作成したツールのご紹介

リンク

テクニカルアーティストを自称しているのに、あまりにも普段からツールネタが少ないのはどうかと思っていたところ、許可がいただけたので、自分がこれまで作ってきたツールの一部を載せてみたいと思います。

ご興味のある方はどうぞご覧ください。

 

Fabric Engine 1.15.3 プラグインをMayaへ導入する

Fabric Engine 1.15.3 を Maya 2014 64bit(EN) に導入するまでの手順を解説します。


インストール


 ・Fabric Engine公式サイトでファイルをダウンロード

 まずは、Fabric Engineのダウンロードです。
Fabric Engine公式サイトへ行きダウンロードします。

【Fabric Engine】http://fabricengine.com/

 今回は個人的に評価/研究のために使用するので、Evaluation ライセンスでダウンロードしました。


REQUEST LICENSEを押します。
すると、ユーザー情報の登録フォームページが開きます。


・ユーザー情報登録フォームに必要事項を入力

各項目を入力します。

First Name : 姓
Last Name : 名
E-Mail : メールアドレス
JOB Title : 役職
Company : 会社名
WebSite : 会社のWebサイトURL(個人であれば個人サイト)

Please tell us a little about what you
do and how you plan to use Fabric Engine.

Fabric Engineを使用する目的を簡単に記入します。

入力が終わったらSUBMITを押します。
すると、ダウンロードページが開きます。


・ダウンロードページ

使用するOSのブロックにあるDOWNLOADボタンを押し、ダウンロードを開始します。

※当方はWindows版を使用するので、Windows環境での解説をします。


・ファイルの解凍と配置

 ダウンロードした「FabricEngine-1.15.3-Windows-x86_64.zip」を解凍します。
解凍して出来たフォルダ「FabricEngine-1.15.3-Windows-x86_64」を任意の場所へ移動します。
今回は、分かりやすい C:\Program Files 直下に移動する事にしました。


・Maya.envを編集しモジュールパスを通す

Maya.envファイルはMaya2014の場合、以下のパスにあります。

C:\Users\USER_NAME\Documents\maya\2014-x64\Maya.env

上記.envファイルをテキストエディタで開き、以下の行を追加します

※各パスは各々の環境に合わせて適宜書き換えてください。
※当方の環境はMaya2014ですので、FabricSpliceMaya2014SP3にします
※良いエディタがない場合、ワードパッドは使わずメモ帳を使用すると安心です。


・MayaにFabric Engine(FabricSpliceMaya.mll)をロードする

 Mayaを起動し、Plugin Managerを開きます。
前の手順でMaya.envに追記された「MAYA_MODULE_PATH」で示されるパスの中にFabricSpliceMaya.mll があることを確認し、Loadedにチェックを入れます。問題なくチェックできればロード完了です。
必要に応じてAuto Loadをチェックしておくと、次回以降のMaya起動時に自動ロードされるようになり便利です。

 緑色の i ボタンを押し、プラグインにより追加されたノードやコマンドを確認してみます。

 以上でMayaへのFabric Engineの導入は完了です。


・ノードを作ってみる

 試しに、Mayaで以下のPythonコードを実行してみます。

 Maya起動後の初回ノード作成時は、Fabric Engineのシステムをロードするためか、実際にノードが作成されるまで結構時間がかかります。

 先ほど作成したspliceMayaNodeノードをアトリビュートエディターで表示してみました。

 実際にコードを編集する際は、Open Splice Editor ボタンで開くSplice Editorを使用することになります。

 具体的な使い方やTIPSは追々勉強しながら書いていこうと思います。

Python SOPでデフォーマーを作ってみる

リクエストがあったのでVOP SOPのような処理をPython SOPで行う方法を書いてみる。
とりあえず、ノード構成はこんな感じでやってみる。

■Python SOP

myDeformerはPython SOP
Python SOPはデフォルトの状態だと以下のようにコードが記述されている。

 

hou.pwd()はPython SOP自身のノードオブジェクトを返す。
Node.geometry()は自身に入力されたhou.Geometry型のジオメトリオブジェクトを返す。

geometryの中にはPointやEdgeやPrimitive型のオブジェクトが含まれており、実際に形状や色を変更する際は、これらのコンポーネントオブジェクトを取得して操作する。

■コンポーネントの取得

■Pointリストの取得
points = geo.points()

■Primitiveリストの取得
prims = geo.prims()

それぞれのコンポーネントに一律の処理を行うには?

 

 

■pointを移動してみるサンプル

 

 

・Gridを変形

・Sphereを変形

■各オブジェクトのリファレンスマニュアル

各オブジェクトの使い方は以下のマニュアルを参照すべし

・hou.Geometry
http://sidefx.jp/doc/hom/hou/Geometry.html

・hou.Point
http://sidefx.jp/doc/hom/hou/Point.html

・hou.Prim
http://sidefx.jp/doc/hom/hou/Prim.html

Maya Python から Maya APIに進む

スクリプトで出来ることは、ほとんど出来る気がしてきたので、次は、一度挫折したC++ APIに着手していこうと思う。
PythonでクラスとかのOOP慣れしたせいか、意外とサクサク勉強が進んでる。
この調子だと、半年かからずにそこそこのプラグインが量産できるようになりそうな予感。