Skip to content
trzr edited this page Mar 12, 2019 · 1 revision

◆ 機能概要

この機能では、後述の設定を行うことで対象のテクスチャをアニメーションさせることが可能となります。(ループアニメ)
主に以下の2つの方式があります。

  • テクスチャ分割アニメ
  • テクスチャスクロールアニメ

■ 利用条件

  • iniファイルでEnableTexAnimator=trueの設定が必要
  • 対象はメイドに設定されたテクスチャが対象
    ※ Materialの_MainTexと_ShadowTexのみ

■ 制限事項

CM3D2/COM3D2では、menuからテクスチャ変更(目ハイライトなど)を指定しても、マテリアルオブジェクト自体は変更されない仕様となっています。
このため、アニメーションのために「マテリアル変更」を行い、他のアイテムで「テクスチャ変更」を行った場合、
テクスチャスケール・オフセットが変更されたままになってしまいます。
この制限を抑制するには、テクスチャスケール・オフセットを初期化する「マテリアル変更」を行うmenuを用意する必要があります。

◇ テクスチャスケール/オフセットの自動初期化機能

上記制限の抑制のため、本プラグインでは、iniファイルにTextureScaleRestore=trueを設定することで、
アニメーション対象でないアイテムを選択時にテクスチャスケール・オフセットの初期化を行います。

  • テクスチャオフセット:(x,y)=(0,0) ※ テクスチャ分割アニメの場合のみ
  • テクスチャスケール :(x,y)=(1,1) ※ テクスチャ分割アニメの場合のみ
  • AnimeFPS:既に設定されていた場合のみ-1

■ 設定方法(テクスチャ分割アニメ)

◆ テクスチャの作成

テクスチャは縦横に分割した形で、各分割された画像サイズは同一とします(横のみ、縦のみでも可)
アニメーションは、以下の図のように左上から順次切り替わります。

◆ アニメーション設定

  • アニメーション用に分割テクスチャを作成
  • テクスチャ名の接尾辞に _anim を付加
  • 「マテリアル設定」で、アニメーション対象のテクスチャにスケールを設定
    • 分割数に応じて設定
      • 例1)横が5分割であれば、0.2
      • 例2) 横が10分割であれば、0.1
      • 割り切れない場合は有効数字4桁以上を推奨
        (※C#のfloatは有効数字7桁)
  • テクスチャの切替え間隔 [オプション]
    • _MainTexFPS:_MainTexの切替え間隔 [/sec]
    • _ShadowTexFPS:_ShadowTexの切替え間隔 [/sec]
    • 未指定時は、iniファイルの設定値を使用
    • ただし、0以下の場合は無視する
★テクスチャオフセット/スケールは、公式の設定項目をそのまま使用していますが、  
テクスチャ切替え間隔のプロパティ(\_MainTexFPS, \_ShadowTexFPS)は、独自のプロパティです。  
◆ テクスチャのオフセット・スケール設定例

Unity座標系においてオフセット(0,0)は、テクスチャの左下を指します。
左上を設定する場合は、以下のサンプル画像のように分割数に応じて、Y値を調整する必要があります。

■ 設定方法(テクスチャスクロールアニメ)

◆ アニメーション設定

  • アニメーション用にループ可能なテクスチャを作成
  • テクスチャ名の接尾辞に _anim を付加
  • 「マテリアル設定」で、スクロールサイズを指定
    • _MainTexの場合は、_MainAnimeScrollX、_MainAnimeScrollY、
      _ShadowTexの場合は、_ShadowAnimeScrollX、_ShadowAnimeScrollYを指定する
      • 各プロパティはfloat型で指定範囲は[-0.5, 0.5]とするが、それを逸脱した値は勝手に補正する
      • 符号は、Unity座標系に従う
      • 精度はC#のfloatは有効数字7桁に沿う
  • テクスチャの切替え間隔 [オプション]
    • _MainTexFPS:_MainTexの切り替え間隔 [/sec]
    • _ShadowTexFPS:_ShadowTexの切り替え間隔 [/sec]
    • 未指定時は、iniファイルの設定値を使用
    • ただし、0以下の場合は無視する