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

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

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

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

Q&A

解決済

1回答

3295閲覧

Unity:Terrainを使うと実機(Android5)で動かない原因は?

yuji38kwmt

総合スコア437

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

0グッド

0クリップ

投稿2018/05/09 01:21

編集2018/05/17 13:43

環境

  • Unity 2017.4.0f1 (b5bd171ee9ba) Personal

  • Android Studio 3.1.2

  • JDK 1.8.162

  • Windows10

  • 実機A: Android5.1.1(DIGNO(R) rafre KYV36)(メモリ:2GB)

公式サイト

  • 実機B: Andorid7.0 (HUAWEI P10 lite)

背景

前回の質問 に関連する質問です。

Unityで3Dゲームを作ろうとしています。
地形はTerrainで作っています。

問題

実機A(Android5.1)では、Unityロゴが表示された後、アプリが終了していました。

原因を調査した結果、以下の通りでした。

  • Terrainを使わなければ、実機Aで動く
  • 実機B(Android7.0)では、Terrainを使っていても動く
  • Unity上で問題なく動作する

質問

Terrainの使える条件は、何でしょうか?
Androidのバージョンでしょうか?

補足1 シェーダ

@sakura_hana さんの回答に従って、下記の通りシェーダを使いました。
アプリは起動できました。

  • 「Unity 2017.4.1 ビルトインシェーダ」をダウンロード
  • 「builtin_shaders-2017.4.2f2/DefaultResourcesExtra/TerrainShaders/Splats/Standard-FirstPass.shader」をUnityにインポート
  • 「Sphre」3D Objectに、上記のシェーダを設定したマテリアルを設定

イメージ説明

補足2 Terrain

@sakura_hana さんの回答に従って、Terrainのみを作成しました。
アプリは強制終了しました。

イメージ説明
イメージ説明

txt

105-17 22:37:37.763: D/ACDB-LOADER(421): ACDB -> ACDB_CMD_GET_AFE_COMMON_TABLE 205-17 22:37:37.763: D/ACDB-LOADER(421): ACDB -> AUDIO_SET_AFE_CAL 305-17 22:37:37.763: D/ACDB-LOADER(421): ACDB -> send_hw_delay : acdb_id = 14 path = 0 405-17 22:37:37.763: D/ACDB-LOADER(421): ACDB -> ACDB_AVSYNC_INFO: ACDB_CMD_GET_DEVICE_PROPERTY 505-17 22:37:37.763: I/audio_hw_utils(421): audio_extn_utils_send_app_type_cfg app_type 69936, acdb_dev_id 14, sample_rate 48000 605-17 22:37:37.763: V/audio_hw_primary(421): enable_audio_route: apply mixer and update path: deep-buffer-playback 705-17 22:37:37.763: V/audio_hw_primary(421): enable_audio_route: exit 805-17 22:37:37.763: D/audio_hw_primary(421): select_devices: done 905-17 22:37:37.763: V/audio_hw_primary(421): start_output_stream: Opening PCM device card_id(0) device_id(0) format(0) 1005-17 22:37:37.763: V/audio_hw_primary(421): start_output_stream: exit 1105-17 22:37:38.443: D/StatusBar.NetworkController(1199): hasService: mServiceState=1 1 home null null null Unknown Unknown CSS not supported -1 -1 RoamInd=-1 DefRoamInd=-1 EmergOnly=true retVal=false 1205-17 22:37:38.443: D/StatusBar.NetworkController(1199): refreshViews: Data not connected!! Set no data type icon / Roaming 1305-17 22:37:38.443: D/StatusBar.NetworkController(1199): refreshViews connected={ wifi } level=3 combinedSignalIconId=0x7f0203f3/com.android.systemui:drawable/stat_sys_wifi_signal_4_fully combinedActivityIconId=0x7f0203e5 mobileLabel=緊急通報のみ wifiLabel="aterm-c250c4-g"xxxxXXXXxxxxXXXX emergencyOnly=true combinedLabel="aterm-c250c4-g"xxxxXXXXxxxxXXXX mAirplaneMode=false mDataActivity=0 mPhoneSignalIconId=0x7f0203d8/com.android.systemui:drawable/stat_sys_signal_null mQSPhoneSignalIconId=0x7f0200b7/com.android.systemui:drawable/ic_qs_signal_no_signal mDataDirectionIconId=0x0/(null) mDataSignalIconId=0x7f0203d8/com.android.systemui:drawable/stat_sys_signal_null mDataTypeIconId=0x0/(null) mQSDataTypeIconId=0x0/(null) mNoSimIconId=0x7f020098/com.android.systemui:drawable/ic_qs_no_sim mRoamingIconId=0x0/(null) mWifiIconId=0x7f0203f3/com.android.systemui:drawable/stat_sys_wifi_signal_4_fully mQSWifiIconId=0x7f0200c7/com.android.systemui:drawable/ic_qs_wifi_full_4 mWifiActivityIconId=0x7f0203e5/com.android.systemui:drawable/stat_sys_wifi_in_notify mBluetoothTetherIconId=0x108075e/android:drawable/stat_sys_tether_bluetooth 1405-17 22:37:38.443: D/StatusBar.NetworkController(1199): refreshSignalCluster - setMobileDataIndicators: mHasMobileDataFeature = true mPhoneSignalIconId = com.android.systemui:drawable/stat_sys_signal_null mDataSignalIconId = com.android.systemui:drawable/stat_sys_signal_null mMobileActivityIconId = (null) mDataTypeIconId = (null) mRoamingIconId = (null) mNoSimIconId = com.android.systemui:drawable/ic_qs_no_sim 1505-17 22:37:38.443: D/StatusBar.NetworkController(1199): refreshSignalCluster - setMobileDataIndicators: mHasMobileDataFeature = true mPhoneSignalIconId = com.android.systemui:drawable/stat_sys_signal_null mDataSignalIconId = com.android.systemui:drawable/stat_sys_signal_null mMobileActivityIconId = (null) mDataTypeIconId = (null) mRoamingIconId = (null) mNoSimIconId = com.android.systemui:drawable/ic_qs_no_sim 1605-17 22:37:38.453: D/StatusBar.NetworkController(1199): refreshSignalCluster - setMobileDataIndicators: mHasMobileDataFeature = true mPhoneSignalIconId = com.android.systemui:drawable/stat_sys_signal_null mDataSignalIconId = com.android.systemui:drawable/stat_sys_signal_null mMobileActivityIconId = (null) mDataTypeIconId = (null) mRoamingIconId = (null) mNoSimIconId = com.android.systemui:drawable/ic_qs_no_sim 1705-17 22:37:38.453: D/StatusBar.NetworkController(1199): changing data overlay icon id to 2130838501 1805-17 22:37:38.543: I/WifiStateMachine(956): [signalPoll] newRssi = -39 1905-17 22:37:38.543: I/WifiStateMachine(956): [signalPoll] newLinkSpeed = 72 2005-17 22:37:38.773: D/AU-TS(28767): [WifiRxTraffic_Exec] ChangeWifiRxTraffic oldValue=691228808 -> newValue=691232132 2105-17 22:37:38.853: A/libc(32098): invalid address or address of corrupt block 0xabd6fa78 passed to dlfree 2205-17 22:37:38.973: I/WindowState(956): WIN DEATH: Window{26bd2500 u0 pany.TerrainTest/com.unity3d.player.UnityPlayerActivity} 2305-17 22:37:38.973: W/WindowManager(956): Force-removing child win Window{2eb50df u0 SurfaceView} from container Window{26bd2500 u0 pany.TerrainTest/com.unity3d.player.UnityPlayerActivity} 2405-17 22:37:38.983: I/ActivityManager(956): Process pany.TerrainTest (pid 32098) has died 2505-17 22:37:38.993: D/ActivityManager(956): cleanUpApplicationRecord -- 32098 2605-17 22:37:38.993: W/WindowManager(956): Failed looking up window 2705-17 22:37:38.993: W/WindowManager(956): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@29b2437e does not exist 2805-17 22:37:38.993: W/WindowManager(956): 2905-17 22:37:38.993: W/WindowManager(956): 3005-17 22:37:38.993: W/WindowManager(956): 3105-17 22:37:38.993: W/WindowManager(956): 3205-17 22:37:38.993: I/WindowState(956): WIN DEATH: null 3305-17 22:37:38.993: W/ActivityManager(956): Force removing ActivityRecord{192827d0 u0 pany.TerrainTest/com.unity3d.player.UnityPlayerActivity t759}: app died, no saved state 3405-17 22:37:39.073: E/AudioPolicyManager(421): unknown stream type 15 3505-17 22:37:39.073: E/AudioPolicyManager(421): unknown stream type 15

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

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

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

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

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

guest

回答1

0

ベストアンサー

可能性があるとしたら2つ。

1.メモリ過多
Terrainは普通に使うと非っっっ常に重いです。スマホ向けに使うには至難の技です。
試しに新しいシーンを作成し、Terrainを作成し、SettingsのWidthとHeightの値を小さく(10ぐらい)にして、他は何もせずに書き出してみてください。
きちんと起動するならTerrainが原因というよりは、「Terrainが重すぎてメモリオーバー」しているのが原因です。
参考:【Unity】Terrainの負荷やらDrawCallやらを下げるポイント - テラシュールブログ

2.シェーダーが未対応
前回の質問にある通り、各端末で使用出来ないシェーダーが原因で強制終了している可能性(あんまり無いとは思いますがAndroidは何が起こるか分からないので疑っておきます)。
Unity - Download Archive
ここから「ダウンロード > ビルドインシェーダー」と選択すると標準シェーダーがダウンロード出来ます。
このフォルダの中身を「terrain」で検索して、terrainで使われているっぽいシェーダーを探してください。
それをUnityにインポート、適当なマテリアルとオブジェクトを作成しシェーダーを割り当ててビルドしてみてください。
エラーが起こったらそのシェーダーが原因です。

投稿2018/05/09 06:06

sakura_hana

総合スコア11427

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

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

yuji38kwmt

2018/05/10 14:49

回答ありがとうございます! 確認した結果を、補足に追記しました。 1. Terrainの確認について TerrainのHeightとWidthは、どこで設定すればよいでしょうか? Terrainを作成しただけでも、起動できませんでした。
sakura_hana

2018/05/11 02:22

Terrainオブジェクトを選択→インスペクターのTerrainコンポーネント内のアイコンが並んでいる所(高さ変更とか草生やすブラシとかを切り替える所)の歯車マーククリック で設定画面に切り替わります。
yuji38kwmt

2018/05/11 15:58

Terrain Width, Length, Heightを10にしましたが(補足に追記)、実機でアプリは起動しませんでした。 小さなTerrainが使えないほど、小さいメモリということなんですかね? 実機AのRAMは2GBです。
sakura_hana

2018/05/13 00:33

それで落ちるとすると、確かに別の要因な気がしますね。 強制終了時のエラーコードは前回の質問と同様でしょうか?
yuji38kwmt

2018/05/17 13:45

前回と同様「 invalid address or address of corrupt block 0xabd6fa78 passed to dlfree」というログが表示されました。 一旦この辺りでクローズします。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問