読者です 読者をやめる 読者になる 読者になる

ぷらこあ

雑記/ゲームアイデア帳/成果物ぺろり

【Unity/AssetStore】AlphaMaskを使ってみた

Unityメモ
  • 7/15のアセットストアのセールで売っていたので購入
  • ちょうど下記のようなことが出来ないか考えていた

こんな感じのアセット

https://www.assetstore.unity3d.com/jp/#!/content/29764

  • 任意のSprite/uGUI要素、およびその集合に対してMaskを掛ける事が出来る
  • ShaderおよびMasterialを要素を適応させるためのScript、サンプルシーンが内包されている

使い方

f:id:lycoris102:20160722085903g:plain

  • (1) 親となるGameObjectを生成する
  • (2) 子としてMaskを適応したいSpriteを配置する
    • uGUIの場合も使用可能で、Imageを使用する
  • (3) 子としてAlphaMask内にあるMaskをアタッチしたGameObjectを配置する
    • Attach時にMaskRendererがAddComponentされる
  • (4) MaskMaterialに任意のTextureを指定する
  • (5) MaskComponentやscale等をよしなにごにょる
  • (6) MaskComponent内の [Apply Mask to Siblings in Hierarchy] を押す
  • (7) 自動的にSprite (image) のMaterialに対してMaskMaterialが適応される
    • Maskと同居しているGameObjectが子要素を持つ場合、子にも適応される

MaskComponent

  • MaskMappingWorldAxis
  • マスクの軸 / 通常はカメラの向きと同方向に設定する
  • InvertAxis
  • 反転させた軸に対してマスクを適応させる時に設定する
  • ClampAlpha(Horizontally|Vertically)
    • Textureの設定がClampではなくRepeatになっているケースにおいて、任意の方向にClamp扱いにする
  • ClampingBorder
    • 上記のClampの設定が有効の場合、境界を調整する事が出来る
  • UseMaskAlphaChannel
    • アルファチャンネルを有効にする
  • DisplayMask
    • MaskのTextureを描画する (確認用)
  • Apply Mask to Siblings in Hierarchy
    • 上記の設定を反映させる

f:id:lycoris102:20160722085959g:plain

雑感

  • 複数コンポーネントに対しMask掛ける事が出来るのが良い
  • Shader書けない民は一旦これで、という感じ
  • Sample内に含まれている「ロゴにスペキュラ掛ける」みたいな用法も出来て面白い
  • セールなので勢いで購入したけど類似アセット結構ありそうなのが懸念...!!