テクスチャの表示がおかしいとき

最終更新: 2021年11月24日

半透明部分が黒ずむ

NativeCompornent、SDK for Native

原因

乗算済みアルファ画像乗算済みでないファイルとして読み込むと発生します。
原因は合成時と画像作成時で二重にアルファ値を掛けるために色が暗くなるためです。

頬など半透明部分が正常に描画されている場合は別の問題となります。

対策

CubismRenderer::IsPremultipliedAlphaでTrueを設定するか、画像を乗算済みアルファを使用しない形に変換してください。

半透明部分が発光する

NativeCompornent、SDK for Native

原因

黒ずむ場合と原因は同じですが設定が逆で起こる現象です。
乗算済みアルファ画像でない画像を乗算済みアルファのファイルとして扱うと発生します。
画像が暗くなっているものとして明るく合成するために光ったように合成されます。

対策

CubismRenderer::IsPremultipliedAlphaでFalseを設定するか、画像を乗算済みアルファに変換してください。

ジャギが目立つ、境界がブツブツしている

NativeCompornent、SDK for Native、Unity

原因

ミップマップを使用せずに描画したときに切り替えが鋭利に起こるために、
アンチエイリアスが効いていない感じ、ブツブツした感じ、ジャギってるなどの印象を受けます。

対策(Unity)

テクスチャのinspector上でGenerate Mip Mapsにチェックを入れてミップマップを生成するようにします。

対策(Native)

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
glGenerateMipmap(GL_TEXTURE_2D);

OpenGLではテクスチャの使用方法をGL_LINEAR_MIPMAP_LINEAR、GL_LINEARを選択します。
また、glGenerateMipmapでミップマップを生成します。

うっすらとした境界線がでる

Unity

原因と対策

テクスチャのinspecter上のAlpha Is Transparencyが外れていると起こります。
チェックを入れた後、右下のApplyを押してください。

解像度がひくい(一部)

NativeCompornent、SDK for Native、Unity

原因

画像の補間方法が最近点の一点のみで補間する方法(Point (no filter)やGL_NEAREST)だと発生します。

対策(Unity)

テクスチャのinspecter上でFilter ModeをBilinearやTrilinearに変更します。

対策(Native)

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );

ジャギが出るときと同様にミップマップ使用の設定をLinerとして設定してください。

一部のモバイル端末でUVが歪む

Cubism SDK for Native、Cubism SDK for Web

原因

OpenGL の FragmentShader で使用している値の浮動小数点の精度が低い場合、実行する端末によってはメッシュのUVが意図しない座標になることがあります。

対策

FragmentShader に定義されている precision mediump float を、 precision highp float へ変更します。

この記事に関するご意見・
ご要望をお聞かせください。