Re: Android版における3Dについて ( No.1 ) |
- 名前:管理人 日時:2017/10/29 13:18
> 読み込みファイルを自分の使用しているものに変えた(因みにモデル自体は読み込めています)
読み込みファイルを元の DxChara.x のままでも強制終了してしまうでしょうか?
もし変えなければ強制終了しないのでしたら、DxChara.x に含まれているアニメーションを
前提として処理を行っているので、存在しないアニメーションを再生しようとして強制終了
しているのかもしれません
|
Re: Android版における3Dについて ( No.2 ) |
- 名前:BayLeaf 日時:2017/10/31 15:12
> 読み込みファイルを元の DxChara.x のままでも強制終了してしまうでしょうか?
先程試したのですが、DxChara.xでも強制終了してしまいました。
数日前に管理人様に渡したファイルを現在も所持しているのであれば確認できると思うのですが、
Memory.cppファイル内の下部に例のサンプルをコピペして少し改変したものをs関数(アプリ内では「メモリー」→「Sample」)として置いているはずです。
この中のファイルを変えてもうまく動かなくて行き詰っています。
(渡したときは操作取得関数GetJoypadInputStateがGetTouchInputになっていますが、これはただのミスなので既に元に戻しています)
あと、すみません。
Windows版とAndroid版はどの程度同等に動かすことができますでしょうか?(処理速度ではなく機能の面)
片方のみでしか使うことができない機能を大雑把でも教えていただけると今後の開発がしやすくなりますのでお願いします。
|
Re: Android版における3Dについて ( No.3 ) |
- 名前:管理人 日時:2017/11/01 00:19
> 数日前に管理人様に渡したファイルを現在も所持しているのであれば確認できると思うのですが、
> Memory.cppファイル内の下部に例のサンプルをコピペして少し改変したものをs関数(アプリ内では「メモリー」→「Sample」)として置いているはずです。
> この中のファイルを変えてもうまく動かなくて行き詰っています。
私の手元で「3Dアクション基本+プレイヤー以外のキャラクター」を実行してみましたが、
エミュレーターでもスマホの実機でも正常に動作しました
最初のお書き込みですとBayLeafさんがご製作中のプロジェクトの Memory.cpp に書かれたものではなく、
純粋に「3Dアクション基本+プレイヤー以外のキャラクター」だけのプログラム+プロジェクトで
WinMain を android_main に書き変えるなどの最小限の変更をしたものでも強制終了してしまう
という認識で問題ないでしょうか?
もしそうでしたら、お手数で申し訳ありませんが以下のご質問にお答えください m(_ _;m
1. エミュレーターでも強制終了してしまうのでしょうか?
2. スマホやタブレットなどの実機でのみ強制終了する場合は、機種名( 型番 )を教えてください
> Windows版とAndroid版はどの程度同等に動かすことができますでしょうか?(処理速度ではなく機能の面)
> 片方のみでしか使うことができない機能を大雑把でも教えていただけると今後の開発がしやすくなりますのでお願いします。
すみません、こちらのご質問を見落としていました
Android版も『オリジナルシェーダー』『シャドウマップ』が使用できない以外は Windows版と同じように動作します
描画結果の見た目も同じです
|
Re: Android版における3Dについて ( No.4 ) |
- 名前:BayLeaf 日時:2017/11/04 13:43
> WinMain を android_main に書き変えるなどの最小限の変更をしたものでも強制終了してしまう
> という認識で問題ないでしょうか?
はい、そうです。
自分のプロジェクトでも強制終了したので何か設定を間違えているような気もします。
> 1. エミュレーターでも強制終了してしまうのでしょうか?
いいえ、エミュレーターでは正常に作動しました。
> 2. スマホやタブレットなどの実機でのみ強制終了する場合は、機種名( 型番 )を教えてください
SHARP SHV34
(Androidバージョンは7.0)
上記になります。
|
Re: Android版における3Dについて ( No.5 ) |
- 名前:管理人 日時:2017/11/05 22:34
ご返答ありがとうございます
エミュレーターでは正常に動作したのですね…
SHARP SHV34 は 64bit CPU なのですが、私の手元には 32bit CPU が搭載された端末しか無いので
私の環境でエラーが発生しないのはそれが関係しているかもしれません
( あと Android のバージョン 7.1.1 の端末しかなく、7.0 の端末が無い… )
最良の対応方法は SHV34 を購入して手元で実行して調べることなのですが、若干価格が高いので
その方法を採用するかどうか検討する前に二つほどご質問させてください
1. こちらのリファレンスの MV1LoadModel にあるサンプルプログラムでも強制終了してしまうでしょうか?
<MV1LoadModel> https://dxlib.xsrv.jp/function/dxfunc_3d.html#R1N1
2. MV1LoadModel にあるサンプルでも強制終了してしまった場合、サンプルプログラム中の MV1DrawModel を
コメントアウトして実行した場合は強制終了しないでしょうか?
あと、ファイルエクスプローラー系のソフトで実機の内部ストレージの以下のようなパスに Log.txt があるのですが、
/storage/emulated/0/Android/data/パッケージ名/files/Log.txt
( パッケージ名は com.DxLibAndroidSample のようになっています )
この Log.txt に強制終了の原因がわかる情報が出力されているかもしれませんので、
お手数で申し訳ありませんがこちらの Log.txt の内容を掲示板に貼り付けていただけないでしょうか? m(_ _;m
|
Re: Android版における3Dについて ( No.6 ) |
- 名前:BayLeaf 日時:2017/11/06 15:48
> 1. こちらのリファレンスの MV1LoadModel にあるサンプルプログラムでも強制終了してしまうでしょうか?
確認したところ、正常に動きました。
モデルの読み込み自体は他のプログラムでもできています。
備考として、強制終了したプログラムに関して、モデルの読み込みが失敗した場合は強制終了しませんでした。
> Log.txt の内容を掲示板に貼り付けていただけないでしょうか?
以下に載せておきます。
0:DXライブラリの初期化処理開始
1: DXライブラリ Ver3.19
2: OS情報出力
3: API Level:24
4: ボード:SHV34
4: ブートローダ:unknown
4: ブランド:KDDI
5: 命令セット1:armeabi-v7a
6: 命令セット2:armeabi
6: デバイス:SHV34
6: ディスプレイ:02.01.03
6: ハードウェア:qcom
7: ホスト:TGX33001
7: ID:S6010
7: 製造者名:SHARP
8: モデル:SHV34
8: 製品名:SHV34_jp_kdi
8: 無線ファームウェア:unknown
8: ビルドタグ:release-keys
8: ビルドタイプ:user
9: 情報不明時の識別子:unknown
9: ユーザ情報:nbproj
17: 非同期読み込み処理の初期化...成功
17: ファイルアクセス処理の初期化...成功
28: OpenSL ES の初期化開始
40: OpenSL ES の初期化完了
206: スクリーンサイズ:1080 x 1920
207: バージョン:OpenGL ES 3.2 V@145.0 (GIT@I15255e4b4a)
207: レンダラー:Adreno (TM) 530
207: ベンダー:Qualcomm
208: シェーダー言語バージョン:OpenGL ES GLSL ES 3.20
208: OpenGL ES Extensions 一覧
208: GL_OES_EGL_imag
209: GL_OES_EGL_image_externa
209: GL_OES_EGL_syn
209: GL_OES_vertex_half_floa
209: GL_OES_framebuffer_objec
209: GL_OES_rgb8_rgba
209: GL_OES_compressed_ETC1_RGB8_textur
210: GL_AMD_compressed_ATC_textur
210: GL_KHR_texture_compression_astc_ld
211: GL_KHR_texture_compression_astc_hd
211: GL_OES_texture_compression_ast
211: GL_OES_texture_npo
211: GL_EXT_texture_filter_anisotropi
216: GL_EXT_texture_format_BGRA888
217: GL_OES_texture_3
218: GL_EXT_color_buffer_floa
218: GL_EXT_color_buffer_half_floa
219: GL_QCOM_alpha_tes
219: GL_OES_depth2
220: GL_OES_packed_depth_stenci
220: GL_OES_depth_textur
220: GL_OES_depth_texture_cube_ma
221: GL_EXT_sRG
221: GL_OES_texture_floa
221: GL_OES_texture_float_linea
222: GL_OES_texture_half_floa
222: GL_OES_texture_half_float_linea
222: GL_EXT_texture_type_2_10_10_10_RE
222: GL_EXT_texture_sRGB_decod
222: GL_OES_element_index_uin
222: GL_EXT_copy_imag
223: GL_EXT_geometry_shade
223: GL_EXT_tessellation_shade
223: GL_OES_texture_stencil
223: GL_EXT_shader_io_block
224: GL_OES_shader_image_atomi
224: GL_OES_sample_variable
226: GL_EXT_texture_border_clam
227: GL_EXT_multisampled_render_to_textur
227: GL_OES_shader_multisample_interpolatio
227: GL_EXT_texture_cube_map_arra
228: GL_EXT_draw_buffers_indexe
229: GL_EXT_gpu_shader
229: GL_EXT_robustnes
230: GL_EXT_texture_buffe
232: GL_EXT_shader_framebuffer_fetc
232: GL_ARM_shader_framebuffer_fetch_depth_stenci
233: GL_OES_texture_storage_multisample_2d_arra
233: GL_OES_sample_shadin
234: GL_OES_get_program_binar
234: GL_EXT_debug_labe
234: GL_KHR_blend_equation_advance
235: GL_KHR_blend_equation_advanced_coheren
235: GL_QCOM_tiled_renderin
235: GL_ANDROID_extension_pack_es31
236: GL_EXT_primitive_bounding_bo
237: GL_OES_standard_derivative
237: GL_OES_vertex_array_objec
237: GL_EXT_disjoint_timer_quer
238: GL_KHR_debu
238: GL_EXT_YUV_targe
238: GL_EXT_sRGB_write_contro
239: GL_EXT_texture_norm1
239: GL_EXT_discard_framebuffe
240: GL_OES_surfaceless_contex
240: GL_OVR_multivie
241: GL_OVR_multiview
244: GL_EXT_texture_sRGB_R
245: GL_KHR_no_erro
245: GL_EXT_debug_marke
247: GL_OES_EGL_image_external_essl
248: GL_OVR_multiview_multisampled_render_to_textur
250: GL_EXT_buffer_storag
253: GL_EXT_blit_framebuffer_param
253: GL_EXT_clip_cull_distanc
254: GL_EXT_protected_texture
255: GL_EXT_shader_non_constant_global_initializer
255: Max Vertex Attribs:32
256: Max Vertex Uniform Vectors:256
256: Max Varying Vectors:31
256: Max Combined Texture Image Units:96
256: Max Vertex Texture Image Units:16
257: Max Texture Image Units:16
259: Max Fragment Uniform Vectors:256
262: シェーダーコード関係の初期化.... 成功
417: フォントの初期化を行います
434: フォントの初期化は正常に終了しました
528:DXライブラリの初期化処理終了
 |
Re: Android版における3Dについて ( No.7 ) |
- 名前:管理人 日時:2017/11/08 01:00
> > 1. こちらのリファレンスの MV1LoadModel にあるサンプルプログラムでも強制終了してしまうでしょうか?
>
> 確認したところ、正常に動きました。
> モデルの読み込み自体は他のプログラムでもできています。
少し意外な結果です、正常に動作したのですね…
> 備考として、強制終了したプログラムに関して、モデルの読み込みが失敗した場合は強制終了しませんでした。
予想では『読み込みは問題なく行えるが、描画しようとすると強制終了する』だったので、描画も行っている
MV1LoadModel のサンプルプログラムが正常に動作したのは意外でした
Log.txt の内容も載せていただきありがとうございます
私の手元の端末と同じ系列のチップが使用されていて、世代は1世代ほど新しい機種だということがわかりましたが、
特に原因となり得そうな情報はありませんでした
何度もお手数をお掛けして申し訳ないのですが、「3Dアクション基本+プレイヤー以外のキャラクター」では
強制終了してしまうということですが、「3Dアクション基本」でも同様に強制終了してしまうか
お試しいただけないでしょうか? m(_ _;m
あと、以前アップしていただいた検証用プロジェクトで
『追加のインクルードディレクトリ』と『追加のライブラリディレクトリ』それぞれに
DXライブラリのフォルダパスが二つ記述されているのが気になりました
原因である可能性は低いと思いますが、こちらはどちらか片方のフォルダパスだけを記述するようにしてみてください m(_ _)m
|
Re: Android版における3Dについて ( No.8 ) |
- 名前:BayLeaf 日時:2017/11/08 02:58
> 予想では『読み込みは問題なく行えるが、描画しようとすると強制終了する』だったので、描画も行っている
> MV1LoadModel のサンプルプログラムが正常に動作したのは意外でした
書き込み時点までに使用したプロジェクトでは、
・モデルの描画
・モデルの移動処理
・テクスチャ関連
細かくまでは確認していませんが正常に機能していたと思います。
ただ、他のプロジェクトで座標が正常ではない値(初期値が6桁など)になったことはあります。
詳しくは確かめていないので単に代入し間違えということもあり得ますが...。
> Log.txt の内容も載せていただきありがとうございます
> 私の手元の端末と同じ系列のチップが使用されていて、世代は1世代ほど新しい機種だということがわかりましたが、
> 特に原因となり得そうな情報はありませんでした
そうですよね。
Windows版のようにアプリを起動中にログが取れれば原因が分かりそうなのですが、
ログで初期化以外の情報を取る方法はありますか?
もしくは強制終了する前のプロセスまでのログを強制的に取得することができれば何かヒントが得られそうな気がします。
> 何度もお手数をお掛けして申し訳ないのですが、「3Dアクション基本+プレイヤー以外のキャラクター」では
> 強制終了してしまうということですが、「3Dアクション基本」でも同様に強制終了してしまうか
> お試しいただけないでしょうか? m(_ _;m
了解です。
せっかくですので3Dアクション関連をいくつか試してみます。
> あと、以前アップしていただいた検証用プロジェクトで
> 『追加のインクルードディレクトリ』と『追加のライブラリディレクトリ』それぞれに
> DXライブラリのフォルダパスが二つ記述されているのが気になりました
別のPCで操作することがあり、そちらでも操作できるようにするためフォルダパスを増やしていました。
どちらも便宜上はデスクトップ内の同じフォルダパスなのですが、統一する方法が分からなくてそうしていました。
もし、パスのユーザ部分をひとまとめにする方法があれば教えていただけると助かります。
> 原因である可能性は低いと思いますが、こちらはどちらか片方のフォルダパスだけを記述するようにしてみてください m(_ _)m
分かりました。
取り敢えずは現在使用しているPCの記述のみにしてみます。
 |
Re: Android版における3Dについて ( No.9 ) |
- 名前:管理人 日時:2017/11/09 01:03
> 書き込み時点までに使用したプロジェクトでは、
>
> ・モデルの描画
> ・モデルの移動処理
> ・テクスチャ関連
>
> 細かくまでは確認していませんが正常に機能していたと思います。
そうなのですか…
つまり今のところ「3Dアクション基本+プレイヤー以外のキャラクター」だけが強制終了してしまうということでしょうか…
> Windows版のようにアプリを起動中にログが取れれば原因が分かりそうなのですが、
> ログで初期化以外の情報を取る方法はありますか?
> もしくは強制終了する前のプロセスまでのログを強制的に取得することができれば何かヒントが得られそうな気がします。
Android版も Windows版と同じように初期化以外の情報も出力するようにはなっているのですが、
Android ではエラーが発生すると API の戻り値がエラーの値になる、ということもなくアプリが
強制終了してしまうことが殆どなので、ログからエラーの原因を知ることができる確率が低いです…
( なので、原因になっていそうな箇所の付近で LogFileAdd でログを出力して、どこまで実行されているか
調べるということをします )
> せっかくですので3Dアクション関連をいくつか試してみます。
すみません、よろしくお願いします m(_ _;m
> 別のPCで操作することがあり、そちらでも操作できるようにするためフォルダパスを増やしていました。
> どちらも便宜上はデスクトップ内の同じフォルダパスなのですが、統一する方法が分からなくてそうしていました。
> もし、パスのユーザ部分をひとまとめにする方法があれば教えていただけると助かります。
そのようなご事情だったのですね
常に片方のフォルダパスが無効なのであれば二つフォルダパスが書かれていても大丈夫です
( 「どちらのパスも有効で、それぞれのフォルダに入っているファイルのバージョンが異なると問題がある』というものなので… )
|
Re: Android版における3Dについて ( No.10 ) |
- 名前:BayLeaf 日時:2017/11/16 07:02
お待たせしました。一通りの実行が終了したので報告します。
以下のようになりました。
//実行結果について補足
「3Dを扱ったサンプルプログラム」を一通り実行しました。
(「1. 迷路を3Dで表示」と要シェーダーモデルと書かれたものを除く)
なお、今回は実行できるかを確かめたため、キー入力操作を行なっていませんので悪しからず。
また、ビルド時に「use of undeclared identifier」が呼ばれて実行できなかったプログラムがありますが、
Android版で対応していない機能を使用しているということで解釈しています。
「2. 3Dアクション基本」
OK.
「3. ブルーム効果基本」
シェーダーが使えない影響でぼやけることができなかった。
「4. 鏡面効果基本」
OK.
「5. 3Dアクション基本+追加コリジョンモデル」
強制終了した。
「6. 3Dアクション基本+プレイヤー以外のキャラクター」
強制終了した。
「7. 3Dアクション基本+装飾物をキャラクタに付ける」
強制終了した。
「15. 3Dモデルのポリゴンを使用した最短経路探索」
use of undeclared identifier 'MOVESPEED' 'COLLWIDTH' 'SPHERESIZE'
上記が表示され実行できなかった。
「17. アニメーション」
OK.(右から左への座標移動をループした)
「18. 方向入力によるキャラクター移動(カメラ固定)」
use of undeclared identifier 'VECTOR_SCALING'
上記が表示され実行できなかった。
「19. キャラクターに付いていくカメラ」
OK.
「20. アニメーションによる座標移動」
OK.(右から左への座標移動でそのままフェードアウトした)
「21. アニメーションによる座標移動+方向入力によるキャラクター移動(カメラ固定)」
OK.
以上となります。
「3Dアクション基本+α」が全滅という結果でした。
あと、限定的で良いのでシェーダーを使用したい欲に駆られました。
|
Re: Android版における3Dについて ( No.11 ) |
- 名前:管理人 日時:2017/11/19 13:38
ご返信が遅くなり申し訳ありません
そして沢山試していただきありがとうございます
> また、ビルド時に「use of undeclared identifier」が呼ばれて実行できなかったプログラムがありますが、
> Android版で対応していない機能を使用しているということで解釈しています。
すみません、「15. 3Dモデルのポリゴンを使用した最短経路探索」と「18. 方向入力によるキャラクター移動(カメラ固定)」の
どちらもサンプルプログラムの記述ミスです、『( プログラムの実行に必要なファイルはこちら )』からダウンロードできる
cpp ファイルは正常にコンパイルできるものとなっているのですが、ページに載っているプログラムには
MOVESPEED, COLLWIDTH, SPHERESIZE, VECTOR_SCALING の #define 定義が無い状態になっていました( 現在は修正しました )
15のサンプルも 18のサンプルも Android版で対応していない機能は使用していませんので、Android版でも実行することができます
ただ、「15. 3Dモデルのポリゴンを使用した最短経路探索」では DrawTriangle3D を使用しているのですが、
Android版では DrawTriangle3D の引数 FillFlag を FALSE にすると正常に描画されないというバグがありました
本件には関係の無いバグでしたが、一応こちらに修正版をアップしましたので、よろしければお使いください m(_ _;m
https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用
https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.exe // Android版 x86用
https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース
> 「3Dアクション基本+α」が全滅という結果でした。
そうですね…
3Dモデルが複数あると駄目なのかと思いましたが、そもそも「3Dアクション基本」で DxChara.x と ColTestStage.mqo の二つの
3Dモデルが表示されていますし、では DxChara.x のようなスキニングメッシュモデルが複数あると駄目なのかと思いましたが、
「5. 3Dアクション基本+追加コリジョンモデル」や「7. 3Dアクション基本+装飾物をキャラクタに付ける」では
DxChara.x 以外はスキニングメッシュモデルでは無かったりと、原因を特定することができません…
一つ一つ確認して行きたいと思いますので、お手数で申し訳ありませんが以下の
『DxChara.x を二つ描画するだけのプログラム』でも強制終了してしまうかお試しいただけますでしょうか? m(_ _;m
#include "DxLib.h"
#define SPACE 200.0f
int android_main( void )
{
int ModelHandle ;
VECTOR Position ;
SetBackgroundColor( 128,128,128 ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// モデル読み込み
ModelHandle = MV1LoadModel( "DxChara\\DxChara.x" ) ;
// 描画先を裏画面へ変更
SetDrawScreen( DX_SCREEN_BACK ) ;
// 座標を初期化
Position = VGet( 0.0f, 0.0f, 0.0f ) ;
SetCameraPositionAndTarget_UpVecY( VGet( 0.0f, 550.0f, -825.0f ), VGet( 0.0f, 376.0f, -7.0f ) ) ;
SetCameraNearFar( 18.0f, 3800.0f );
// メインループ
while( ProcessMessage() == 0 )
{
// 画面クリア
ClearDrawScreen() ;
MV1SetPosition( ModelHandle, VGet( SPACE * ( -1 ), 0.0f, 0.0f ) ) ;
MV1DrawModel( ModelHandle ) ;
MV1SetPosition( ModelHandle, VGet( SPACE * ( 1 ), 0.0f, 0.0f ) ) ;
MV1DrawModel( ModelHandle ) ;
// 裏画面の内容を表画面に反映する
ScreenFlip() ;
}
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
> あと、限定的で良いのでシェーダーを使用したい欲に駆られました。
Android版で使用している描画API は OpenGL ES 2.0 なのですが、シェーダーの扱いが Windows の Direct3D 9 や
Direct3D 11 とはかなり異なり、対応するにはDXライブラリの現在のシェーダー機能にそこそこ変更を加えないといけないので、
申し訳ありませんが暫くは対応できそうにありません m(_ _;m
 |
Re: Android版における3Dについて ( No.12 ) |
- 名前:BayLeaf 日時:2017/11/19 22:42
修正された15と18のサンプルを試してみましたが、正常に動くことを確認しました。
『DxChara.x を二つ描画するだけのプログラム』に関しても正常に動きました。
> 3Dモデルが複数あると駄目なのかと思いましたが、そもそも「3Dアクション基本」で DxChara.x と ColTestStage.mqo の二つの
> 3Dモデルが表示されていますし、では DxChara.x のようなスキニングメッシュモデルが複数あると駄目なのかと思いましたが、
> 「5. 3Dアクション基本+追加コリジョンモデル」や「7. 3Dアクション基本+装飾物をキャラクタに付ける」では
> DxChara.x 以外はスキニングメッシュモデルでは無かったりと、原因を特定することができません…
私の場合、コリジョン判定が複数あるとエラーを起こすのかと考えていました。
エラーの起こしたプログラムはいずれもプレイヤーに対して複数のコリジョン判定がありますので。
(装飾物はコリジョンモデルではありませんけれどプレイヤーに干渉していますし...)
取り敢えず、LogFileAddを使用して原因となるプログラムを探してみます。
> Android版で使用している描画API は OpenGL ES 2.0 なのですが、シェーダーの扱いが Windows の Direct3D 9 や
> Direct3D 11 とはかなり異なり、対応するにはDXライブラリの現在のシェーダー機能にそこそこ変更を加えないといけないので、
> 申し訳ありませんが暫くは対応できそうにありません m(_ _;m
了解です。
いつか対応されましたら存分に使用させていただきますので首を長くしてお待ちしています。
|
Re: Android版における3Dについて ( No.13 ) |
- 名前:BayLeaf 日時:2017/11/20 00:42
先程 LogFileAdd を使用したのですが、
Player_Initialize();
を使用する前までのログは取れましたのでこの中でエラーが起きていると考えられます。
なので、この中をもう少し検証してみます。
※追記
装飾物のサンプルプログラムで試したところ、
// 影描画用の画像の読み込み
pl.ShadowHandle = LoadGraph("Shadow.tga");
ここでエラーが起きているようでしたので、報告します。
なお、上記のファイルを読み込まない場合は成功しました。
|
Re: Android版における3Dについて ( No.14 ) |
- 名前:管理人 日時:2017/11/20 01:15
> 『DxChara.x を二つ描画するだけのプログラム』に関しても正常に動きました。
お試しいただきありがとうございます
そしてまた予想外の結果です (・・;;
> 私の場合、コリジョン判定が複数あるとエラーを起こすのかと考えていました。
> エラーの起こしたプログラムはいずれもプレイヤーに対して複数のコリジョン判定がありますので。
> (装飾物はコリジョンモデルではありませんけれどプレイヤーに干渉していますし...)
コリジョン判定が原因である可能性は低いと思います
BayLeafさんもお気付きの通り、装飾物のプログラムはコリジョン判定をしていませんので…
> 装飾物のサンプルプログラムで試したところ、
>
> // 影描画用の画像の読み込み
> pl.ShadowHandle = LoadGraph("Shadow.tga");
>
> ここでエラーが起きているようでしたので、報告します。
>
> なお、上記のファイルを読み込まない場合は成功しました。
LoadGraph("Shadow.tga"); の処理は BayLeafさんの環境でも正常に動作する「2. 3Dアクション基本」でも
行っている処理なので、こちらをコメントアウトするとエラーが発生しなくなる、というのも謎です…
( DxChara.x の目の画像も tgaファイルなので、tgaファイルの読み込み処理に問題がある可能性も考え難く… )
LoadGraph("Shadow.tga"); を行わなければその他の「3Dアクション基本+α」のサンプルも正常に
動作するのでしょうか?
あと、もしお時間がありましたら Visual Studio の環境を最新のものにしてみてください
もし Visual Studio 2015 をお使いの場合は Visual Studio 2017 を使用されてみてください
既に Visual Studio 2017 をお使いの場合はこちらのページの
<Visual Studio Community>
https://www.visualstudio.com/ja/vs/community/
『VS Community 2017のダウンロード』をクリックするとダウンロードできる
vs_community__1643388920.1501092605.exe
を実行してください
暫くするとセットアップ画面が表示されますので、例えば Visual Studio Community 2017 の項目に『更新』ボタンが
ありましたら、こちらをクリックして Visual Studio Community 2017 を最新の状態にしてください
( Visual Studio 2017 はかなり頻繁に更新されていますので、1~2ヶ月確認されていませんでしたら更新があると思います )
最新の Visual Studio 2017 を使用すれば、LoadGraph("Shadow.tga"); をコメントアウトしなくてもエラーが発生しなくなる…かもしれません…
 |
Re: Android版における3Dについて ( No.15 ) |
- 名前:BayLeaf 日時:2017/11/20 02:23
> LoadGraph("Shadow.tga"); を行わなければその他の「3Dアクション基本+α」のサンプルも正常に
> 動作するのでしょうか?
いずれも正常に動作しました。
もしかしてと思い「3Dアクション基本」を再度実行してみたところ、強制終了してしまいました。
終了箇所は「3Dアクション基本+α」と同じ箇所でした。
すみません、「3Dアクション基本」に関しては見間違いだったのかもしれません。
> もしお時間がありましたら Visual Studio の環境を最新のものにしてみてください
> 最新の Visual Studio 2017 を使用すれば、LoadGraph("Shadow.tga"); をコメントアウトしなくてもエラーが発生しなくなる…かもしれません…
元々 Visual Studio 2017 を使っています。
しかしながら、残念ながら最新版に更新してもエラーが発生してしまいました。
|
Re: Android版における3Dについて ( No.16 ) |
- 名前:管理人 日時:2017/11/21 01:37
> もしかしてと思い「3Dアクション基本」を再度実行してみたところ、強制終了してしまいました。
> 終了箇所は「3Dアクション基本+α」と同じ箇所でした。
> すみません、「3Dアクション基本」に関しては見間違いだったのかもしれません。
なるほど、そうだったのですね
> 元々 Visual Studio 2017 を使っています。
> しかしながら、残念ながら最新版に更新してもエラーが発生してしまいました。
うーん、駄目でしたか…
『LoadGraph("Shadow.tga");』で落ちてしまうとのことなのですが、例えば以下のような
『LoadGraph("Shadow.tga");』で画像を読み込んで表示するだけのプログラムでも強制終了してしまうでしょうか?
#include "DxLib.h"
int android_main( void )
{
int GrHandle ;
// 背景色は灰色に設定
SetBackgroundColor( 128, 128, 128 ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// 画像の読み込み
GrHandle = LoadGraph( "Shadow.tga" ) ;
// 描画先を裏画面に変更
SetDrawScreen( DX_SCREEN_BACK ) ;
// 画像の描画のループ
while( ProcessMessage() == 0 )
{
ClearDrawScreen() ;
DrawGraph( 0, 0, GrHandle, TRUE ) ;
ScreenFlip() ;
}
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
|
Re: Android版における3Dについて ( No.17 ) |
- 名前:BayLeaf 日時:2017/11/22 01:13
> 『LoadGraph("Shadow.tga");』で落ちてしまうとのことなのですが、例えば以下のような
> 『LoadGraph("Shadow.tga");』で画像を読み込んで表示するだけのプログラムでも強制終了してしまうでしょうか?
試してみたところ、強制終了してしまいました。
なお、aseetsフォルダ直下でもasstsフォルダ内で生成した別のフォルダに移動しても結果は変わりませんでした。
ここからは私の予想なのですが、
モデルの目の場合はモデルを読み込んだ時と同時にtgaファイルを呼び出していますが、
もしかしたらtgaファイルを LoadGraph で直接読み込むことが駄目な可能性がありますね。
もしその場合はtgaファイル以外にも読み込めないファイルがあるかもしれません。
|
Re: Android版における3Dについて ( No.18 ) |
- 名前:管理人 日時:2017/11/24 00:37
> 試してみたところ、強制終了してしまいました。
> なお、aseetsフォルダ直下でもasstsフォルダ内で生成した別のフォルダに移動しても結果は変わりませんでした。
お試しいただきありがとうございます
完全にtgaファイルの読み込みが怪しいですね…
tgaファイルの読み込み処理で Android版でエラーが起こる原因となりそうな箇所がありましたので、
その部分のプログラムを変更してみました
よろしければその変更を加えたこちらのバージョンをお試しになってみてください m(_ _;m
https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用
https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.exe // Android版 x86用
> ここからは私の予想なのですが、
> モデルの目の場合はモデルを読み込んだ時と同時にtgaファイルを呼び出していますが、
> もしかしたらtgaファイルを LoadGraph で直接読み込むことが駄目な可能性がありますね。
その可能性もありますが、モデルの読み込みの中で行っている tgaファイルの読み込みも
LoadGraph で読み込む場合も内部では同じ処理を行っているので、個人的には tgaファイルの
読み込み処理自体に原因がある可能性が高いと思います
DxChara.x を読み込む際に読みこまれる DxCharaEye.tga は 24bitカラーのアルファチャンネル無しの画像なのですが、
Shadow.tga は 32bitカラーのアルファチャンネル有りの画像なので、この辺りの違いもエラーが
起きるかどうかの違いに関係しているかもしれません
|
Re: Android版における3Dについて ( No.19 ) |
- 名前:BayLeaf(解決) 日時:2017/11/25 00:07
> その可能性もありますが、モデルの読み込みの中で行っている tgaファイルの読み込みも
> LoadGraph で読み込む場合も内部では同じ処理を行っているので、個人的には tgaファイルの
> 読み込み処理自体に原因がある可能性が高いと思います
同じ処理をしていたのですね。失礼しました。
> DxChara.x を読み込む際に読みこまれる DxCharaEye.tga は 24bitカラーのアルファチャンネル無しの画像なのですが、
> Shadow.tga は 32bitカラーのアルファチャンネル有りの画像なので、この辺りの違いもエラーが
> 起きるかどうかの違いに関係しているかもしれません
画像による違いがあると処理パターンが多くなるのでエラーも発生しやすくなりますよね。
変更されたバージョンで正常に動作しましたのでやはり tgaファイルが原因だったようです。
3Dとは関係ない部分でしたが、無事に実行できて良かったです。
対応してくださりありがとうございました。
|