まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ここ最近は先日作りかけた2Dでの3D表現スクリプトを、あーでもない、こーでもないと
作っていました。
今のところ、こんな感じです↓
2Dでの3D表現スクリプト
このスクリプトを動かすとこんな感じ
背景画像にはhamcorossam様のSTG素材を使用させてもらっています。
とりあえずwait無しでFPS100~120程度までは出るようになったんですが
これ以上の速度アップは私の技術では出来ませんでした^^;
最初に作製した時は、es_pos命令で1フレームごとに背景を表示&拡大&移動させていたのですが
それだとwait無しで60FPS程度が精一杯だったので、この方法はやめて
背景を生成した瞬間に、es_adirで自動的に移動させるようにして、拡大のみ1フレームごとに
行うように処理を変更しました。
それと、スプライトで背景を表示させるとなると、重ね合わせる順番も重要になってきます。
私は今まで、スプライトの表示順位は変更出来ないと思っていたので、どうすんねん?と
思っていたのですが、実は表示順位は変更出来るんです。
es_set命令の第6パラメータで設定でき、-32768~32767の間で指定出来るので
それを利用して常に、手前の背景が奥の背景より手前に見えるように表示出来ました。
この方法以外にも、アニメーションで表示したり、キャラを分割してみたり、表示回数を減らしてみたり
してみたのですが、やはりFPS120程度以上の速度を出す事が出来ませんでした。
でも、試しに作製中のゲームに組み込んでみたら以外と処理落ちなく動いたので
コレでよいかなぁ~と思っています^^
作っていました。
今のところ、こんな感じです↓
2Dでの3D表現スクリプト
このスクリプトを動かすとこんな感じ
背景画像にはhamcorossam様のSTG素材を使用させてもらっています。
とりあえずwait無しでFPS100~120程度までは出るようになったんですが
これ以上の速度アップは私の技術では出来ませんでした^^;
最初に作製した時は、es_pos命令で1フレームごとに背景を表示&拡大&移動させていたのですが
それだとwait無しで60FPS程度が精一杯だったので、この方法はやめて
背景を生成した瞬間に、es_adirで自動的に移動させるようにして、拡大のみ1フレームごとに
行うように処理を変更しました。
それと、スプライトで背景を表示させるとなると、重ね合わせる順番も重要になってきます。
私は今まで、スプライトの表示順位は変更出来ないと思っていたので、どうすんねん?と
思っていたのですが、実は表示順位は変更出来るんです。
es_set命令の第6パラメータで設定でき、-32768~32767の間で指定出来るので
それを利用して常に、手前の背景が奥の背景より手前に見えるように表示出来ました。
この方法以外にも、アニメーションで表示したり、キャラを分割してみたり、表示回数を減らしてみたり
してみたのですが、やはりFPS120程度以上の速度を出す事が出来ませんでした。
でも、試しに作製中のゲームに組み込んでみたら以外と処理落ちなく動いたので
コレでよいかなぁ~と思っています^^
PR
この記事にコメントする
無題
遠くの物のほうがゆっくりに見えるはずなので、奥より手前のスプライトのほうが拡大率の増加が大きくなるようにしたほうが、よりリアルに見えるのではないでしょうか。
…と思ったけど、やはりes_pos命令を使わないとムズカしいですかねぇ。
…と思ったけど、やはりes_pos命令を使わないとムズカしいですかねぇ。
無題
同じ事を書こうとして出遅れました(汗)。
高速化の小技としては拡大するスプライトの数を減らす事が一番効果的
なのは当然として、wannaさんの言う通りに手前に来るにしたがって
速度がゆっくりになれば手前のスプライト間の隙間が開いて
奥のスプライトの隙間が狭くなるので結果的に表示の負担が少なくなる
と思います。
サンプルを動かしてみましたが、スプライトの数が半分くらいになっても
特に見栄えが悪いとは思えなかったので必要ならスプライトの数をもう少し
減らしても良いのではないでしょうか?。
余談
ご存知かもしれませんがまじかる☆ぱれっとさん
http://www.ne.jp/asahi/kuro68k/magical-palette/
で『D-Force.2』が数年ぶりにバージョンアップされていました。
HSP製STGとしてはかなりの完成度を誇る作品なので色々と参考に
なるのではないでしょうか?。
3面のボス手前には短いながらも3Dスクロ-ルもありますよ。
では長文失礼致しました。
高速化の小技としては拡大するスプライトの数を減らす事が一番効果的
なのは当然として、wannaさんの言う通りに手前に来るにしたがって
速度がゆっくりになれば手前のスプライト間の隙間が開いて
奥のスプライトの隙間が狭くなるので結果的に表示の負担が少なくなる
と思います。
サンプルを動かしてみましたが、スプライトの数が半分くらいになっても
特に見栄えが悪いとは思えなかったので必要ならスプライトの数をもう少し
減らしても良いのではないでしょうか?。
余談
ご存知かもしれませんがまじかる☆ぱれっとさん
http://www.ne.jp/asahi/kuro68k/magical-palette/
で『D-Force.2』が数年ぶりにバージョンアップされていました。
HSP製STGとしてはかなりの完成度を誇る作品なので色々と参考に
なるのではないでしょうか?。
3面のボス手前には短いながらも3Dスクロ-ルもありますよ。
では長文失礼致しました。
無題
wannaさん>
なるほど。何か違和感を感じてたんですが、奥より手前の方が拡大率を大きくしないと駄目だったんですね・・・orz
出来るかわかりませんが、作り直してみます^^;
ありさん>
アドバイスありがとう御座います^^
仰る通りで、大きく拡大してる時はすぐに消えていくので負担も減りそうですね。
スプライトの数は、もうちょっと減らしても良いかなぁとも思ったんですが、その辺は実際のゲームに組み込んでから考えようかと思っています。
D-Force.2は、まさに現在遊んでいる最中です^^
HSP製だと言うのを最近知って、こんな事も出来るんだなぁと感心しています。
ただ、さすがに家族の前ではプレイ出来ないので、寝静まった頃にコソコソとプレイしております(笑)
なるほど。何か違和感を感じてたんですが、奥より手前の方が拡大率を大きくしないと駄目だったんですね・・・orz
出来るかわかりませんが、作り直してみます^^;
ありさん>
アドバイスありがとう御座います^^
仰る通りで、大きく拡大してる時はすぐに消えていくので負担も減りそうですね。
スプライトの数は、もうちょっと減らしても良いかなぁとも思ったんですが、その辺は実際のゲームに組み込んでから考えようかと思っています。
D-Force.2は、まさに現在遊んでいる最中です^^
HSP製だと言うのを最近知って、こんな事も出来るんだなぁと感心しています。
ただ、さすがに家族の前ではプレイ出来ないので、寝静まった頃にコソコソとプレイしております(笑)
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
リンク
カテゴリー
最新記事
(04/04)
(12/26)
(12/25)
(11/17)
(10/11)
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
最古記事