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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
1110
かってぃんぐFPSの銃器表示(E3D)16解決


かってぃんぐ

リンク

2008/11/10(Mon) 03:35:30|NO.20714

連続ですみません。
FPSでよく画面に銃などを表示するとき、
普通に描画してしまうと別なオブジェクト
とぶつかった時に埋まってしまいます。

スワップチェインを利用すれば出来るみたい
なのですが、実際には使い方が分かりません。
objidとはいったいなんでしょうか?

出来ればやり方を教えていただけると嬉しいです。
毎度すみません。



この記事に返信する


check

リンク

2008/11/10(Mon) 11:30:11|NO.20718

まず、Easy3Dを初期化する。
次にスワップチェインの作成。
その後、形状データを読み込んで、hsidを獲得。
んで、順番にレンダリングして、描画を行う。

E3DInit 0,objid1,0,32,0,scid1 E3DCreateSwapChain 0,objid2,scid2 E3DBeginScene scid1 E3DChkInView scid1, hsid1 E3DRender scid1, hsid1, 0, 0, 0 E3DEndScene E3DPresent scid1 E3DBeginScene scid2 E3DChkInView scid2, hsid1 E3DRender scid2, hsid1, 0, 0, 0 E3DEndScene E3DPresent scid2



かってぃんぐ

リンク

2008/11/10(Mon) 14:39:14|NO.20720

システムエラーになりました。



check

リンク

2008/11/10(Mon) 14:50:55|NO.20721

どうやってシステムエラーになったかわからないが、
とりあえずこのままじゃ起動できない。
形状データを読み込んで、hsidを獲得していないからだ。
それぐらいわかってくれよ。これはスワップチェインの作成方法だけだ。


E3DSigLoad filename,hsid1,0,1.0
で読み込んでくれ。



かってぃんぐ

リンク

2008/11/10(Mon) 16:04:43|NO.20722

もちろん、形状データーを読み込み、チェックと描画は
行っています。よく分かりませんがE3DInitの"objid"
と入れたとたんその行でシステムエラーになります。

もちろんスワップチェイン作成時も同じように。
なにかまずいものでも動かしているのでしょうか・・・



リンク

2008/11/10(Mon) 16:58:35|NO.20723

ちょっとソース見せてみそ



かってぃんぐ

リンク

2008/11/10(Mon) 18:34:26|NO.20725

とりあえずテスト用に書いてみます。






#include "e3dhsp3.as" screen 0, 640, 480, E3DInit 0, objid1, 0, 32, 0, scid E3DCreateSwapChain 0, objid2, scid2 //SIG読み込み pathbuf = dir_cur + "\\sikaku.sig" E3DSigLoad pathbuf, sikaku, 0, 0.3 repeat //カメラ内チェック E3DChkInView scid, sikaku E3DChkInView scid2, sikaku //★★描画★★ E3DBeginScene scid ;箱描画 E3DRender scid, sikaku, 0, 0, 0 E3DEndScene E3DPresent scid E3DBeginScene scid2 ;箱描画 E3DRender scid2, sikaku, 0, 0, 0 E3DEndScene E3DPresent scid2 //FPS(処理度) E3DWaitByFPS 60, retfps await 0 loop



p

リンク

2008/11/10(Mon) 20:16:54|NO.20730

とりあえず。
e3dhsp3_SwapChain.hsp

ヘルプブラウザで検索しましょう。
プログラミング・マニュアルを読みましょう。



リンク

2008/11/10(Mon) 20:56:36|NO.20732

objid1が何なのか関数を確かめ直して

winobj "STATIC", "", 0, $54000000
objid1 = stat

objid1は-1でいいんですけどね

ていうか、スワップチェインでぶつかった時に埋まるのを防げるのか疑問なんですが



GENKI

リンク

2008/11/10(Mon) 21:24:28|NO.20734

> FPSでよく画面に銃などを表示するとき、
> 普通に描画してしまうと別なオブジェクト
> とぶつかった時に埋まってしまいます。

他のオブジェクトとぶつかったまたは、壁に激突したときに、
銃の先端がめり込んでしまう。
と言うことでしょうか?


> スワップチェインを利用すれば出来るみたい
> なのですが、実際には使い方が分かりません。

と言うことですが、

> ていうか、スワップチェインでぶつかった時に埋まるのを防げるのか疑問なんですが

私もそう思っています。
スワップチェインがどういうものか、本当は何がしたいのか
一度確認する必要があると思います。

スワップチェインについて
http://www5d.biglobe.ne.jp/~ochikko/e3dhsp3_change.htm

スワップチェインを使った作品
http://hsp.tv/contest2006/cntst_fresult.html#339



かってぃんぐ

リンク

2008/11/10(Mon) 23:30:01|NO.20735

ええそうです。要は銃の先端がほかのモデルに埋まらなくすれば
問題は解決なのですが、

>HSPでボタンなどのオブジェクトを作り、
>その上に3D表示したい場合に、この引数を使います。
>HSPでは、オブジェクト作成直後のstat変数に、
>オブジェクトIDが入っています。
>このIDを指定してください。
>widで指定したウインドウ全体に、
>3D描画を行いたい場合は、
>この引数には-1を指定してください。

とあったので画面手前に描画できると解釈したのですが、
勘違いだったようですね・・・



GENKI

リンク

2008/11/11(Tue) 00:35:36|NO.20736

> とあったので画面手前に描画できると解釈したのですが、
> 勘違いだったようですね・・・

どういう映像をイメージしたのかよく分かりませんが、お察しのとおり
スワップチェインでめり込みを回避することは出来ません。

実際にめり込んでしまっているので、これは表示の方法で解決できる問題ではありません。
対策としては衝突判定の範囲を広げるか、E3DChkConflict3命令でパーツ(銃)ごとの判定を行うかでしょうか。
めり込む前にそれ以上進めなくするわけです。


スワップチェインについては、NO.20730で紹介されているサンプルの
実行結果をじっくり見た上で、もう一度このスレとサンプルのスクリプトと
ヘルプを並べてにらめっこするとよいかもしれません。



SYAM

リンク

2008/11/11(Tue) 01:28:39|NO.20737

FPSの武器表示って、大抵は武器が背景と同じ空間にあるのではなく、
武器だけ背景とは別にレンダリングしてると思います。
どっちかというと、スコアや体力表示などに近い扱いです。それだとめり込んで隠れたりはしません。

この場合、武器は画面奥を向くように置かれたまま、移動も回転もなにもしません。
スコアや体力表示を、カメラと一緒に移動したり回転したりさせませんよね。


※自分はeasy3D使ったことないので それができるもんかは判りませんが(汗



かってぃんぐ

リンク

2008/11/11(Tue) 01:54:16|NO.20738

SYAMさんのおっしゃるとおり、別な空間で擬似的にあたかも存在する
ように表示できると思っていました。ただの勘違いでしたが・・・

それをスワップチェインで行えると思っていました。
お騒がせしててすみませんでした。サンプルをじっくり
見ることにします。



リンク

2008/11/11(Tue) 02:37:30|NO.20739

E3DSetRenderStateで手前に表示できるけどD3DRS_ZENABLEだと表示がおかしい
Zの情報を変えれる様にはeasy3Dじゃ、まだできないんじゃないでしょうかね



SYAM

リンク

2008/11/11(Tue) 11:07:20|NO.20740

マニュアルを斜め読みしたとこでは
E3DRender で背景とか書いて
E3DClearZ でZバッファリセットして
E3DRender で武器を書く
…では ダメですか?
あてずっぽうですみませんが…



かってぃんぐ

リンク

2008/11/11(Tue) 11:29:30|NO.20742

おお、E3DClearZで出来そうです!
本当に毎度ご親切にありがとうございます。
早速作業に当たってみることにします。

ありがとうございました^^



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