PCエンジン総合スレッド Part85 (86レス)
上下前次1-新
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
50: 09/20(土)15:24 ID:riFQAR9C(4/14) AAS
極めて荒い近似値計算、全16bit、8bit整数+8bit固定小数使うぐらいが高級なゲームの時代よ
51: 09/20(土)15:25 ID:riFQAR9C(5/14) AAS
>>49
ド素人が
扱うデータの大きさもわからんだろ
52(1): 09/20(土)15:26 ID:riFQAR9C(6/14) AAS
>>49
お前の言う三角関数の精度言ってみろw
マヌケ
53: 09/20(土)15:31 ID:riFQAR9C(7/14) AAS
16bit固定小数点の三角関数が使い物になると思ってんのかw
それともこの16bit全盛期に謎に高級でコストが高い32bit浮動小数点ライブラリ使ってるに決まってる!とか言い出すかな
ゲームのコードフットプリントの1/3が三角関数ライブラリであっても
無駄と思えないほどの馬鹿だろな
54: 09/20(土)15:34 ID:riFQAR9C(8/14) AAS
その前に三角関数ライブラリの実装の種類も知らんだろ
この頃ゲームで使われるのはさっきも書いたように非常に荒い近似テーブル
55: 09/20(土)15:36 ID:riFQAR9C(9/14) AAS
本物の機械計算三角関数はテイラー級数を使う
まるでゲーム向きではないぞアホ
56: 09/20(土)15:42 ID:riFQAR9C(10/14) AAS
逃げんなカス
57: 09/20(土)15:43 ID:riFQAR9C(11/14) AAS
CPU の機能に掛け算すらなかった時代の話だぞ
58: 09/20(土)15:45 ID:riFQAR9C(12/14) AAS
なんでこんなド素人がでかい顔しているんだ?
59: 09/20(土)15:46 ID:riFQAR9C(13/14) AAS
アホがイキってるとマジでイライラする
60: 09/20(土)15:46 ID:0Lmx02wR(1) AAS
どっちもなんでこんなスレでムキになるの
PCエンジン特有の話じゃないし
61(1): 09/20(土)15:57 ID:riFQAR9C(14/14) AAS
この頃のハードウェアソフトウェア全く詳しくないくせに
知ったかぶりしてイキっているやつが大嫌い
62: 09/20(土)16:27 ID:MIiodhXU(1/2) AAS
で、画面内座標がせいぜい9bitx8bitに収まる時代に何bit精度の三角関数使ってるのか言ってみろよ
早く
逃げんな
63(2): 09/20(土)16:29 ID:KIg/igil(1/5) AAS
狙い弾のお話
256方向だと一番端から端で±3ドットくらいズレるので判定が超小さい場合はすり抜けはあるかな?
512方向だとかなり正確に当たるね
けれど、そこまで正確なことは実際には必要なくて、二点間の角度を出すだけならレーダー法って言ってるルゴリズム使うと256バイトもあれシフトと加減算だけでばすごく正確に狙い打てますよ(その1/4サイズのテーブルでもそれなりに実用的)
1)画面サイズが256x240だとして、画面を16x16サイズに分割する(すると全画面が16x15=240のマスに分かれる)
2)それぞれのマスに左下から見て今のマスの目がどの角度にあたるか格納しておく
(オセロや将棋ではなく囲碁をイメージ)
3)演算する二点の差の絶対値を計算する(AX,AYとし、1で用意したテーブルの範囲を超える場合はクリッピング)
4)AXとAYを16で割る(シフト演算)AY*16+AXの位置のレーダーテーブルを引く
(つまりテーブルのインデックスをTIとすると TI=(AX>>4)&0fh + AY&0f0h)
5)目的の角度が取得できたので※正弦波テーブルから移動量を取得
※二点間の相対位置で第一〜第四象限に分かれるので証言に応じて角度値は軸で反転させる
(または正弦波テーブルを引いてから符号を処理する)
安全地帯がなぜ生まれるかというと玉の動く方向(または狙う方向)が16種類・32種類・64種類と制限されているから。
256方向もあれば冒頭に書いたように自機と弾の判定矩形がともに1x1でもない限り当たってしまうから。
因みにゼビウスは16方向、グラディウスは16か32どっちだったかな?
16方向だと【テーブルすら不要】でシフトと加減算だけで正確に方向が出せますね
(ゼビウスがその手法なのかは不明)
64: 09/20(土)16:32 ID:KIg/igil(2/5) AAS
>>25
こうしたいのよね?
最初に DX=(MX-TX)/DS, DY=(MY-TY)/DS を計算、その後毎フレーム DX,DY だけ移動
それやるとどの地点でも一定時間で到達するすごく不自然な処理になりますよ
ボスの特殊攻撃としてならありかもしれないけれど
>>52
8bit機だと12:4、11:5、10:6 の固定小数点だね、88シリーズなどで右にステータス表示した縱シューの場合は6:2とかでも結構悪くない動きになるよ
納得できないのでしたら実際に当時の画面サイズで試してみるといいですよ。
65(1): 09/20(土)16:32 ID:KIg/igil(3/5) AAS
レースゲームのお話
アウトランが実際どのような内部処理なのかは解析しないと不明ですので、ジッピーレースのような2D上スクロールドライブゲームと同じであると決めつけるべきではありませんよ(そういう作りの後ろ視点ドライブゲームもそれなりにあるのは確かではありますが)
具体的な処理は鈴木さん(作った人、当人のお話は先に紹介したインタビューの通り)やM2の中の人(移植の際に解析してる、るつぼの人もかな?)なら具体的にご存じかもしれませんね。
66(1): 09/20(土)16:34 ID:KIg/igil(4/5) AAS
グレースケールモードのお話
コンポジット信号は色の種類を2値で表してそれに輝度信号が合わさってカラー表示してるの。
(色の信号は細かい輝度信号の動きに畳み込んでいるのでモノクロテレビでも映る仕組み)
PCエンジンのグレースケールはこのコンポジット信号から色情報にあたる細かい輝度の差分を取り除いた信号を出す機能なんだけど、よく考えてみて?
RGBで、#00F(青) #F00(赤) #0F0(緑)だと緑が一番明るくって青が一番暗く見えるでしょ?
そう、人の目に明るく見えるかどうかは色にも左右されるんです
つまり色の種別ごとに重みがあるんです
RGB色空間からI(輝度)空間へのマッピングは色んな計算式があるけど、人の目に合わせた式の一つが I = ->(r,g,b){ 0.2126r*r + 0.7152r*g + 0.0722r*b } です、式を見るとどの係数も単純な倍数関係を持ちません
実際に RGB それぞれ 8階調を入力するとすべてのRGBの組み合わせて異なり輝度値が得られます、即ち512色のどれも同じ明るさの色は一つもないのですよね=グレースケールにすると512種類の異なる明るさが得られることになります
(物言いの多さにちょっとびっくりしました……、色毎に明るさに対する重みが違うって意外とわからないものなんですね、デジタルカラーに触れているような世代なら感覚的に把握されている気もするのですが)
67: 09/20(土)16:43 ID:KIg/igil(5/5) AAS
そうそう、>>63はそのまま適用すると実は0/90/180/270度の付近が若干不審になります
実際には半マスズレた形で適用するのですが、概念の説明だと単純にシフトだけして象限分けすると言った方が分かりやすいんですよね
実際に利用する際はその点ご注意ください
68: 09/20(土)16:50 ID:MIiodhXU(2/2) AAS
>>63
ゼビウスは固定方向弾ではないな
69(1): 09/20(土)17:01 ID:CG1YVFcR(1/2) AAS
>>61
これからのPCエンジンスレはハードウェアソフトウェアに詳しくない奴を排除していくか!
知ったかぶりしてイキっているド素人共に知識の違いをわからせていこう😤
70: 09/20(土)17:43 ID:Qdc1KBwu(6/8) AAS
参考までにCD-ROM BIOSに実装されてる三角関数は
sin,cosが入力1度刻み(0~90度)で出力は8bit分数精度
arctanは入力Y/Xが6bit精度で出力は1度刻み(0~45度)
もちろん中身はLUTなので処理は最速。
数値の符号、大小関係は関数の外で適切に取り扱わなければならない。三角関数を使いたい場面で、適用する象限を意識しないはずがないと思うしこれは特に難しい処理でもない。
この精度で足りなければ独自に実装することになる。
71: 09/20(土)17:47 ID:LdV8KOvl(1/2) AAS
>>65
内部的にはそういう計算をしてるってこと?
HUMANのF1トリプルバトルみたいな擬似3Dレースだと例えば緩い右カーブの場合ハンドル切らなくても自機が左に少しスライドするだけで曲がれるイメージなんだけど、3D計算してたら曲がれるはずないよね
あと、同じコーナーを全速力で曲がった場合、イン側とアウト側でタイムが違うんかな
まぁ家庭用だとそこまでの演算はしてないかもだけど、俺は擬似3Dレースは一様にジッピーレースのように真上にのみ進んで、車速=スクロールの速度だと思ってたんで非常に興味深い
もっと詳しく知りたい
72(1): 09/20(土)17:48 ID:qYjFEpwO(1) AAS
>>69
でお前はわかってるのかwww
73(1): 09/20(土)18:50 ID:Qdc1KBwu(7/8) AAS
PCエンジンには移植されなかったけどファミコンの有名ゲームのひとつとしてハドソンのバンゲリングベイがある。
元はブローダーバンドのPCゲーを非力なファミコンでそれっぽく実現しており、やったことあれば分かると思うけど広いマップを自機が自由に飛び回る。
視点としてはマップの北を画面の上方向とする真上からの固定見下ろし。
自機は16方向に向きを取ることができる上に進行速度も前進10段階の後退2段階だかあるのを自分で微調整する。
で、自機の方向と進行速度は固定視点における自機の相対位置とマップスクロールに反映されるわけだが、まあここまでは難しくない、見たまんまのことをやっているだけだ。
問題は、こうして飛んでる自機に向けて敵機があらゆる方向から迫ってきて、あまつさえ誘導ミサイルまで撃ってくるのである。
こいつが曲者で、自機には劣るもののそこそこ小回りが効くのにかなり速いしどの方向にも追尾してきて非常にしつこい難敵。
一度にたくさん出てこないのだけが救いだが、自機が自由方向に飛べるゲームでの誘導弾だから内部処理はそこそこ手間がかかることになっているはず。
常に変化する自機との位置関係を把握しつつ、曲がれるタイミングでは確実に自機を追う方向へ曲がっていかないといけないので、単純な直線軌道の狙い玉に比べたら判定回数が多くてファミコンには厳しかろう…と思いきや開発者が頭良いのでほぼ処理落ちしないようコントロールされていた。
V-syncでスクロール処理して、その他の時間では画面に見えてない物も含めてマップ上の色々なオブジェクトを全て管理操作しているのだから、クソゲーだなんてとんでもねえ!リアルタイムアクションストラテジーの大先輩じゃん、と今では思うのだった。
実際は、当時ガキだったらこれをクソゲーと思うのは当然なのである。とにかく難しいし何をすればいいのか意味不明だったから…
ハドソンの手でPCエンジンスーパーCDソフトとして超パワーアップ演出で移植してほしかったなと思うソフトの筆頭である。
CDとは言わずSGX専用でもいいぞ。
74: 09/20(土)19:23 ID:CG1YVFcR(2/2) AAS
>>72
わかってるわけないだろ😤
75: 09/20(土)19:29 ID:Qdc1KBwu(8/8) AAS
当たり判定どう処理するのかとかも話し始めたらキリないな
ひとつだけ言えるのはレギオンみたいな初見トラップは即クソゲー認定されるから手抜きプログラム以前にもう少しプレイヤーに優しい仕様で作れということだわ
76: 09/20(土)19:45 ID:LdV8KOvl(2/2) AAS
>>73
たしかに子供の頃はクソゲー扱いしてたな
ゼビウスみたいなゲームを想像してたしハドソン攻撃で友人と絶交もしたし
77: 09/20(土)21:08 ID:Uz8UV0mG(1) AAS
シューティングの弾とレースの角度って話が似てるんだよね。
モトローダーみたいなトップビューレーシングなんてファミコンのバンゲリングベイ的だけど、弾道よりも正確な角度速度計算されてるはず。
他車と競争してるしタイムも計ってるし。
78: 09/20(土)21:33 ID:ly5xi+qs(2/3) AAS
>>66
同じ明るさが無いと言ってもアナログ信号故のブレみたいなもので
それこそ人の目には認識できないレベルの違いになるだけで8段階基準じゃないのかい?
79: 09/20(土)21:45 ID:ly5xi+qs(3/3) AAS
メガドラミニに入ってるファンタジーゾーンの弾道は簡易テーブルを作って処理してるって書いてあったな
弾数が多くなればなるほど三角関数で演算してる余裕は無いって事だわな
>>32の記事でも内藤さんが満足な速度は得られないって言ってるぐらいだし
上下前次1-新書関写板覧索設栞歴
あと 7 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.007s