ゲームプログラミング相談室【Part5】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
02/11/04 20:41ID:a1Mhmm8N扱う話題のダイナミックレンジはやや広め。包容力高め。
他の初心者質問スレとの棲み分けを探りつつ
これからもマターリと活用しておくれ。
■前スレ
【Part4】http://game.2ch.net/test/read.cgi/gamedev/1005040025/
■旧スレ(プログラム技術板)
【Part1】http://piza.2ch.net/tech/kako/969/969984472.html
【Part2】http://pc.2ch.net/tech/kako/985/985540361.html
【Part3】http://pc.2ch.net/tech/kako/1002/10028/1002894129.html
■関連スレなど
>>2-5
0236名前は開発中のものです。
03/02/10 17:25ID:VY6anJSfマルチウゼー
http://pc2.2ch.net/test/read.cgi/gamedev/1028183728/60
http://pc2.2ch.net/test/read.cgi/gamedev/1035601681/922
0237ぽぷり
03/02/10 20:03ID:6VC5i/LtHSPでは無理かな?
プログラム上の制御って、どんな項目で検索したらいいでしょうか?
0238名前は開発中のものです。
03/02/10 21:04ID:pyEAMejp処理落ちとコマ落ちについても >>218 のリンク先に
書いてるから読んでみ。
0239名前は開発中のものです。
03/02/10 22:04ID:n899aQqE>>235が十分なくらいキーワードだしてるよ。
MCI(MCFは間違いだよな?)、DirectSound、DirectShow
HSPはよく知らないが、
MCIはWindowsAPI、DirectSound、DirectShowはCOMが扱えれば大丈夫。
HSPがそれらを扱うのが難しい言語ならば、
他の人が作ったライブラリを使う手もある。
# HSPといえどもDLLぐらい使えるだろ?
0240名前は開発中のものです。
03/02/10 22:09ID:n899aQqEこんな方法もあるようだ。
http://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&q=HSP+DirectShow+%83%8B%81%5B%83v%95%94%8D%C4%90%B6&lr=
0241名前は開発中のものです。
03/02/10 23:15ID:+EgLsXBkマジで氏んでくれ。
0242235
03/02/11 00:32ID:OEwInXkJ何やってんだ、俺。
0243名前は開発中のものです。
03/03/02 11:58ID:1UsFLoT70244名前は開発中のものです。
03/03/04 22:15ID:QU9Qm2YP雰囲気としては一度敵機の近くでゆっくり動き、目標に向かって
早い曲線を描こうと思っています。おそらくゆっくり部分と狙撃部分の
2つのルーチンを使用するかとおもいますが、問題が2つほどありまして、
1)曲線が目標位置によってイビツになる。
2)レーザー表現を座標引き渡しで20個ほど丸オブジェクトを使用
したので、処理が遅い。
何か良い方法はないのでしょうか?
0245名前は開発中のものです。
03/03/08 01:35ID:AeESF41/座標を四十五度回転させてから上下半分に潰して表示している為に、見た目上上下の移動が遅く、左右の移動が早く見えてしまいます。
こういう場合、みなさんどうしていますか?
0246デフォルトの名無しさん
03/03/08 01:52ID:omw6bur7遅レスだけど。
1)
float f = atan2(目標とのyの差, 目標とのxの差) - (現在の進行方向);
while (f<-3.14) f += 3.14*2;
while (f>3.14) f -= 3.14*2;
(新たな進行方向) = (現在の進行方向) + f*(曲がり具合0.0〜1.0);
とかやってみる。符号とか間違ってるかも。
よく状況がわからないけど、変化量が急に変わらないようにすればいいんじゃないかな。
2)
直線で繋ぐとか。
0247名前は開発中のものです。
03/03/08 01:58ID:Qzt+JfAG画像にかけた、縮尺を移動量にもかける。
上下が左右の50%なんだろ?
じゃあ、移動量も50%でいいじゃん。
つーか、それ
クォータービュー風表示で、内部がトップビューって言うか?
一瞬意味が分らなかった。
0248あぼーん
NGNG0249245
03/03/08 03:30ID:AeESF41/お返事有り難う御座います。
内部でのベクトルも表示時には四十五度回転しているため、
それではうまくいかないのです……。
(内部的に下にすすめが表示上は左下に、右に進めば右下に進んでいるように見えます)
内部のマスは正方形ですが、表示時は菱形なので移動量がおかしくみえるということなのですが……。
0250名前は開発中のものです。
03/03/08 04:03ID:Qzt+JfAGその処理だと、クォータービューって言わないじゃん。
つまり、クォータービューって斜め見下ろし型でしょ?
君の言ってる移動処理は、トップビューでただ45度回転してるだけだよ。
それでは、描画と移動処理が噛合う訳が無いよ。
普通は、トップビューと同じ処理で、横長の菱形MAPchipやなんかを
用意してキャラをMAPchipより手前にずらして立たせて
完全2D処理で、擬似クォータービュー見たくするもんだが…
ベクトルとか言ってるなら、それは3D処理が必要。
つまり、菱形を潰して描画してるだけなのだろうが
それって普通に見た場合(3D視点)、奥行きがあって
斜めに見下ろしてるから左右は広く、手前と奥で縮まる訳だ。
君の言ってる事を解析すると、移動処理は2次元ベクトルを平面で45度回転しただけ。
MAPchip描画は上下に潰しただけ。しかし、そのMAPchipは見た目には奥行きがあって斜めに見た様に見える。
その噛み合わせが不自然って訳だ。当然かな。
解決策として、大道は移動ベクトルと描画用MAPchipに同じ3D処理をする。
もう一つは、その処理を止めて違う処理に変える。
そんな感じじゃない?
0251あぼーん
NGNG0252名前は開発中のものです。
03/03/08 04:10ID:tiy6mV84すると、君のプログラムでは、正方形が出来上がるわけだ。
ところが現実には円になることが期待される。
君のプログラムは、内部的には「円を正方形で近似している」んですよ。
そのまま表示すれば、移動方向によって速度に変化が生じるのは当たり前。
対策は、内部のプログラムを書き直して円を円として扱うようにするか、
あるいは円を八角形で近似するように書き直すか、
グラフィックを表示するときに縮尺を変えて正方形を円に近くなるようにごまかすか、
そんなものしか考えようがないでしょう。
0253252
03/03/08 04:12ID:tiy6mV84無視してください。
0254名前は開発中のものです。
03/03/08 04:32ID:Qzt+JfAG君の描画処理って45度回転して上下に潰すっていてるよね?
その言ってる正方形ってのがMAPなんだろうが、
移動ベクトルにも同じ処理してないじゃん。
上下に潰すって事は、Y軸方向にスケールをかけてる訳だ。
そのY軸方向のスケールを、移動ベクトルにもかけてるか?
つまり、移動ベクトルはX成分はそのままで
Y成分が縮まる(上下に潰れる)ってやれば整合性が取れるじゃん。
…そうじゃ無いってなら言ってる意味がもう分らないよ…
0255名前は開発中のものです。
03/03/08 06:00ID:MKbGXKwx0256245
03/03/08 09:51ID:AeESF41/真面目にレスいただき、ありがとうございます。
意味がわからない面も多々あり、申し訳ありません。
画像は用意したいと思うのですが、よかったらどうかお待ちください。
マップ自体は見た目上だけクォータービューで、
(画像は潰しておらず、べた表示です)
キャラクタの表示する座標だけを描画時にマップの端を軸に45度回転させて、
上下に半分潰すことでクォータービュー風(移動)にみせています。
要するに内部的に上に進めば
表示座標上は(45度/2の傾斜がついた)左上に進んでいることになるわけで、
内部のY軸方向のスケールと、
描画時のY軸方向のスケールは45度/2ずれているわけです。
なので内部的にY軸だけに補正をかけると、
描画時にはX成分にも影響を与える訳です。
勿論、内部的には円を近似した移動値で書かれているのですが、
その、円の移動値(−X-Y)〜(+X+Y)のスケールだけが
描画時には半分に潰されてしまっているわけなのです。
よって、内部的には正円ではなく、楕円に進む必要があるのか、と考えています。
すこし妙な感じがするのですが。
0257245
03/03/08 10:29ID:AeESF41/http://www.geocities.co.jp/SiliconValley-PaloAlto/7551/topview.jpg
な感じです。
マップの描画などは全く視野に入れません。
0258名前は開発中のものです。
03/03/08 11:16ID:tiy6mV84そりゃああた、パースを考慮に入れてないからっす。
普通の二次元画像を斜めにして単純に潰すと、絵としておかしくなる。
だから、その絵としておかしいMAPの上で正しくキャラを動かしても絵としてはおかしくなる。
この世には遠近法というものがあって、遠くのものは小さく、近くのものは大きく見えるのが世界の常識です。
実際には遠近法を考慮しなくてもそれなりに綺麗に見えるものなのですが、
奥行きが深い場合はちょっと不自然に見えます。
0259名前は開発中のものです。
03/03/08 11:18ID:Qzt+JfAGやっぱり247と254で言ってる通りじゃんよ。
で、君の言ってる事が意味が通って無い。
まず、最後に潰そうが何しても、移動量ベクトルの”大きさ”は
四方向で”同じ”だ。差なんて無いじゃん。
つまりベクトルで言うと
上(0, 1)
右(1, 0)
下(0, -1)
左(-1, 0)
が、45度回転して(-PI/4)
上(-0.7071, 0.7071)
右(0.7071, 0.7071)
下(0.7071, -0.7071)
左(-0.7071, -0.7071)
で最後にYにスケール(Y:1/2)をかけるても
上(-0.7071, 0.3535)
右(0.7071, 0.3535)
下(0.7071, -0.3535)
左(-0.7071, -0.3535)
って四方向は、”方向”が違うだけで”大きさ”は同じだが?
…ベクトルって言い出したのは、君の方なので
ベクトル自体は扱えるよな?
0260名前は開発中のものです。
03/03/08 11:24ID:HkNGp/2b>>245
>見た目上上下の移動が遅く、左右の移動が早く見えてしまいます
上下と左右の見た目スケールが違うんだから、
そう見えてしかるべきなんでは?
見た目で同じスピードにすると、
実マップ上での移動速度がヘンになる(軸により偏りがでる)けど
それでいいのかな。
0261デフォルトの名無しさん
03/03/08 11:38ID:omw6bur7内部の座標から見て、「上下左右」と「斜め」の移動に差がある。
…あってるのかわからんけど。
それなら、内部座標から見た「斜め」方向への移動を減らせばいい。
なんか、気持ち悪いけど。
リロードしたら>>260と同じだった…
さらに読み返すと、楕円に進む と同じようなこと言ってる気もする。
0262245
03/03/08 11:54ID:9W7WzJNL>>255
パースは一応理解しているのですが、
2Dとして不自然でないように取り入れるにはどうしたらいいのかと思いまして。
>>256様
そうですね、内部的なベクトルの大きさは同じです。
でも、見た目上の(プレイしている側からしてみれば)違っているように見えてしまいますよね。
これを正したいと思ったのです。
>>260、>>261
そうですね、中身が移動量が異なると気持ち悪いと思います。
そして、見た目上も正しいと思うのですが
クォータビューなゲームで
上下と左右の移動量が違う(ように見える)と何だか変な感じを受けたりしませんか?
これをうまく解決したい、と思ったのですが……。
うまく言えなくてもうしわけないです。
0263名前は開発中のものです。
03/03/08 13:03ID:HkNGp/2bヘンには感じないと思う。そう印象付けるような画面構成にするといい。
車の後ろから見るレースゲームで、等間隔にオブジェクトを配置したり
等間隔に地面に模様をつけるのは、走ってるという感覚を引き出すための
基本テクニックだったりする。のっぺりしてると速度感が沸かないのよ。
クオータービューについてもそういう工夫があっていいんじゃないかなあ。
0264あぼーん
NGNG0265416 ◆quHoSW/FCI
03/03/08 16:20ID:s3TXU6Pqもしかして、トップビューで言うところの斜め移動をさせてない? トップの
上下左右はクォーターでは斜め45度だが、トップでの斜めはクォーターでは
真横とかになるよね。
移動がマス方式のクォータービューでは斜め移動はそう見える。A列車3、4で
列車が真横に移動するのと、斜めではえらく差があるように。
0266あぼーん
NGNG0267あぼーん
NGNG0268名前は開発中のものです。
03/03/13 14:53ID:x1k2yze2描画周りは一通り出来たのですが、ここで疑問が・・・
キャラが動いたときの描画なのですが、
既に配置済みの背景の中を、ビュー行列を変えて移動させるのと
ビュー行列据え置きで、キャラ周りの背景を移動するたびに配置換えする
一般にどちらが良いのでしょうか?
前者の方が簡単そうにみえ、今はそちらなのですが、
MatrixのFLOATで補えないくらい広いマップとかは、どうなるのかなどと考え出したら・・・。
お馬鹿な質問ですが、よろしければマジレスいただけると嬉しいです。
0269あぼーん
NGNG0270名前は開発中のものです。
03/03/13 22:12ID:M64nHos+Ys3って横から見たような画面構成だっけ?
PC88やPC98はマップチップを組み合わせて画面を構成してたと思うけど、
(つまり後者)それほど難しくないよ。
0271名前は開発中のものです。
03/03/14 00:05ID:1VLZD/pCレスありがとうございます。やはり後者でしたか_| ̄|○
PC88やPC98ではと言うことですが、今はあまりこういう手法は用いないのでしょうか?
しかし、やはり効率的な描画方法っていうのは、今も昔も変わらなそうですね。
画面は仰るとおり、横から見たようなのです。
私はこれとリンクの冒険が大好きで・・・。どっちも一般にはアレですが・・・。
0272名前は開発中のものです。
03/03/14 00:06ID:1VLZD/pCスクリプト荒らし来ちゃうかな・・・。
0273名前は開発中のものです。
03/03/14 01:24ID:41+v9X+WGBとかのBG面があるゲーム機は今でもそんな感じ。
背景がモデルならば仕様次第な気もするけど、似たような事をやらなくも無い。
0274あぼーん
NGNG0275名前は開発中のものです。
03/03/14 03:08ID:MgAhF4Kvによると、PS3はプロセッサ72個を使用するらしい。
PS2のcoreとVU0,VU1の三つでも、効率の良い並列プログラムは
難しいのに、72個ものプロセッサを使いこなせるプログラマは
果たして存在するのか?
0276名無し募集中。。。
03/03/14 05:14ID:fXoEalJMもう一つで効果音などのサウンドを担当。
残りはすべてポリゴンの座標計算
0277あぼーん
NGNG0278あぼーん
NGNG0279名前は開発中のものです。
03/03/15 03:20ID:i28WpAET0280名前は開発中のものです。
03/03/15 11:30ID:dtuvcX+vbool func( Vector p1, Vector p2, Vector p3, Vector l1, Vector l2);
こんなかたちで、p1,p2,p3がポリゴンの頂点、l1,l2が直線の両端座標です。
Vectorは構造体かクラスで、x,y,zの座標を持っています。
交差してたらtrue、してなかったらfalseを返すというものです。
お願いします。
0281名前は開発中のものです。
03/03/15 12:13ID:CBUe4G93プロセッサ間の同期処理だけでほとんどのCPU時間が消費されそうな予感
並行処理できるならハナっからそういう単位で仕事をする
高速なプロセッサに分けてくれたほうがマシと思う
>>280
アルゴリズムを書いてくれたら、関数を書くよ。
できるだけ詳しく頼む。
0282名前は開発中のものです。
03/03/15 12:39ID:FEgToVwJどうすればいいですか?
カメラを移動させて試行錯誤しておおまかには合ってきたのですが
どうしても左上が(0,0)、右下が(639,479)にビシっとあってくれません
0283ひよこ名無しさん
03/03/15 12:41ID:5k0LvKxN(,,゚Д゚)http://www.geocities.co.jp/HeartLand-Yurinoki/3749/dustbox.html
0284名前は開発中のものです。
03/03/15 13:17ID:dtuvcX+vはじめから2dスプライト使えばいいのでは・・・
DirectXでテクスチャ貼って使うなら
柔軟な頂点定義でトランスフォーム済み頂点を持つの定義して
ポリゴン2つ作って貼ればいいのでは?
0285名前は開発中のものです。
03/03/15 14:42ID:P8D5lOXq昔Cマガでそれを実現する記事があった。
http://www.cmagazine.jp/contents/200110.html
俺はこれを参考にしたよ。
0286名前は開発中のものです。
03/03/15 18:02ID:FEgToVwJ>>285
ありがとうございますっ!!
2Dスプライトを3Dオブジェクトに置き換えたかったんです
説明不足スマソ
Cマガジン持ってたので解決できそうです
やりたいことがほぼそのまま載ってました
ありがとうございました
0287名前は開発中のものです。
03/03/15 18:02ID:G8v9XCRO/⌒~~~⌒\ ( ,,) (,,・Д・)
/ ( ゚>t≡ )y─┛~~ 〜(___ノ 〜(___ノ ,γ_
(_ ノγ U ∩_∩) THANK YOU 2ch ┌───────┐ \
α___J _J and (| ● ● | ヽ
/ ̄ ̄ ̄ ̄\ GOOD-BYE 2ch WORLD! /.| .┌▽▽▽▽┐ .|____|__||_| ))
/ ● ●、 ( ┤ .| | .|□━□ )
|Y Y \ またどこかで会おうね \. .└△△△△┘ .| J |)
|.| | .▼ | | \あ\ | ∀ ノ
| \/ _人|∧∧∩゛冫、 .∧_∧ | \り.\ . | - ′
| _/)/)/( ゚Д゚)/ ` . (´∀` )..ヽ(´ー`)ノ \が\ . | )
\ / 〔/\〕 U / ∩∩ ( ) (___) \と.\ .|/
| | | c(*・_・) | |ヽ(´ー`)ノ_| | | | |〜 /\.\う\| (-_-)
(__)_) UUUU /∪∪ (___)(_(__) ◎ ̄ ̄◎─┘ .└──┘.(∩∩)
0288名前は開発中のものです。
03/03/15 18:37ID:dtuvcX+v0289あぼーん
NGNG0290名前は開発中のものです。
03/03/16 08:39ID:fbjaAIcC0291名前は開発中のものです。
03/03/16 09:24ID:zCeAM5Bbオレも全く同じ事思ったが、
スクリプト荒らしを擁護してるように思えたから、書き込みは控えてたよ( ´∀`)
0292名前は開発中のものです。
03/03/16 10:04ID:SkJQDRqnブレードの衝突判定がうまくできません。
普通に判定すると連続ヒットになるので
当たったキャラに無敵時間をつくったらショットがすり抜けてしまいました。
ブレード判定外へ敵をヒットバックさせれば解消できるんですが
それだとブレードコンボ(連続技)が表現できない…
仕方ないので最初に戻ってブレード攻撃力を低く設定し直したら
当たり方によってダメージがばらつく。
そして無限ループ…
漏れ…アフォでつか(´・ω・`)
0293名前は開発中のものです。
03/03/16 10:21ID:rJlwcwidこれをブレード?への判定無効フラグにすればいいんじゃなかろうか。
0294名前は開発中のものです。
03/03/16 12:05ID:SUE/S+f7のNonameSTGを参考に
0295名前は開発中のものです。
03/03/16 16:18ID:FATlrtEb/DelphiヽADA\【ANUBIS格ゲーはいだラッシュ!】を作りませんか?
l:;:;:;:ハノヽ).ノリ));:;! 家ゲ板ANUBISスレでは優秀なドッター、プログラマーを
iヘ;:| ゚ -゚ノ/. ゚ -゚ノ;:;! 募集しています。ANUBISが好きで暇をもてあそんでる方、
( つ旦Olつ旦O;| 是非、http://game4.2ch.net/test/read.cgi/famicom/1047656046/
=o〜と_)_)レ'__)_)レ' までお越しください。お待ちしております。
0296名前は開発中のものです。
03/03/16 16:52ID:KY0wD066方法1)
D3DXSPRITEを使う。
方法2)
TLVertexを使う。D3DFVF_XYZRHWが含まれてる奴ね。
ヘルプに詳しく書いてあるから読んでみれ。
0297292
03/03/16 18:15ID:uI5iL2i7即レスありがとうゴザイマス(´Д`;)ヾ
STGしかつくった事がなかったので
ブレード→自機を追従するレーザー、多段&複数ヒット
ショット→当たると消える、多段ヒットしない
としか認識してませんですた。
つーか…漏れアフォケテーイ(;´Д`)
>294
ブレードゲーって意外に多いんでつね。
ともかくソース公開に感謝!
ゲームの方はナゼかパッドが使えなかったです…
リプレイのやり方も知りたかったので解読してみまつ。
0298あぼーん
NGNG0299名前は開発中のものです。
03/03/17 06:06ID:my0aeB3mブレードとショットで別々の無敵タイマーを持てば良いんじゃないの?
で、それぞれで無敵タイマーが無敵無効の状態の時のみ当たる事にして、
当たったら無敵タイマーセット。
0300名前は開発中のものです。
03/03/19 18:36ID:GS4b6rrW─╂\_) (__/╂─ ┏━━━━━━┓
┃ illlli ┃ ┃ _THE END. _ ┃
┃ (・∀・ )/ † ┃⊆三三三三⊇┃
─╂╂ 」⌒l ''' つ」⌒l ‡== ┃|l※※※※※l|┃
┌╂/ ̄ ̄ヽ / ̄ ̄ヽ †]| ┃|l※※※※※l|┃
│┃|(・∀・) |l| (・∀・)|┃ ┃|l※※※※※l|┃
、ヾ`゛""'ソ' 。ノ'> ┣╋ヽ__/''ヽ__/┻┓ ┃|l※※※※※l|┃
ミ ,__/ ゚ノ>。゚ ヾ`゛゛""' ━━━━┛
=,(#・∀・) // ヽ__ 彡 _。。。。。。
'(\__ /フ/∈,) 、ヾ`゛"'ソ' (・∀・#)ミ ) _/`'’
\_)</ ミ ,_/ (\∪",、/ミ)
/( ,__ン\ =,(#・∀・)○┳ `◆-' </
(_)ヽ_ノ (_) ノ'(9 __ ヘつ┃ /((,,,) ,つ\
〉~ yヘ∩┃ (_)ヽ、ノ (_)
/ ̄ ̄ ̄/ヽ /ヘ ̄ ̄ ̄ヽ /ヘ ̄ ̄ ̄ヽ
|____|_/ _/|_\_|____| \_|____|
/\/\/\/ \/\/\/\/\/\/\/\
シュウリョウー!! オワッタラカエレ!!!カコイイ!! コノスレハブジニシュウリョウシマシター!!!!ジ・エンド!!!!
\/\/\/\/\/\/\/\/\/\/\/\/
0301名前は開発中のものです。
03/03/24 12:16ID:mmzhvCyjなんて仕様が来たことがあったな(なぎはらうっぽい動作で)
その時は、当たった敵をリストに追加して判定してたけど。
0302名前は開発中のものです。
03/03/25 01:44ID:geV3sJ5n目標につくっているのですが
どうも自分のはあまり綺麗になりません。
どんな風にやってるのでしょう?
これです。
ttp://forgamedev.zombie.jp/uploader/up5/img/135.lzh
0303追記
03/03/25 01:53ID:geV3sJ5nアンチエイリアスがかったようにラインがとても綺麗な
ところをいってます。
0304名前は開発中のものです。
03/03/25 02:42ID:aCstEDxO0305あぼーん
NGNG0306名前は開発中のものです。
03/03/25 06:35ID:w7OmxNqv0307名前は開発中のものです。
03/03/25 12:21ID:to5h5iKv「らじおぞんで」というwindowsで動くフリーの2Dシューティングです。
0308名前は開発中のものです。
03/03/25 12:58ID:to5h5iKv0309
03/03/25 13:21ID:gZec8/NNAプレイヤーとBプレイヤーと背景で3等分しているんでしょうか?
それとも背景は若干小さくしているとか?
たとえば、SNKの格闘ゲームはどのような配分なんでしょうか?(ちょっと前の画廊とかサムスピとか)
僕が考えているのは320*320が2枚でAとBプレイヤーのキャラパターンを格納し、
残りの160*640に背景を置くという感じなんですが、キャラパターン用のスペースは出来るだけ多くとりたいし、
背景用はそれほどでもないので、。
0310あぼーん
NGNG0311名前は開発中のものです。
03/03/25 13:33ID:c6oq96BT本気でいってるの?
0312名前は開発中のものです。
03/03/25 13:35ID:/TrSZt8o. |(・∀・)|
. | ̄ ̄ ̄ ジサクジエン共和国
△
△l |
__△|_.田 |△_____
|__|__門_|__|_____|____
0313あぼーん
NGNG0314名前は開発中のものです。
03/03/25 17:18ID:LewSLoG30315名前は開発中のものです。
03/03/25 19:00ID:gw39IESj俺もワロタ
0316あぼーん
NGNG0317名前は開発中のものです。
03/03/25 22:14ID:OH59+Xxk今、ユーザーが入力したキー情報を分析して、コマンド技のコマンドとして解釈させる
部分を考えているのですが、やって見るとコマンドの解析というのは結構奥が深い事
が分かってきました。
あれこれ考えてるうちにこんがらがってきたので、この辺のことをまとめてあるページ
とか無いでしょうか。コマンド入力なんて昔からありますし、何か定石があるんじゃない
かと思っているのですが・・・
0318名前は開発中のものです。
03/03/25 22:27ID:z0a9/rP0http://pc2.2ch.net/test/read.cgi/gamedev/1035601681/439
0319名前は開発中のものです。
03/03/25 22:45ID:OH59+Xxkレスどうもです。
もうちょっと詳しく書いてある奴無いでしょうか。これくらいなら思いつくんですけど、
例えば
↓\→(PK)
みたいに、コマンド中に同時押しが有った場合とか、同時押し判定とコマンド判定を上手くやる
必要がありますよね・・
実は今、全部の技をコマンド技として扱うようにしようとしています。小パンチは、Pだけで出る
コマンド技、しゃがみキックは下レバー入れながらKで出るコマンド技、という扱いにしてしまお
うかと。
そうすると、単に連続して押されたデータを解釈するだけじゃなくて、「レバー入れながら」とか
を考える必要が出てきますよね
あと、Pで小パンチ、Kで小キック、PK同時押しで強攻撃だとします。
小パンチは出が早い技なので、Pを押した瞬間にパンチモーションに入ります。
ですが、同時押し判定許容時間内にKが押されたら、パンチモーションをキャンセルして
強攻撃に移る必要があったりしますよね。
こういう事を色々考えてるとウワーッワカンネエエってなってきてしまいます・・・
「マンド入力総まとめ」みたいな都合のいいページがあれば嬉しいのです!
0320あぼーん
NGNG0321名前は開発中のものです。
03/03/25 22:55ID:NWBR/7Ke個々のプログラマが実現したい現象を元に自分なりにプログラムを書いている状態。
私だったら、コマンドのデータ列をあらかじめ配列か何かの形で作って、
コマンドの進み具合を示すポインタをコマンドの種類ごとに一つ定め、
ポインタの次の動作に該当したらポインタを進めて、該当しなければポインタを初期位置に戻す、
という方法で実装するなぁ。
318が提案するような比較に比べると判定が少し早そうなんだよね。
0322名前は開発中のものです。
03/03/25 23:32ID:AfPryGzZで、配列二次元とかで二つつくって
単位時間
123456789十・・・
キー配列
↑→→→→→↓\→→・・・
ボタン配列
無無P無無無無無P無・・・
ってやったらどうでしょ
んで、技チェックはボタンが押された瞬間から。
なんとなくボタンとキー同時押しができそうな気がするんですが。
0323322
03/03/25 23:34ID:AfPryGzZP以外にも各ボタン用の配列が必要でした。
0324322
03/03/25 23:45ID:AfPryGzZ例・単位時間7秒のデータ
上位8ビット …↓ = 0100000 (ビット対応キー最上位が↑、以下↓←→\・・・)
次8ビット で…無 = 1000000 (ビット対応キー最上位(9ビット目が無、以下PK・・)
(ボタンの場合、同時押しになると01100000 とかで判断。無が立って無い&P&K&立ってない・・・)
こういう変換をすると
16ビットデータ配列
[0]10000000 10000000 もちろん出力は10進で可能。
[1]00010000 10000000
[2]00010000 01000000
[3]・・・・・ みたいなのが出来あがって・・・
・・・・・
各キャラの技表データもバイナリで定義しておけば。
同時押しもできる気がさらにします。
0325あぼーん
NGNG0326名前は開発中のものです。
03/03/26 09:03ID:NtlD3GhAレスどうもです!
>うーん、統一された手法とか、定石というのはまだ確立されていないんじゃないかな?
そうなんですか。。ストリートファイターの時代からある物ですから、何か一般的なやり方
があるのかと思ってたんですけど、そうでも無いんですね。
提示いただいた方法も、参考にさせていただきます、ありがとうございます。
>>322
なるほど、それぞれのキー動作を別々にキューイングするやり方ですか・・・なんか新しい
考え方ですね。
>>324
ははあ、なるほど、これなら確かに同時押しが定義できますね・・・
しかも少ないメモリで安上がり。いいですねえ、、、参考にさせていただきます。
0327名前は開発中のものです。
03/03/26 09:04ID:NtlD3GhAに、連続ボタン入力間の許容時間もセットで持っておくというのはどうでしょうか。つまり、
同時押しは、「非常に短い時間で入力する必要のある連続ボタン入力」と扱うわけです。
こんな風にテーブルを持っておきます
↓(10フレ)\(10フレ)→(10フレ)P(3フレ)K(10フレ)
PとKが逆に入力されるかもしれませんから、入れ替えたテーブルも持っておくのです
↓(10フレ)\(10フレ)→(10フレ)K(3フレ)P(10フレ)
また、通常のしゃがみパンチは許容時間を非常に長く設定しておいて
↓(0x7FFFFFFFフレ)P(10フレ)
こうすれば「下押しながらPでしゃがみパンチ」がコマンド技として定義できるんじゃない
ですかね!?
0328あぼーん
NGNG0329名前は開発中のものです
03/03/26 13:47ID:nm8sE5JYhttp://pc2.2ch.net/test/read.cgi/gamedev/1018670878/l50をみると
つらくなったデス。
0330名前は開発中のものです。
03/03/26 13:52ID:2PAV6tNS0331あぼーん
NGNG0332名前は開発中のものです。
03/03/27 23:07ID:ZxdJ8rEG0333名前は開発中のものです。
03/03/27 23:09ID:ZxdJ8rEGまあどっちにしろ、318ので十分できるわけだが。
# なにがわからないのだろう
0334名前は開発中のものです。
03/03/27 23:09ID:ZxdJ8rEG同時押しと似た入力のコマンド
0335名前は開発中のものです。
03/03/28 00:42ID:MVSWTKVq■ このスレッドは過去ログ倉庫に格納されています