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

    Flipbook ノード

    説明

    入力 UV に供給された UV のフリップブック (テクスチャシートアニメーション) を作成します。 シート上のタイルの量は入力 Width および Height の値で定義されます。現在のタイルのインデックスは入力 Tile の値で定義されます。

    このノードは、テクスチャアニメーションの機能を作成するために使用でき、一般的には、入力 Tile に Time を供給して Texture Sampler の UV 入力スロットに出力することで、パーティクルエフェクトやスプライトに用いられます。

    UV データは通常、UV 空間の左下を起点とした 0 から 1 の範囲内にあります。これは、UV プレビューの左下の角にあるブラック値で確認できます。フリップブックは通常左上から開始するので、デフォルトではパラメーター Invert Y が有効になっていますが、フリップブックの方向は Invert X および Invert Y パラメーターを切り替えることで変更できます。

    ポート

    Name Direction タイプ バインディング 説明
    UV 入力 Vector 2 UV 入力 UV 値
    Width 入力 Vector 1 なし 横方向のタイルの量
    Height 入力 Vector 1 なし 縦方向のタイルの量
    Tile 入力 Vector 1 なし 現在のタイルのインデックス
    Out 出力 Vector 2 なし 出力 UV 値

    制御

    Name タイプ オプション 説明
    Invert X トグル True、False 有効の場合、タイルが右から左へ反復されます。
    Invert Y トグル True、False 有効の場合、タイルが上から下へ反復されます。

    生成されるコードの例

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

    float2 _Flipbook_Invert = float2(FlipX, FlipY);
    
    void Unity_Flipbook_float(float2 UV, float Width, float Height, float Tile, float2 Invert, out float2 Out)
    {
        Tile = fmod(Tile, Width * Height);
        float2 tileCount = float2(1.0, 1.0) / float2(Width, Height);
        float tileY = abs(Invert.y * Height - (floor(Tile * tileCount.x) + Invert.y * 1));
        float tileX = abs(Invert.x * Width - ((Tile - Width * floor(Tile * tileCount.x)) + Invert.x * 1));
        Out = (UV + float2(tileX, tileY)) * tileCount;
    }
    
    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)