Created on | Updated on

aiTriplanar の Coord Space: Pref の使い方

■概要

Arnold に Triplanar  という6つの側面から投影してテクスチャをマッピングする機能があります。

この機能には座標空間(Coord Space)を指定するパラメータがあり、その中に Pref 座標を指定できるのですが、その使い方について説明をします。

 

■Pref 座標

ドキュメントによると、下記のように説明されています。

Pref は「vertex in reference pose (参照ポーズの頂点)」の略です。プラグインは(通常の変形した頂点とは別に) Arnold にこれらの頂点を渡し、ノイズ シェーダで照会できるため、ノイズが参照ポーズに「くっ付き」、メッシュの変形に合わせてずれなくなります。
トライプラナー - Arnold for Maya User Guide - Arnold Renderer

 

■"Pref"に設定しただけでは動作しない?

aiTriplanarを接続したシェーダーでTriplanarのCoord Spaceをobject, pref に設定してアニメーションさせてみました。

triplanar_nodegraph.png

 

それぞれの設定でレンダリングして、アニメーションを比較しましたが、差異は見つけられません。

aiTriplanar_coordspace_object.gif

Coord Space: Object

aiTriplanar_coordspace_pref_1.gif

Coord Space: Pref

 

■Pref の設定方法

Pref を設定するには、事前にTriplanarを使用するメッシュに専用のアトリビュートを追加する必要があります。

以下は、アトリビュート追加のサンプルスクリプトです。

 

Maya2020(Python2系)の場合

import maya.cmds as cmds

def add_pref():
    # using maya python

    sel = cmds.ls(sl=True, dag=True, shapes=True, type="mesh" )

    for obj in sel:
        vertPosTemp = cmds.xform(obj + '.vtx[*]', q=True, ws=True, t=True)
 
        # split the resulting list into sets of 3
        vertPos = zip(*[iter(vertPosTemp)]*3)
        cmds.addAttr(obj, ln="mtoa_varying_Pref",  dt="pointArray")
        cmds.setAttr(obj+".mtoa_varying_Pref", len(vertPos), *vertPos, type='pointArray')

add_pref()

 

Maya2022(Python3系)の場合

import maya.cmds as cmds

def add_pref():
    # using maya python

    sel = cmds.ls(sl=True, dag=True, shapes=True, type="mesh" )

    for obj in sel:
        vertPosTemp = cmds.xform(obj + '.vtx[*]', q=True, ws=True, t=True)
 
        # split the resulting list into sets of 3
        vertPos = list(zip(*[iter(vertPosTemp)]*3))
        cmds.addAttr(obj, ln="mtoa_varying_Pref",  dt="pointArray")
        cmds.setAttr(obj+".mtoa_varying_Pref", len(vertPos), *vertPos, type='pointArray')
        
add_pref()

 

実行すると、メッシュにmtoa_varying_Prefのアトリビュートが追加されます。

mtoa_varying_pref.png

 

レンダリング結果を確認すると、メッシュのアニメーションに応じて、テクスチャが移動しているのわかります。

aiTriplanar_coordspace_pref_test.gif

Coord Space: Pref

 

テクスチャがメッシュに追従するようになったのはいいのですが、Triplanarが6方向からの投影であるため境目にあたる部分がちらついています。Blendの値を上げます。

aiTriplanar_coordspace_pref_2.gif

Coord Space: Pref, Blend=0.2

 

境目の部分がブレンドされて、ちらついていた部分がなくなりました。

 

 

 

 

 

問題が解決しない場合は、Born Digital サポートまでお問い合わせ下さい。

※ 問い合わせ対応はBorn Digitalより製品をご購入頂きましたお客様のみのサービスとなります。ご了承下さい。
サポート問い合わせ