質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

3805閲覧

Unity + Androidで、透明情報ありの2D画像を表示させるとアプリケーションが透ける

kobaya_c

総合スコア30

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

1グッド

0クリップ

投稿2018/02/19 14:33

編集2018/02/21 04:59

※質問内容中の状況に不備がいくつかありました。自己解決方法部分に交えて訂正させていただきます

テスト環境

Unity 2017 3.1f1
NoxPlayer 6.0.5.2
BlueStacks 3
(実機の調達が現在できておらず、実機上での表示は未検証です)
症状

透明度情報を持つ画像を Sprite あるいは Image で表示させた場合、Android 環境下でアプリがその透明度に従う形で完全に透けてしまいます。
イメージ説明
分かりやすい結果になる Nox で確認しています。エミュレーター側のうち、Sprite 表示は左側、Image 表示は右側のグラデーション部分です。
Hierarchy の通り、シェーダーなど特殊な処理は行っていなくても発生します。
都合によりエミュレーターでのみの試験ですが、再現性を信じるとすると、実機でも同様の症状が起こりうるため、修正を考えています。
確認したこと

  • カメラ設定
  • 画像設定
  • シェーダー

いずれもよく変更する部分を特に重点的に変更して試しましたが、改善はされていません。

  • エミュレーター側での他アプリで同様の症状が発生しているか

も疑いいくつか試しましたが、違和感は見つかりませんでした。

類例や原因にお心当たりがありましたらご教示いただけますと幸いです。

toydev👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決いたしました。お騒がせしてしまい申し訳ありません。
アプリケーション自体が透明になってしまう原因を下記に列挙いたします。

  • カメラの Background の α 値が 255 ではない

Unity エディタではカメラの α 値がどの値でも完全不透明として表示されます。質問中に提示したスクリーンショットではこの状態となっており、画像が被っていない部分も透明になっておりました。
このため、 本来は透ける症状が発生していなかった Sprite でも同様に透けるように見えておりました(試行錯誤中にもなっていたようでした……申し訳ありません)。
**Camera の初期 α値は 0 **のようなので、まずはこの値を忘れずに 255 にするべきなようです。

  • Image の Material が未設定

Image の Material の初期設定は None です。None の場合、該当Image の α 値にしたがってアプリケーションが透ける模様です。
この状態では Unity、Windwos アプリケーション上などでは通常の重ねとして表示されるため、加算などの工夫が必要なければこのままにしてしまうかもしれません。今回では通常重ねの用途ばかりだったこともあり、この把握が遅れました。
Sprite の初期設定では Sprite-Default が予め設定されているため、本来はアプリケーションが完全に透けるというようなことはないようです。
なお、Image のブレンドモードにこだわりがなければ、Marial は Sprite-Default で問題なさそうです。→ Image-Default が適切なようでした。少なくとも Text の表示に不都合が生じます。
普通のフルカラーのテクスチャを使用した Image の場合は、Image-Default では質問と同様の症状が発生しておりました。度々の誤報告および修正の遅れをお詫びします。もしこの件を閲覧されて対応された方がいらっしゃいましたらご注意ください。
(2018/02/26更新)
Image オブジェクトは Sprite-Default、Text は Image-Default が基本的に向いているようです。テクスチャの状態により例外があるようですが、Unity 上で表示がおかしくなければ Image には Sprite-Default でいいようです。
(画像の色情報により異なるようです。この問題を熟知していらっしゃる方がおられましたら、ご情報いただけますと大変助かります)

投稿2018/02/21 05:14

編集2018/02/26 11:12
kobaya_c

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問