docs.unity3d.com
    目次を表示する/隠す

    Transform ノード

    説明

    入力値 (In) の値を 1 つの座標空間から別の座標空間へ変換した結果を返します。ノードのドロップダウンメニューで、変換元と変換先の座標空間を選択できます。

    ポート

    Name Direction タイプ 説明
    In 入力 Vector 3 入力値
    Out 出力 Vector 3 出力値

    制御

    Name タイプ オプション 説明
    From ドロップダウン Object、View、World、Tangent、Absolute World 変換元の空間を選択します。
    To ドロップダウン Object、View、World、Tangent、Absolute World 変換先の空間を選択します。

    World と Absolute World

    空間オプション World と Absolute World を使用して Position の値の座標空間を変換できます。空間オプション World はスクリプタブルレンダーパイプラインのデフォルトのワールド空間を使用して位置の値を変換します。空間オプション Absolute World は、どのスクリプタブルレンダーパイプラインでも、絶対ワールド空間を使用して位置の値を変換します。

    Transform ノード を使用して位置の値用ではない座標空間を変換する場合には、空間オプション World の使用が推奨されます。位置を表すものではない値に Absolute World を使用すると、予期せぬ動作が発生する可能性があります。

    生成されるコードの例

    以下のサンプルコードは、Base モード毎に、このノードの出力の一例を示したものです。

    World > World

    float3 _Transform_Out = In;
    

    World > Object

    float3 _Transform_Out = TransformWorldToObject(In);
    

    World > Tangent

    float3x3 tangentTransform_World = float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal);
    float3 _Transform_Out = TransformWorldToTangent(In, tangentTransform_World);
    

    World > View

    float3 _Transform_Out = TransformWorldToView(In)
    

    World > Absolute World

    float3 _Transform_Out = GetAbsolutePositionWS(In);
    

    Object > World

    float3 _Transform_Out = TransformObjectToWorld(In);
    

    Object > Object

    float3 _Transform_Out = In;
    

    Object > Tangent

    float3x3 tangentTransform_World = float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal);
    float3 _Transform_Out = TransformWorldToTangent(TransformObjectToWorld(In), tangentTransform_World);
    

    Object > View

    float3 _Transform_Out = TransformWorldToView(TransformObjectToWorld(In));
    

    Object > Absolute World

    float3 _Transform_Out = GetAbsolutePositionWS(TransformObjectToWorld(In));
    

    Tangent > World

    float3x3 transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal));
    float3 _Transform_Out = mul(In, transposeTangent).xyz;
    

    Tangent > Object

    float3x3 transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal));
    float3 _Transform_Out = TransformWorldToObject(mul(In, transposeTangent).xyz);
    

    Tangent > Tangent

    float3 _Transform_Out = In;
    

    Tangent > View

    float3x3 transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal));
    float3 _Transform_Out = TransformWorldToView(mul(In, transposeTangent).xyz);
    

    Tangent > Absolute World

    float3x3 transposeTangent = transpose(float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal));
    float3 _Transform_Out = GetAbsolutePositionWS(mul(In, transposeTangent)).xyz;
    

    View > World

    float3 _Transform_Out = mul(UNITY_MATRIX_I_V, float4(In, 1)).xyz;
    

    View > Object

    float3 _Transform_Out = TransformWorldToObject(mul(UNITY_MATRIX_I_V, float4(In, 1) ).xyz);
    

    View > Tangent

    float3x3 tangentTransform_World = float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal);
    float3 _Transform_Out = TransformWorldToTangent(mul(UNITY_MATRIX_I_V, float4(In, 1) ).xyz, tangentTransform_World);
    

    View > View

    float3 _Transform_Out = In;
    

    View > Absolute World

    float3 _Transform_Out = GetAbsolutePositionWS(mul(UNITY_MATRIX_I_V, float4(In, 1))).xyz;
    

    Absolute World > World

    float3 _Transform_Out = GetCameraRelativePositionWS(In);
    

    Absolute World > Object

    float3 _Transform_Out = TransformWorldToObject(In);
    

    Absolute World > Tangent

    float3x3 tangentTransform_World = float3x3(IN.WorldSpaceTangent, IN.WorldSpaceBiTangent, IN.WorldSpaceNormal);
    float3 _Transform_Out = TransformWorldToTangent(In, tangentTransform_World);
    

    Absolute World > View

    float3 _Transform_Out = TransformWorldToView(In)
    

    Absolute World > Absolute World

    float3 _Transform_Out = In;
    
    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)