HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
1115
sengokuフィールド・データ(mqo)読み込みなどについて4解決


sengoku

リンク

2011/11/15(Tue) 22:18:15|NO.43027

前回HSP3プログラム超初心者が作るにあたってで参考にさせていただいた
ひらまるさんのプログラムを改変しているんですが、
地面と背景を変えようとしたのですが、どうにもうまくいきません。
フィールド指定の部分のプログラムで、mqoデータのサイズなどが関係するのでしょうか?
使用する変数命令をどのように変えればいいかなどよろしければご教授ご指摘
よろしくお願いいたします。m(_ _)m



この記事に返信する


ひらまる

リンク

2011/11/16(Wed) 00:17:39|NO.43032

こないだ書いたソースでは、以下の行で地面モデルを読み込んでいますね。

;地面初期化 E3DLoadMQOFileAsGround dir_exe + "\\sample\\easy3d\\Media\\ground.mqo", 10.0, GroundModel ; 地面モデルの読込
各要素について説明すると、
E3DLoadMQOFileAsGround ← MQOファイルを地面データとして読み込む命令
dir_exe + "\\sample\\easy3d\\Media\\ground.mqo" ← 実行ファイルのあるフォルダ内のsample\easy3d\Media\ground.mqoを指定
10.0 ← 10倍に拡大して読み込み
GroundModel ← 読み込んだ地面データのIDをGroundModelという名前の変数で受け取る
となります。
描画は以下のように、GroundModelを他のモデルと同じように描画しています。

;地面描画 E3DChkInView SCID, GroundModel ; 地面モデルが視野内にあるか判定 E3DRender SCID, GroundModel ; 地面モデルを描画
とはいえ、正直地面との当たり判定等を行わないのならばわざわざ地面データとして読み込む必要はありません。
もし地面以外の読込や描画がうまくいっているのならば、マップファイルも展示品と同じように読み込んでも良いかもしれません。
(一応大きすぎるモデルは地面データとして読み込むことが推奨されている)

それとももしかしたら、HSPでの相対パスについて知らないだけかもしれません。
ファイルを読み込む際、通常はソースと同じフォルダにファイルを用意すると思いますが、
ソースのあるフォルダはdir_curで取得できます。
同じフォルダ内の「Test.mqo」というファイルを指定するには以下のように指定します。

dir_cur + "\\Test.mqo"
(実はdir_curは「現在のフォルダ」であって、そのデフォルト値がソースのあるフォルダです)

サンプルで使っているdir_exeは「実行ファイルがあるフォルダ」です。
最終的に実行ファイル(exeファイル)にした場合はdir_curのデフォルト値と同じ値になりますが、
スクリプトエディタでデバッグしているときは、HSPをインストールしたフォルダが取得できます
(exeランタイムがHSPをインストールしたフォルダにあるため)

・スクリプトエディタを起動して以下を実行した場合
・以下のソースをデスクトップ等に保存してから実行した場合
・以下のソースを保存後、Ctrl+F9で実行ファイルを自動生成し、生成された実行ファイルを実行した場合
それぞれで結果が異なります。

mes dir_cur + "\\Test.mqp" mes dir_exe + "\\Test.mqp"

ファイルの指定が間違っているとエラーが出るはずなので、エラーで強制終了しない場合は、
・mqoファイルのサイズが極端に小さい
・読み込んだは良いが描画していない
などの可能性が考えられます。



sengoku

リンク

2011/11/16(Wed) 02:04:25|NO.43038

詳しい説明ありがとうございます。おかげで地面モデルの読込がうまくいくようになりとても勉強になりました。
これに当たり判定とかをつけると山や階段などを登らせたりできるようになるのかなっと思っているので
いろいろと試していきたいです。当たり判定は難しいと聞いているのでできるかな(汗)(・・;)

背景にに関して、
E3DCreateBG scid1, dir_cur + "\\Media\\Field\\Dark.bmp", "n", 0, 0, 0, 0
この命令で黒くすることができたのですが、デジカメで撮った写真などに設定することは、可能なのでしょうか?



ひらまる

リンク

2011/11/17(Thu) 02:27:07|NO.43058

当たり判定をつけて段差や壁等を表現するのは、今は(かなり)やめておいた方が良いと思います。
Easy3Dでは簡単に「それっぽい」当たり判定を作ることができますが、
・壁にめり込まないようにする。
・段差から落ちるようにする。または落ちないようにする。
などの動作を作ろうとすると、本当に苦戦します。
(個人的にはマップの当たり判定用モデルを作って非表示で配置する方法が楽なので好きですが、
 それもどのような構造のマップがどのような当たり判定を持つか理解していないと思い通りの動作にはなりません。)

背景に関してですが、E3DCreateBGの
dir_cur + "\\Media\\Field\\Dark.bmp"でDark.bmpという名前のbmpファイルを指定していますよね?
このファイル名を変えるかファイルの内容を変えればどんな画像でも表示できるのではないでしょうか?



sengoku

リンク

2011/11/17(Thu) 17:28:27|NO.43075

ひらまるさん返答や助言などありがとうございます。
当たり判定については今はやらない方向でいきたいと思います。
また、背景に関しましても助言どうりやると画像が表示できました。
あらためてありがとうございます。m−−m



ONION software Copyright 1997-2023(c) All rights reserved.