MYAM_QuickSelector 途中経過

今年の1月末くらいに作り始めたのはいいものの、公私ともに忙しく、なかなか手がつけられなかったツール「MYAM_QuickSelector」が、このGWでだいぶ形になってきたので、途中経過を駆け足で記事にしてみます。

Qtは目的に到達するまでの手続きが多く面倒な部分も多いですが、慣れるて来るととても楽しいです。もうMaya標準のGUIライブラリは触れません。


■画面サンプル

bandicam 2016-05-08 22-32-34-391

好きな画像をツール上からキャプチャし、背景に置いた状態で好きなノードに対応するボタンを配置し、いつでも簡単に選択できるようになります。
選択できるアイテムはいわゆるDAGオブジェクトだけでなく、マテリアルなどのDGノードにも対応します。


■マルチプラットフォーム(DCCツール間)

bandicam 2016-05-08 23-10-05-047

Maya上でもHoudini上でも全く同様に動作します。(現在はMayaのみ対応ですが)
その他にも、最小限の拡張でPySideが使えるすべてのDCCツールに対応可能です。
DCCツールを変えた時にも、操作法が統一されていると覚え直す必要もなく楽です。


■キャプチャ機能

bandicam 2016-05-08 23-13-10-644

Bandicamのようにウインドウを使ってキャプチャ範囲を指定して、背景画像として取り込むことができます。


■セレクターボタンは任意の画像が使えます

bandicam 2016-05-08 23-12-43-450

ジョイントやコントロールリグなど、タイプごとに任意の画像をアイコンとして設定できます。
また、各アイコンのサイズも自由に変更できるため、よく使うコントローラを目立たせておくなど、視認性を高められます。
アイコン置き場フォルダに任意の画像を格納しておけば、自動的にツール内で使用できるようになります。


■その他

その他にも、配置したボタンの整列なども手軽に行なえます。


もう少し洗練して、早くリリースしたいなあ。

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

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

リンク

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

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

 

書籍「マイクロインタラクション ―UI/UXデザインの神が宿る細部」

良いツールの要素とはなんだろうと考えた時、第一に安定性や機能の豊富さ等が挙げられると思いますが、それと同程度以上に必要な要素とは、ユーザにとっての使い易さやわかり易さなのではないかと思います。

ツールに含まれる動作一つをマイクロインタラクションと呼びます。
マイクロインタラクションは、トリガールールフィードバックループとモードの4ステップに分割して考えることができます。

トリガー : 動作が起こるきっかけ
ルール : 動作内容
フィードバック : ルールにより引き起こされる反応
ループとモード : ルールの長期的な動作

本書では、ツール設計の際、いかに良いマイクロインタラクションを設計し、ユーザーフレンドリーなツールをつくり上げるかに焦点を当てながら、既存のWebサイトやソフトウェアからGUIを抜粋し具体例として挙げ、それらの良い点と悪い点を考察します。

ツールを作るとき、理解しやすく使いやすいツールにしたいと考えるけれど、その方法に明確な指標を持てておらず、結果的にユーザの操作に対して反応がぎこちなく、分かりにくいツールになってしまう悩みを持っているような方には特にお勧めしたい一冊です。

Maya – リソースイメージを抽出

ツールのGUIを作ってる時、Mayaのリソースイメージをそのまま流用したいことがある。
わざわざキャプチャしたりするのは面倒なので、上記のコマンドでごっそりイメージファイルを抜き取って、必要なアイコンを使ってしまおう。


こんな感じで簡単にアイコンを抽出出来た。

書籍「その数式、プログラムできますか?」

 論文や教科書を参考に、数式をプログラムコードに落とし込みたいと思った時、複雑な数式をコードに落としこむのは、高い数学の素養を必要とすることが多く、なかなか骨の折れる話だったりする。この本は、そんな時の一助となる書籍です。

訂正
以前書いたレビューでは、数式をプログラムコードに落としこむ方法に焦点を当てた本であると取られてしまったかもしれません。
そのため、少し補足をする必要があります。

この本は、ジェネリックプログラミングと呼ばれるプログラミング手法に焦点が当てられています。
※ジェネリックプログラミングとは、データの形式に依存しない高効率なコードを書くスタイルで、ポリモーフィズムの一種。詳しくは以下をご参照ください。
ジェネリックプログラミング-Wikipedia
C++ジェネリックプログラミング入門

数式をコードに落としこむ下りも当然登場するのですが、どちらかと言うと既存の定理の数式(アルゴリズム)をより一般化し、最適化し、結果が正しいことを証明し、コードに落としこんでいくという内容がメインで、例えば、Σはプログラムコードに落としこむとどういったコードになるのかといった、数式をコードに落としこむ方法を一から懇切丁寧に解説する書籍ではありません。

もしこの記事を見た方が誤解して買ってしまい、話がちゃうやんけ!となってしまっては申し訳ないので訂正させていただきます。(すみません)

内容は非常に興味深く、役に立つ書籍だと思いますので変わらずおすすめしたいと思います。