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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
1015
Sakura_87HGIMG3での表示に関して6未解決


Sakura_87

リンク

2006/10/15(Sun) 21:23:53|NO.2988

#一通り検索しましたが、もし既出の問題であれば誘導願います。
現在2つのプロジェクト(そこまで大げさではないですが)でノベルゲームと
シューティングを作っているのですが、
たとえば画像サイズが325x239とかの2の倍数でない場合は画像が
自動的にリサイズされますが、
それを回避することは可能でしょうか?

また、ノベルのほうなのですが、
透過PNG(Photoshop Elementsで作成 αチャンネル 24bit)を使用すると(texload2)
一部グラフィックカードで表示が変になります。
なんというか、2〜3倍に拡大されたような絵になったりまったく表示されなかったり…

【表示できたグラフィックカード】
 nVIDIA GeForce 6600  128MB(AGP 8x
 nVIDIA GeForce 6600GT 256MB(友人PC PCI-Exp16らしい
 nVIDIA GeForce Go6200 128MB(ノート
【拡大表示されたグラフィックボード】
 nVIDIA GeForce MX480  64MB(AGP ?x もしかしたら460かも
 nVIDIA GeForce 5200FX 128MB(AGP 8x
 ATI  RAGE Mpbility  8MB(ノート
 ATI  Radeon 9x000  64MB(友人 詳細不明

よろしくお願いします。



この記事に返信する


Drip

リンク

2006/10/15(Sun) 22:40:01|NO.2989

Dripです。

 Sakura_87さん、こんにちは。
画像のリサイズ問題についてですが、
これはもうDirectXのAPIを使用しているので仕方の無いことです。
texload2はあくまでAPIを呼び出しているだけなので、おにたまさんの管轄からも外れています。
もしもこの問題を解決するならば、texload命令のように、オリジナルの安定したαカラー対応の
テクスチャ設定命令をhgimg3に搭載するしかありません。
さしずめtexload3といったところでしょうか。よって現状のhgimg3では回避不可能です。

 ところでhgimg3は3D描画を主体とするシステムですが、なぜそのシステムでノベルゲームを
開発していらっしゃるのでしょうか。もしもその辺をご説明いただければ、別の解決手段を
提案できるかもしれません。



Sakura_87

リンク

2006/10/15(Sun) 22:50:38|NO.2990

返答ありがとうございます。
なるほど。API上の仕様ですか。それならしかたありませんね。

> ところでhgimg3は3D描画を主体とするシステムですが…
特に深い理由はないです。
αチャンネルが使用できるのと、
DirectXを使うというのが会議(そこまで大げさでは(略))で決まっていたので
それにそって探してたら最初から入ってたHGIMG3を使っただけです。
それ以外にもえっと、何だったかな?
忘れましたがもう1つつかいました。そちらはヘルプ見たのですがよくわからず
HGIMG3を使ったという感じです。

ちなみに何でDirectX使ったかというと、最初は何も使わないで標準命令で書いていたんですが。
αブレンドしたキャラクターが徐々に背景に溶け込んで消えないので没になりました。

文章力がないのでわかりにくいと思いますが、よろしくお願いします。



Drip

リンク

2006/10/16(Mon) 00:44:15|NO.2991

Dripです。

 DirectX、とりわけDirectDrawを使用するのは、Windowsの描画では遅くて
ゲームにならない時(主に3DゲームやSTGですね)くらいで、描画が高速になるかわりに
マシンとの互換性が格段に落ちるという大きなリスクを背負うことになります。
それでもDirectXを使用するSTGや3Dゲームは、それだけ描画速度が重要視されているということです。

 学習のためにDirectXを使うのは良いですが、とくに超高速な描画を必要としないソフトにおいて、
あえてDirectXを使用して危険を冒すことはないと思います。

 アルファブレンドについては標準命令gmode 7で簡単に行えます。
(但し、現行バージョンでは画像が画面からハミ出ないように領域を計算して描画しないと
 描画不良を起こすので注意してください。)

 これはWindows側の処理なので、DirectXのような互換性の問題を気にする必要はありません。
また、最近のパソコンの能力から考えても、ノベルゲーム程度の処理であれば処理落ちも
気にならないと思います。



Sakura_87

リンク

2006/10/16(Mon) 02:27:00|NO.2993

# W-ZERO3からだけどうまく書き込めるかなぁ
返答ありがとうございます。
>  描画不良を起こすので注意してください。
そうでした。
忘れていましたがこれも問題でした。最初に使用していた標準命令は
Gmode 7で、
これでもアルファブレンドを使用可能ですが、横にアルファブレンド用のモノクロ画像を
用意しないといけませんし、アルファブレンドをしたまま半透明にするということが困難
(しようと思えばできないことはないが)なのがDirectXを使用しようと思った一番の要因でした。
というわけでアルファブレンドしつつ半透明にするような処理
(足が消えてる幽霊がスーッと消えるような)
をするためにもこの方法が一番最適だと思いました。

というわけでもしこれが出来るほかの方法をご存じなら解説しているWEBサイト等教えてください。
少々わがままですがよろしくお願いします。



Drip

リンク

2006/10/16(Mon) 20:00:26|NO.3001

Dripです。

> アルファブレンドをしたまま半透明にするということが困難
> というわけでアルファブレンドしつつ半透明にするような処理
> (足が消えてる幽霊がスーッと消えるような)

 これについてはHGIMG3の方が困難に思えます。
これをhgimg3で実現しようとすると、texload2によるアルファブレンド付きテクスチャの読み込み
の他に、UVアニメーションないしテクスチャのリアルタイム生成を行わなければなりません。

 一方gmode 7の場合はアルファブレンド用イメージの上からグラデーションを乗せるだけで
脚から徐々に消える効果を簡単に表現できますし、全体を薄くしたければgrectとgmode 3で
ブレンドイメージを薄めるだけでOKです。

 高度な半透明合成やエフェクトを行うためにDirectXを使用したノベルゲームも見かけますが、
それらのソフトはアルファブレンド2Dスプライト表示用のDirectX向けエンジンを
独自に開発しています。hgimg3のような3Dゲーム用のエンジンを使用することはまず有り得ません。

 HSPにはアルファブレンドを実現するプラグインこそありますが、2つ以上の合成を同時に
処理するプラグインは需要も少ない性か、私は見た事がありません。
 以上を踏まえた上でhgimg3を使用するか、gmode 7を使用するか、その他の方法を探すか、
決める参考にしてみてください。どの道が間違っているという事はありません。
どれを取ったとしても得られるものは必ずあるはずです。がんばってください。



Sakura_87

リンク

2006/10/17(Tue) 21:14:07|NO.3004

返答ありがとうございます。

> これについてはHGIMG3の方が困難に思えます。
>  一方gmode 7の場合はアルファブレンド用イメージの上からグラデーションを乗せるだけで
> 脚から徐々に消える効果を簡単に表現できますし、全体を薄くしたければgrectとgmode 3でブレンドイメージを薄めるだけでOKです。
特に足から消えていくと言う処理はしなくていいです。
既に足をグラデーションした画像を透明処理できればいいのです。
(現在はtexload2でロードして画面に描画し、Gmode4で透明度を変更すると言う方法を
とっています。)←もしかしてこれが原因?

> hgimg3のような3Dゲーム用のエンジンを使用することはまず有り得ません。
確かにそうですよね。DirectX勉強して自分でエンジン作ってみようかなぁ〜
かなり時間がかかりそうですけど(そもそもHSPでできるのか?

ということは、現時点ではGmode 3+Grectが近道でしょうか?



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