Maya2014でAnimLayerを使ったアニメーションをClip化してTraxEditorで編集したいんだけど、レイヤーをマージしなければいけないみたい。
うーん、AnimLayerをレイヤーごとにClip化してみるかな。
2017年7月14日金曜日
2015年3月8日日曜日
[UE4]UE4の座標軸とMayaの座標軸をあわせてエクスポート
2015/3/15追記
========================================================================
下記の内容はただしくありませんでした。。。
軸のY軸の向きを変えなくても、カメラをグローバルでY軸に90度
回転させれば、ただしく出力されます。
90度回転してエクスポートするカメラリグを作成すれば特に問題なく出力できます。
========================================================================
いままでMayaとUE4の座標軸の違いにそこまで意識はしてませんでしたが、マチネでMayaからエクスポートしたカメラを使用する際、軸がずれてうまくいかなかったので座標軸について検証してみました。
UE4のフロント軸に関してですが、X軸という話ですが
今回の検証ではMayaのフロント軸、Z軸を基準としています。
エクスポート時にはZupのオプションを入れて出力しています。
そのままエクスポート
Mayaでエクスポートしたカメラと座標軸がずれているためカメラがただしく再生されません。
90度回転させてエクスポート
90度回転させるとカメラと一致しました。
これでカメラの移動はMayaと同じになりました。
これでMayaで作成したカメラをUE4で利用できそうです。
========================================================================
下記の内容はただしくありませんでした。。。
軸のY軸の向きを変えなくても、カメラをグローバルでY軸に90度
回転させれば、ただしく出力されます。
90度回転してエクスポートするカメラリグを作成すれば特に問題なく出力できます。
========================================================================
いままでMayaとUE4の座標軸の違いにそこまで意識はしてませんでしたが、マチネでMayaからエクスポートしたカメラを使用する際、軸がずれてうまくいかなかったので座標軸について検証してみました。
UE4のフロント軸に関してですが、X軸という話ですが
今回の検証ではMayaのフロント軸、Z軸を基準としています。
エクスポート時にはZupのオプションを入れて出力しています。
そのままエクスポート
90度回転させてエクスポート
90度回転させるとカメラと一致しました。
これでカメラの移動はMayaと同じになりました。
これでMayaで作成したカメラをUE4で利用できそうです。
2014年4月27日日曜日
[Maya]ShaderFXでCustom Codeをつかってみる
カスタムコードを使用するにはshaderFXエディターを
アドバンスモードに変更する必要があります。
shaderFXエディターで右クリック、tools>toggle Advance Modeを
選択してアドバンスモードに変更します。
アドバンスモードに切り替えると使用できるノードとグループの展開が
可能になります。グループに四角いアイコンが追加されるのでクリックすると
グループが展開できるようになります。
HwShaderNodes>various>Custom codeでノードを作成します。
customCodeNodeのアトリビュートのeditボタンでコードを編集する
ウィンドウが表示されます。
こちらからサンプルファイルがダウンロードできます。
◇ShaderFX
https://gist.github.com/hiko9lock/11342282
Uniform変数を使用にするにはCustomCodeノードの
Texture,Sampler Stateが必要となります。
HwShaderNodes>Texture>Texture Component
HwShaderNodes>Texture>Sampler Stateでノードを作成して
Custom CodeノードのTexture,SamplerStateに接続します。
また、カスタムコード関数の引数にfloat2 uvを指定しているので
HwShaderNodes>Inputs common>UV Setでノードを作成して
Custom Codeノードのuvに接続します。
14行目の
指定されたuniform変数となります。
すべての環境をサポートするにはifステートメントを使用する必要
があります。詳しくはヘルプ参照で。
◇Maya2015オンラインヘルプ
shaderFXカスタムコードノード
今回作成したカスタムシェーダーをplaneに適用させたものになります。
customCodeでフィルター処理もできるので、シェーダー作成も
面白くなりそうですね。
アドバンスモードに変更する必要があります。
shaderFXエディターで右クリック、tools>toggle Advance Modeを
選択してアドバンスモードに変更します。
アドバンスモードに切り替えると使用できるノードとグループの展開が
可能になります。グループに四角いアイコンが追加されるのでクリックすると
グループが展開できるようになります。
HwShaderNodes>various>Custom codeでノードを作成します。
customCodeNodeのアトリビュートのeditボタンでコードを編集する
ウィンドウが表示されます。
こちらからサンプルファイルがダウンロードできます。
◇ShaderFX
サンプルの様にテクスチャーをカラーとして扱うときはいいのですが、
テクスチャーをUniform変数として渡したい時があります。
下記はそのやり方です。
https://gist.github.com/hiko9lock/11342282
Uniform変数を使用にするにはCustomCodeノードの
Texture,Sampler Stateが必要となります。
HwShaderNodes>Texture>Texture Component
HwShaderNodes>Texture>Sampler Stateでノードを作成して
Custom CodeノードのTexture,SamplerStateに接続します。
また、カスタムコード関数の引数にfloat2 uvを指定しているので
HwShaderNodes>Inputs common>UV Setでノードを作成して
Custom Codeノードのuvに接続します。
14行目の
output+= tex2D( SFX_SAMPLER0, UV+float2(i*dist, j*dist)).xyz;ですが、これはCGFX用の書き方となり、SFX_SAMPLER0は
指定されたuniform変数となります。
すべての環境をサポートするにはifステートメントを使用する必要
があります。詳しくはヘルプ参照で。
◇Maya2015オンラインヘルプ
shaderFXカスタムコードノード
今回作成したカスタムシェーダーをplaneに適用させたものになります。
customCodeでフィルター処理もできるので、シェーダー作成も
面白くなりそうですね。
2014年4月24日木曜日
[Maya]Maya2015 ShaderFXでフレネルを使ってみる
Maya2015でShaderFXが使えるようになったので、使ってみました。
今回はフレネルを作成したいと思います。

Fresnel multiplerをEmissiveへ接続したいのですが、型が違うためコネクションできません。
黄緑はfloat,水色はfloat3のため変換が必要になります。
フレネルはカメラと法線からフォールオフ値を計算します。
このフォールオフ値をマスクと利用するためLinearInterpolateMixのmixに
マスクとしてコネクションします。
Hw Shader Node>math>LinearInterpolateMixで作成します。
Fresnel multiplerをmixにコネクションします。
LinearInterpolateMixのアウトプットはfloat4となっているので、さらに変換が必要になります。
Hw Shader Node>values>vectorComponentを選択してvectorComponentを作成します。
このノードはfloat4から任意の成分を抜き出すことができます。
vectorComponentのインプットにLinearInterpolateMixのResultを接続、
vectorComponentのXYZがRGBのfloat3になっているので、これでやっと
Emissiveと接続できるようになりました。
しかし、輪郭だけが白くなっているためフレネルのプロパティの編集が必要です。
グループを開くと、FresnelのMinの値に0.8がはいっていたのが原因のようでした。
グループはTool>ToggleAdvanceModeでアドバンスモードに切り替えるとひらけるようになります。
Fresnelそれぞれの値も調整したいので
Hw Shader Node>values>floatでそれぞれのノードを作成してコネクションします。
これでフレネルっぽくなりました。
またNormalのアトリビュートにNormalMapノードを接続して、
テクスチャーを割り当てるとノーマルマップの法線情報もフレネルに反映されます。
ノーマルに接続されているMultiplyはUVをリピートするために作成しました。
今回ShaderFXを改めて使ってみましたが、実機環境と同じようなシェーダがリアルタイムに使えるのはやっぱりいいなぁと感じました。
今回はフレネルを作成したいと思います。

□ShaderFXマテリアルの作成
- hyperShadeからからShaderFX shaderを選択して、マテリアルを作成します。
- マテリアルアトリビュートからOpenShaderFXを選択してエディタウィンドウを開きます。
- 右クリックでメニューを開き、Hw Shader Node>Lighting>Fresnelを選択します。
Fresnel multiplerをEmissiveへ接続したいのですが、型が違うためコネクションできません。
黄緑はfloat,水色はfloat3のため変換が必要になります。
フレネルはカメラと法線からフォールオフ値を計算します。
このフォールオフ値をマスクと利用するためLinearInterpolateMixのmixに
マスクとしてコネクションします。
Hw Shader Node>math>LinearInterpolateMixで作成します。
Fresnel multiplerをmixにコネクションします。
LinearInterpolateMixのアウトプットはfloat4となっているので、さらに変換が必要になります。
Hw Shader Node>values>vectorComponentを選択してvectorComponentを作成します。
このノードはfloat4から任意の成分を抜き出すことができます。
vectorComponentのインプットにLinearInterpolateMixのResultを接続、
vectorComponentのXYZがRGBのfloat3になっているので、これでやっと
Emissiveと接続できるようになりました。
しかし、輪郭だけが白くなっているためフレネルのプロパティの編集が必要です。
グループを開くと、FresnelのMinの値に0.8がはいっていたのが原因のようでした。
グループはTool>ToggleAdvanceModeでアドバンスモードに切り替えるとひらけるようになります。
Fresnelそれぞれの値も調整したいので
Hw Shader Node>values>floatでそれぞれのノードを作成してコネクションします。
これでフレネルっぽくなりました。
またNormalのアトリビュートにNormalMapノードを接続して、
テクスチャーを割り当てるとノーマルマップの法線情報もフレネルに反映されます。
ノーマルに接続されているMultiplyはUVをリピートするために作成しました。
今回ShaderFXを改めて使ってみましたが、実機環境と同じようなシェーダがリアルタイムに使えるのはやっぱりいいなぁと感じました。
2014年4月19日土曜日
[Maya]ModelingToolKitでシュリンクラップ
以前使ったことはあるのですが、使い方を忘れてのでメモしておきます。
ZBrushでZRemesherでリトポを試みたものの思った通りに
ならなかったのでGoZでMayaにもってきました。
cubeに2回ほどsmoothを適用させてtargetととなるメッシュを作成します。
EditMesh>show modeling toolkitでモデリングツールキットを表示します。
TransformConstraintsからsourceとなるmeshを選択します。
targetとなるメッシュを選択します。
Edit>shringwrap Selectionを実行します。
ターゲットに形状が投影されました!
MayaLTでも同様の操作でOKです。
ZBrushでZRemesherでリトポを試みたものの思った通りに
ならなかったのでGoZでMayaにもってきました。
cubeに2回ほどsmoothを適用させてtargetととなるメッシュを作成します。
EditMesh>show modeling toolkitでモデリングツールキットを表示します。
TransformConstraintsからsourceとなるmeshを選択します。
targetとなるメッシュを選択します。
Edit>shringwrap Selectionを実行します。
ターゲットに形状が投影されました!
MayaLTでも同様の操作でOKです。
2014年4月14日月曜日
[ZBrush]ZRemesherでリトポロジー
先日作ったスカルをZRemesherでリトポしてみました。
200万ポリから2万ポリの削減です。
歯などはポリゴンの流れを考えて作ってないので
丸まってしまってますね、、、手動でリトポしたほうがよさそうです。
TargetPolygonCount以外の数値は変えてません。
部分的にポリゴンの密度を変えられるようなので
あとで調整してみます。
200万ポリから2万ポリの削減です。
歯などはポリゴンの流れを考えて作ってないので
丸まってしまってますね、、、手動でリトポしたほうがよさそうです。
TargetPolygonCount以外の数値は変えてません。
部分的にポリゴンの密度を変えられるようなので
あとで調整してみます。
2014年2月21日金曜日
[SubstanceDesiner]Mayaでsubstanceファイルを読み込む
Mayaでsubstanceを使うときのメモです。
- HyperShadeから2DTexture->substanceでsubstanceノードを作成。
- substanceTextureAEでsubstanceFileのところに.sbsarを指定。
- createShaderNetworkをボタンを押せば、Materialが作成されます。
SubstanceDesignerは購入したから一度も触ってないので、そろそろ始めたいですね、、、
2013年8月16日金曜日
[Unity3d]mayaのカメラをunityにインポートするためのMel作成
UnityではMayaのカメラアトリビュートを読み込めないのでサポート用の
スクリプトを作成しました。
□参考
Mayaカメラ設定をUnityにインポートするTips
http://www.slideshare.net/nyaakobayashi/mayaunity
□スクリプト
hq_convertCameraAttribute.mel - gist
カメラ設定をロケータにコネクションするMelです。
ロケータは自動で生成されますので作成する必要はありません。
https://gist.github.com/hiko9lock/6249942
適宜の場所にインストールしてください。
スクリプトを作成しました。
□参考
Mayaカメラ設定をUnityにインポートするTips
http://www.slideshare.net/nyaakobayashi/mayaunity
□スクリプト
hq_convertCameraAttribute.mel - gist
カメラ設定をロケータにコネクションするMelです。
ロケータは自動で生成されますので作成する必要はありません。
https://gist.github.com/hiko9lock/6249942
適宜の場所にインストールしてください。
- まず、カメラを作成してFitResolutionGate(解像度ゲートに適合)をvertical(垂直)に設定します。
- 作成したカメラを選択して、コマンド”hq_convertCameraAttribute”を実行します。カメラのアトリビュートがロケータにコネクションされます。
- カメラアニメーションを作成します。
- あとはロケータにキーをベイクしてロケータをFBXに書き出します。
カメラアトリビュートの関連付けですが資料と同じにしてあります。
ニアクリップ →スケールX
ファークリップ →スケールY
FOV →スケールZ
Maya側での作業のみとなりますので、Unityでのカメラデータインポートは資料を参考に試してみてください。
2013年7月17日水曜日
[UDK]UDKのためのノーマルマップ作成まとめ
UDKで使うノーマルマップを作成するときの設定をまとめます。
今回作成するノーマルマップはMayaとUDKの座標系を考慮しての作成となります。
・Maya 右手系のYアップ
・UDK 左手系のZアップ
UDKのタンジェントスペースは左手系なのでシェイプノードのアトリビュートで左手系のタンジェントスペースに設定します。
ローモデルとハイモデルを作成してTransfarMapでノーマルマップを焼付けます。
凸になったノーマルマップが生成されます。
このR、Gチャンネルの向きがUDKで正しいノーマルマップとなります。
今回作成するノーマルマップはMayaとUDKの座標系を考慮しての作成となります。
・Maya 右手系のYアップ
・UDK 左手系のZアップ
UDKのタンジェントスペースは左手系なのでシェイプノードのアトリビュートで左手系のタンジェントスペースに設定します。
ローモデルとハイモデルを作成してTransfarMapでノーマルマップを焼付けます。
凸になったノーマルマップが生成されます。
このR、Gチャンネルの向きがUDKで正しいノーマルマップとなります。
□Nvidea normalMapFilterの設定
デフォルトの設定でOKです。
白の部分が凸、黒の部分が凹となります。
□xNormalの設定
Y軸をフリップする必要があります。
NormalMapのオプションを設定します。
いまさらですが、ノーマルマップはアウトプットするツールによって変わるので必ずチャンネルの向きを確認が必要です。
2013年4月12日金曜日
[イベント]Autodesk UNFOLD 2014 ~M&E 2014
Autodesk製品の発表イベントUNFOLD 2014に行って来ました。
全プログラム受講しましたが、MayaユーザーということでMayaのみの記載とさせていだだきます。(SIは受講してませんでした。。。)
今回のアップデートの主な印象は、ツールまわりのユーザビリティの向上とシェーダーのリアルタイム性の向上が印象的でした。DX11シェーダーによるテッセレーション機能、ボーナスツールなどのサブツールがMayaにインテグレートされたりです。
◇モデリングツール
モデリングフローではマウスの操作だけでモデリングコンテキストにアクセスできたり、ポイントを定義して領域をドラッグするとポリゴンが生成されたり、より直感的に操作できるようになったのではないでしょうか。
◇シーンアセンブリツール
大規模なアセットを管理する仕組みとして、GPUでシーンキャッシュを利用した表示(Alembic)のコントロールが可能となりました。大規模なシーンを扱うときは不可欠な機能となりそうです。
◇グリースペンシル
ビューポートに直接描ける機能で、コンテレベルで使えそうです。
まだ試してないので、後ほど試してみたいと思います。
全プログラム受講しましたが、MayaユーザーということでMayaのみの記載とさせていだだきます。(SIは受講してませんでした。。。)
今回のアップデートの主な印象は、ツールまわりのユーザビリティの向上とシェーダーのリアルタイム性の向上が印象的でした。DX11シェーダーによるテッセレーション機能、ボーナスツールなどのサブツールがMayaにインテグレートされたりです。
◇モデリングツール
モデリングフローではマウスの操作だけでモデリングコンテキストにアクセスできたり、ポイントを定義して領域をドラッグするとポリゴンが生成されたり、より直感的に操作できるようになったのではないでしょうか。
◇シーンアセンブリツール
大規模なアセットを管理する仕組みとして、GPUでシーンキャッシュを利用した表示(Alembic)のコントロールが可能となりました。大規模なシーンを扱うときは不可欠な機能となりそうです。
◇グリースペンシル
ビューポートに直接描ける機能で、コンテレベルで使えそうです。
まだ試してないので、後ほど試してみたいと思います。
2011年10月18日火曜日
Maya Python for Games and Film
Maya Python for Games and
Filmがamazonから届きました。
今までpythonでウィンドウを作るのが面倒だったのでmelで作ってたけど、クラスを使用
してウィンドウを管理するレシピなど、実用的なテクニックが掲載されてます。
melからpythonに移行しようとしている方には良いのではないでしょうか。
今までpythonでウィンドウを作るのが面倒だったのでmelで作ってたけど、クラスを使用
してウィンドウを管理するレシピなど、実用的なテクニックが掲載されてます。
melからpythonに移行しようとしている方には良いのではないでしょうか。
2010年9月7日火曜日
maya imageMagic
Mayaにスモールユーティリティとして付属しているImageMagic。
imconvert -append in_file1 in_file2 outfile imconvert -crop 1024x1024 in_file out_file imconvert -identify -verbose in_file
-appendで縦結合
+appendで横結合
登録:
投稿 (Atom)




















