スプライト 4本目
- 1 :ナイコンさん:2019/09/04(水) 09:04:55.24 .net
- スプライトは、主にテレビゲームで用いられる、
画面上のキャラクタ(人物・物品等)など
小さな絵を高速に表示するための技術的な仕組みである。
(wikipediaより)
前スレ
スプライト 3本目
https://matsuri.5ch.net/test/read.cgi/i4004/1371439735/
- 251 :ナイコンさん:2024/02/29(木) 14:39:41.29 .net
- 486/ET4000のベタ書きで十分速かった記憶
- 252 :ナイコンさん:2024/02/29(木) 15:25:33.20 .net
- DOSゲーやるならET4000って当時の雑誌でよく見かけた
- 253 :ナイコンさん:2024/02/29(木) 16:40:42.91 .net
- プレステですら多重スクロールする2Dゲームになると苦しかったのに486なんてムリムリ
- 254 :ナイコンさん:2024/02/29(木) 19:47:12.81 .net
- >>248
MAMEなんかで遊べるのは何世代も前のゲームだったし
リアルタイムではスプライトも回転拡大縮小の時代に突入したりで常に最先端だった覚え
ポリゴンをスプライト代わりに使えるようになったけどスプライトという概念は残り続けてる気がする
- 255 :ナイコンさん:2024/02/29(木) 22:51:20.13 .net
- VRAMが32bit以上で接続されたビデオカード(マザボとはVLまたはPCIバスで接続)の出現で、IBM-PCのイメージが結構変わった気がする。
時期的にX68000やTOWNSの性能にも限界が見えてきて、新しい箱庭が求められていたタイミングとも重なるので
このタイミングでPCを対象としたホビープログラミングに主眼においた専門誌が創刊されて、日本語情報の少なさを補う環境が
できていたらよかった。
もしそこを起点にソフトが充実してハードも普及する好循環が生まれていれば、国内ゲーム業界のガラパゴス化も多少は防げたかもしれない。
- 256 :ナイコンさん:2024/02/29(木) 23:17:09.72 .net
- PCの開発情報なら
ftpでInterrupt List入手したらほぼ網羅できたよ
英語っていってもコンピュータ英語で平易
洋ゲーのマニュアルの方がよっぽど難解だった
- 257 :ナイコンさん:2024/03/01(金) 06:12:28.25 .net
- いろんな規格のパソコンが有ったからこそユーザーは楽しめたという見方もあるとは思うけどな
とはいってもAC機ではBG+スプライトの構成はポリゴンゲームが出るまで変わらなかったし
スプライトやBG以外にグラフィック面を持ったゲームってかなり少なかったと思う
リブルラブルのグラフィックの描画速度に驚愕したけど
- 258 :ナイコンさん:2024/03/01(金) 08:54:16.09 .net
- あれ日本初の68k使ったアーケード機だったんだよな・・・
ちなみに同時期のポールポジションはアドレス空間64kBのZ8002
- 259 :ナイコンさん:2024/03/01(金) 09:01:49.31 .net
- CPUの計算とビットマップの画面更新が追いつけば、
スプライトも回転拡縮も要らないって未来は見えてた
- 260 :ナイコンさん:2024/03/01(金) 10:06:00.39 .net
- 今でもGPUに依存してCPU任せな低品種なんて論外扱いでは
CPUだけでできる程度ではその時代時代での低品質扱いなままで来てたかと
例外はスペースインベーダーくらいのような
- 261 :ナイコンさん:2024/03/01(金) 10:59:05.74 .net
- インベーダーは完全なビットマップ画面だったし
凄い高度なことやってたんだなと感心する
それこそ1ドットの当たり判定も可能
- 262 :ナイコンさん:2024/03/01(金) 11:18:09.52 .net
- 沙羅曼蛇等は全面を埋めきるだけのBGパターンが利用できるのでBGをビットマップ画面のようにも利用できたね
細胞壁や火山の岩堀りシーンなどの破壊可能な背景等で利用していたはず
- 263 :ナイコンさん:2024/03/01(金) 11:24:00.35 .net
- >>260
インタビューによるとCPUだけでは無理だったそうです
亀井氏「あれだけの多くのキャラクターを動かすとなると,あのCPUでは非力なので。シフトレジスタっていう回路を組み込まないといけなくて」
ttps://www.4gamer.net/games/464/G046469/20200324041/
- 264 :ナイコンさん:2024/03/01(金) 11:46:27.75 .net
- インベーダといえば、PC-6001へのソース移植
https://www.youtube.com/watch?v=5Pjs-Ce45gg
Z80の8080エミュレータを使って、ソースだけで動くみたい
- 265 :ナイコンさん:2024/03/01(金) 11:56:05.42 .net
- >>263
パックドピクセルなら要らないがプレーンなら表示にはシフトレジスタを使うのが当たり前で意味が分からない
多分、書き換えの方でCPUとVRAM間にシフトレジスタを入れててプレーンなのにパックドピクセルのようにドット単位で書き込めるようにする回路が入ってるって事なのだろうが
- 266 :ナイコンさん:2024/03/01(金) 12:34:27.01 .net
- >>255
むしろX68000・TOWNSの性能限界云々以前に
98VM以降と言う環境に慣れすぎてしまったとしか
- 267 :ナイコンさん:2024/03/01(金) 13:05:59.14 .net
- グラボが故障した時にドライバをオフにした状態でウィンドウの操作をやってみたら、
X68k版沙羅曼蛇のフレアみたいにペラペラと画面を書き換えているのが丸見えだったな
こんだけCPUパワーが上がったんだからCPU描画だけでも余裕じゃなかったのかよ
- 268 :ナイコンさん:2024/03/01(金) 19:19:59.56 .net
- >>267
CPUパワーが上がっても常時VRAMにアクセスできるわけじゃないから
緩衝材としてのビデオプロセッサは必要になるだろうな
- 269 :ナイコンさん:2024/03/01(金) 19:23:23.77 .net
- >>262
TMS9918のグラフィックなんかはまさにそれだよ
キャラクタを敷き詰めてキャラクタのパターンを変更する事でグラフィック画面を作ってる
メガドラのハードドライビン、スタークルーザー、シルフィード、スターブレード、バーチャレーシングなんかも
BGのパターン書き換えでポリゴン画面を作り上げてる
- 270 :ナイコンさん:2024/03/01(金) 19:45:17.84 .net
- システム自体は相変わらず無効リージョンがたまったらまとめて描画するスタイルなのでCPUの速さとか関係ない
ゲームみたいに動かすにはダイレクトドローで60fpsなんなりアップデートするようにプログラムするんだよ
- 271 :ナイコンさん:2024/03/01(金) 21:41:01.12 .net
- WindowsがXPになった時、インストール直後のビデオドライバ未導入の状態でも画面表示が16色ではなくなって
一瞬気分が上がったが、スクロールとかウインドウの移動時に描画がやけにモタついて困惑したな。
いくらアクセラレータがまだ使えずCPUで描画している状態とはいえ、XPってどんだけ重いのかと戦慄しちまったぜ。
- 272 :ナイコンさん:2024/03/01(金) 23:17:10.36 .net
- 7になってもエアロ切ってクラシック表示でGDI描画使ってたな
- 273 :ナイコンさん:2024/03/02(土) 01:55:49.82 .net
- 動画でみたがメガドラ用のマジコンでメガCD対応?テラドラでも動いてた
ってことはカートリッジにメガCDのVDPやCPUついてるのかな(えみゅだろうけど)
- 274 :ナイコンさん:2024/03/02(土) 05:57:25.20 .net
- >>273
カートリッジ内にARMが入っていてメガCDの機能をエミュレーションしてるよ
SDカードにCDROMのイメージを入れておけばOK
メガCDにはCD再生機能が有るんだけど音楽CDのイメージは認識しなかった
試しにゲームのイメージ+CDDA差し替えを行ったら音楽CDは再生できるようになった
- 275 :ナイコンさん:2024/03/02(土) 05:59:48.07 .net
- 面白い機能としてはファミコンのROMが使えてる
ARMがファミコンのエミュを行った上で
ファミコンのスプライトとBGをメガドラで表示できるBGとスプライトの形式に変換して
メガドラがその受け取ったデータをフレーム毎に表示してるっぽいね
BGMはARM側がアナログ出力の段階までエミュレーションして
メガドラのカートリッジスロットにあるサウンド入力に流し込んでる
ただマッパーには未対応で初期の32KB+8KBまでのROMしか使えない
ファミコン版エバドラのマッパーを取り込んでくれれば出来そうなんだけど
- 276 :ナイコンさん:2024/03/02(土) 10:04:48.98 .net
- Everdrive PROだったらメガドラでDooMもWADを用意すれば遊べる
コンシューマー機でアーチバイルにも出逢える数少ない環境だぜ
- 277 :ナイコンさん:2024/03/02(土) 10:14:33.43 .net
- 脱線回避ついでに
>>268
と言うかCPUでさえメモリ内蔵だしな
更にGPUはVRAM以外のメモリも内蔵するようになったし
- 278 :ナイコンさん:2024/03/02(土) 13:06:28.14 .net
- 結局はメモリとプロセッサとの間がボトルネックなのは変わらずと
32bitCPUが出た頃にキャッシュを増やすならと試されてたメモリの方にプロセッサを内蔵してメモリの数だけマルチプロセッサにするってのにGPUの方で勝手になってってるのかな
メモリ空間を跨ぐとプロセッサの処理もバトンタッチして行ける連続メモリマップなんかが研究されてたな
- 279 :ナイコンさん:2024/03/02(土) 23:45:19.04 .net
- >>275の補足でファミコンのスプライトは横8ドットで横並び8枚までだけど
メガドラのスプライトの横並び制限は256x224時で16枚or256ドットだから
ファミコンでスプライトが欠けるゲームでもメガドラでは欠けなくなる
ただ、ソフト側で優先順位のローテーションを行っている場合は
欠けないけどちらつきはそのまま起きる
- 280 :ナイコンさん:2024/03/03(日) 07:33:07.21 .net
- 優先順位を順繰りで変更することでスプライトが一瞬だけ消えるからちらつくって理解してるけど、
メガドラのVDPだと消えなくなるのにちらつくってどういうことなんだろ
- 281 :ナイコンさん:2024/03/03(日) 07:34:16.88 .net
- >>271
重いのではない描画が優先順位で最低だから
ディスクI/Oや内部計算がアイドル状態になってやっと描画する
ビジネス用OSだからなあ
ゲームはフルスクリーンで実行が基本になってる
- 282 :ナイコンさん:2024/03/03(日) 10:12:30.93 .net
- >>280
説明不足だった
スプライト同士が重なった時ね
ローテーションしていて不定期なタイミングで上下が入れ替わるから
- 283 :ナイコンさん:2024/03/03(日) 10:33:15.14 .net
- >>282
なるほどね
丁寧に説明ありがとう
- 284 :ナイコンさん:2024/03/03(日) 11:02:35.58 .net
- これから開発するファミコンソフトは、エミュや横並び制限が緩和された改良型PPUの存在も考慮して
ローテート表示オフのオプションをつけておくと一部で喜ばれるかもしれないな。
メガドライブの話が出て思い出したけど、「慶応遊撃隊」の後半ステージはスプライトが派手に
チラついたり欠けたりした記憶があるけど、あれもう少しなんとかならなかったのだろうか。
- 285 :ナイコンさん:2024/03/03(日) 17:37:21.08 .net
- 横にいくつまで並べられるかはスプライトVRAMのアクセス速度次第?
- 286 :ナイコンさん:2024/03/03(日) 20:52:54.72 .net
- もう何周目になるのか数えるのも面倒だが、横○個制限はスプライトLSI内のラインバッファ(ラインレジスタ)の本数依存。
この時代のラインバッファ型(ラインレジスタ型)のスプライトに「スプライトVRAM」なんてものは存在しない
フレームバッファになる直前、ほんの一瞬だけラスターバッファ型のスプライトが実装された歴史はあるが
日本の少なくともコンシューマゲーム機はラインバッファ(スプライトLSI内部のラインレジスタ)型からフレームバッファ型へ一足飛びしたので
実装例はおそらく存在しない、あるなら提示ヨロシク
- 287 :ナイコンさん:2024/03/03(日) 21:08:51.18 .net
- スプライトLSI内のレジスタ数は、Hブランク期間中にスプライトのステータスやパターンを1ライン分読み取ることのできるメモリやバスの速度に依存している(上限がある)、という言い方はできるかもしれないが
特に初期のスプライトLSIは、そこまでギリギリの実装でもないだろう。集積度の方が制約として大きかったのでは
- 288 :ナイコンさん:2024/03/03(日) 21:11:33.16 .net
- >>284
メガドラだと欠けを意識してローテーションするようなゲームは多分無いんじゃないかな
スプライトアトリビュートはローテーションを意識した作りになってる気がするんだけど
スプライトナンバーと優先順位はそれぞれ別に割り振られていて
スプライトナンバーはアトリビュート順なんだけど、そのアトリビュートにリンクデータという物が有る
0番だけは固定で0番スプライトのアトリビュートには次に表示するスプライトナンバーを指定するようになってる
リンクデータが0になったらスプライト表示はそこまでで終了する
0番のリンクデータが40なら次は40番のスプライト、40番のリンクデータに21番が有ると次は21、・・・という感じ
- 289 :ナイコンさん:2024/03/03(日) 21:19:05.57 .net
- 前に聞いた話だと
Vブランク中にスプライトアトリビュートのY座標を読み込んで
スプライトをどのラインで表示するのかをあらかじめ取り込んでおく
Hブランク中に該当するスプライトのX座標を取り込みスプライトを表示していく
この時のX座標用のバッファが20枚分しかなくそれ以上は欠ける
とかなんとか。ただ、これだと表示期間中にスプライトアトリビュートを書き換える
スプライトダブラーという手順が踏めないような気がするしちょっと謎
- 290 :ナイコンさん:2024/03/10(日) 19:54:42.89 .net
- ハードウェアスプライトダブラーと言う発想はなかったのか
- 291 :ナイコンさん:2024/03/10(日) 22:40:36.05 .net
- >>263
なかなか貴重なインタビューだな
音源の76477がUFO飛来音だけで、後は抵抗やコンデンサの組み合わせで出してたのは知らんかった
- 292 :ナイコンさん:2024/03/10(日) 23:26:32.02 .net
- >>290
スプライトダブラーが使えるシーンは限定的だからねぇ
ソフト側が意識的に操作する必要もあるし
- 293 :ナイコンさん:2024/03/11(月) 13:19:29.37 .net
- >>263
ここで言うシフトレジスタってのは、例えばOUT (xxH), Aと書くと、あるラインをAドットずらす
みたいな機能かな
- 294 :ナイコンさん:2024/03/12(火) 00:40:57.72 .net
- >>290
コナミのタイムパイロットがそれだね
多重スクロールしている背景の雲(隕石)がスプライトで、1募スプライトを縦横128ドットオフセットした箇所に複製して表示することで背景がスカスカにならないようにしてる模様
ttps://www.youtube.com/watch?v=6DBrw6LAVDQ の 1:40秒くらいから
動画の説明は要領を得ないので mameのソース確認したところ上記ような処理のようでした
- 295 :ナイコンさん:2024/03/12(火) 00:42:54.97 .net
- 1募スプライトを → 1枚のスプライトを
- 296 :ナイコンさん:2024/03/12(火) 10:48:16.24 .net
- タイムパイロット・・・BGM豊富なコナミにしちゃ地味なゲームだったな
- 297 :ナイコンさん:2024/03/12(火) 21:17:38.25 .net
- 3杯飲んでもまだ余・・・
うん、いいんだ我も知らなくても・
- 298 :ナイコンさん:2024/03/12(火) 23:41:20.38 .net
- 昔は500mlと言ったらホームサイズだったが、今は完全にパーソナルサイズだもんな
コンピュータやネット以外でも時代は確実に変わったよ
- 299 :ナイコンさん:2024/03/13(水) 07:11:37.56 .net
- タイムパイロットはコナミ時代の岡本吉起の貴重な作品
- 300 :ナイコンさん:2024/04/23(火) 16:45:05.28 .net
- >>290
横同時表示可能数以上に設定できるスプライト数がハードで対応してるスプライトダブラーそのものでは
スプライトとして物理的に配線されてるのは横同時表示可能数そのものなのだし
それ以上のスプライト数はスプライトダブラーで表示してもスプライト 数として確保されてても表示自体の違いは見えない
69 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★