トップページ⇒tech
1001コメント282KB

ゲームプログラムなら俺に聞け

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん2009/01/02(金) 19:01:16
エロゲしか作ったことないけど
なんでも聞いてちょ
0809デフォルトの名無しさん2009/07/03(金) 10:32:42
>>808
でかい…
それって普通のPCだったら動かなくね?
0810デフォルトの名無しさん2009/07/03(金) 11:11:04
ま、自分の環境のみをターゲットにできるアマチュアなら許されるだろうな。
0811デフォルトの名無しさん2009/07/03(金) 12:06:31
そもそもワイドすぎない?ほぼ2:1じゃん。
0812デフォルトの名無しさん2009/07/03(金) 12:21:57
>>811
普通のフルHDだろ
最近じゃそれほど珍しくない
0813デフォルトの名無しさん2009/07/03(金) 12:42:45
>>812
ごめん、計算してみたら普通に16:9になった。
これで色は何ビットだろうな。
0814デフォルトの名無しさん2009/07/03(金) 17:10:16
俺のPCは1920*1200だぞ
前使ってたやつが1600*1080ぐらいだったかな?
たぶん>>808はそれを混同してる
0815デフォルトの名無しさん2009/07/03(金) 17:12:59
おまえは何を言っているんだ
0816デフォルトの名無しさん2009/07/03(金) 17:27:21
1920x1200 = 9:5
1600x1080 = 40:27

変な比率だな。
0817デフォルトの名無しさん2009/07/03(金) 17:45:45
>>816
>>816
>>816
0818デフォルトの名無しさん2009/07/03(金) 18:31:51
マジレスすると
1920*1200も
1600*1080も
1920*1080も存在する
08198082009/07/03(金) 20:16:36
俺の液晶が1920x1080だからそれをそのまま使ってる。
0820デフォルトの名無しさん2009/07/04(土) 02:05:53
>>808は1080pをターゲットにしてるってことでしょ
360やPS3も一応対応してるぞ
0821デフォルトの名無しさん2009/07/04(土) 04:08:26
Q) 何故このスレはプログラムのネタが少なくて環境や理想の話が多いのか

 ↓
0822デフォルトの名無しさん2009/07/04(土) 04:09:37
中のロジックの手法だとかはすでにネットを探せば案外ころがってるので
0823デフォルトの名無しさん2009/07/04(土) 04:15:50
そもそもこのスレがなんでム板にry
0824デフォルトの名無しさん2009/07/04(土) 07:16:23
1の脳みそが沸いてるからだろ
0825デフォルトの名無しさん2009/07/04(土) 13:10:50
ジャンプする高さを、押し
たボタンの強さで調整する
ゲームとかあるけど、あれ
ってどうやってんの?
マリオとかロックマンとか
。
ジャンプボタンを押して、
キャラクターの浮き始めて
から数フレーム間ボタンが
押されてたら、長い=強く
押している、という判定を
して飛ぶ高さを決めるのか
とも思ったけど、ジャンプ
する高さってそもそも初速
度で決定するしね。

どうやってるんだろう。
0826デフォルトの名無しさん2009/07/04(土) 13:15:05
ボタン押してから数F待ってから飛べばいいんじゃない?
マリオはしらんが格ゲーだとほとんど上入力から飛ぶ前に数Fあるけど見た目にはわからんし
0827デフォルトの名無しさん2009/07/04(土) 13:18:08
入力は離した状態から最初に押したのかそうでないのかをチェックして
最初に押してから離すまで、もしくは一定フレーム数まで上昇し続ける
というふうにやってる
0828デフォルトの名無しさん2009/07/04(土) 13:19:27
まあ最大のジャンプが決まってて、途中で離したらそれがキャンセルされる、というイメージかな
このやりかたでロックマン風になると思うけど
0829デフォルトの名無しさん2009/07/04(土) 13:20:16
>>826
まったらだめじゃね?
押されたすぐのフレーム、その後数フレームのボタンの入力
で決めればOK
0830デフォルトの名無しさん2009/07/04(土) 18:54:58
>>825
ロケットとか途中で燃料が切れた状態にすればいいんでない?
地上から離れる瞬間に宇宙にいけることが確定してるもんなの?w
0831デフォルトの名無しさん2009/07/04(土) 19:22:57
飛んでる間、ボタンを押す/押さないで外力を操作できる→マリオ・ロックマンタイプ
ジャンプ入力を認識した後の数Fの間のみ、初速度を操作できるが飛んでからは操作不能→KOFタイプ(アクションの例が思いつかない・・・)
初速度固定で、飛んでからの操作もできない→魔界村タイプ(2段ジャンプはできるが)

結構ゲームの難易度にも影響してきそうだね
0832デフォルトの名無しさん2009/07/04(土) 19:58:14
>押したボタンの"強さ"で調整するゲームとかあるけど

ベラボーマンとストリートファイター?
とかいってみる

まぁ普通は押された瞬間じゃなく離された時に
どれだけの時間押されてたかで判定じゃないのん

PS2,3のコントローラは圧力も感知できるんだよなぁ・・
0833デフォルトの名無しさん2009/07/04(土) 20:01:06
>>832
アナログボタンなら強さも取得できる。
デジタルボタンなら押した時間だろうが、それだと判定にラグが出来るから、
一定時間に押した回数や、タイミング(ジャンプのY座標増分が0になったときに
もう一度押すと2段ジャンプとか)を使う方が爽快なゲームになりやすい。
0834デフォルトの名無しさん2009/07/04(土) 20:05:26
しかしそれでもR-TYPEは爽快なゲームであったと一言
0835デフォルトの名無しさん2009/07/05(日) 00:52:59
>>830
ロケットと人間では話が違うだろタコ。
ロケットは空中でも推進力を持ってるが、
人間は空中に浮いてからは推進力ないだろハゲ。
0836デフォルトの名無しさん2009/07/05(日) 01:23:09
>>828
お前重量加速度とか無視してない?
0837デフォルトの名無しさん2009/07/05(日) 01:41:17
>>836
ロックマンやったことある?
クローン作ったけど加速じゃなくて減速だよこれ
0838デフォルトの名無しさん2009/07/05(日) 01:45:50
>>837
えっなにそれこわい
0839デフォルトの名無しさん2009/07/05(日) 01:51:49
加速・・・
0840デフォルトの名無しさん2009/07/05(日) 02:25:59
ベクトル無視して加速も減速もないだろ。
0841デフォルトの名無しさん2009/07/05(日) 03:58:33
>>835
そう!
俺が言いたいのは推進力だよ
人間はロケットじゃねぇけど
つまりお前はそういうことがしたいんだよ

頭固いなぁwお前w大丈夫か?w
0842デフォルトの名無しさん2009/07/05(日) 04:49:06
こまけぇことはいいんだよ(AA略
0843デフォルトの名無しさん2009/07/05(日) 08:16:36
重力加速度考慮するより若干適当なアルゴリズムの方が面白いこともある
どう実装するかは好みで
0844デフォルトの名無しさん2009/07/05(日) 09:36:56
ゲームは物理シュミレーションじゃないしな
0845デフォルトの名無しさん2009/07/05(日) 09:41:30
>>841
?
ちょっとお前そこでぴょんぴょん飛んでみろよ。
飛んでから推進力を働かせなくとも飛ぶ高さを細かく調整できることを確認できるはずだ。
0846デフォルトの名無しさん2009/07/05(日) 09:45:19
>>845
>飛んでから推進力を働かせなくとも飛ぶ高さを細かく調整できることを確認できるはずだ。
それは地面を蹴った瞬間に結果が決まるだろw
0847デフォルトの名無しさん2009/07/05(日) 09:50:54
いや、頭の位置を飛んだ高さ、とか決めれば
飛んだ後でも高度調整可能と言える
0848デフォルトの名無しさん2009/07/05(日) 09:58:32
>>846
>>830
0849デフォルトの名無しさん2009/07/05(日) 10:05:10
>>848
は?
推進力の有無の話じゃねーか
頭悪いの?
0850デフォルトの名無しさん2009/07/05(日) 10:27:18
ジャンプの話してんのに推進力の話してる奴が混ざって混乱してるだけだろ
0851名無し2009/07/05(日) 10:33:00
http://warui.jp/?from=invite_4nN8RqM0
↑携帯ゲームおもしろいよ!
0852デフォルトの名無しさん2009/07/05(日) 11:01:22
マリオで物理シュミレーションしてみろよ。クソゲーになるぞ!
あんなオッサンのジャンプ力なんて本来50cm程度が限界なんだ、身長の1/3しかジャンプできないマリオのできあがり。
0853デフォルトの名無しさん2009/07/05(日) 11:28:20
>>849
こいつみたいな無駄に口悪く言う連中が荒れる原因なんだよね
0854デフォルトの名無しさん2009/07/05(日) 12:02:54
殺伐ってもんを勘違いしてやがるんだよな。
ひろゆきが否定したのはなれあいであって、
無駄につんけんしろということではない。
0855デフォルトの名無しさん2009/07/05(日) 12:29:59
でも>>848は推進力をまったく理解してないよね
0856デフォルトの名無しさん2009/07/05(日) 12:32:19
水平方向の速度が一定のとき
推進力がないときはジャンプした瞬間に着地点が決まる
推進力があるときはその推進力が切れたときに着地点が決まる
この程度の内容も理解しない・しようとしない相手と馴れ合おうとか思わない
はっきりいってただの馬鹿
みていて不快なレベル
0857デフォルトの名無しさん2009/07/05(日) 13:17:42
>>856
文脈的に誰に言ってるのかわからねぇから>>を使ってくれ
そして最後の3行は不要。理由は>>854を精読してくれ
0858デフォルトの名無しさん2009/07/05(日) 14:15:34
観察してみると分かるが、初代スーマリのようなタイプでは、
ジャンプボタン押しっぱなしの間は等速に上昇してゆく。
このことを、重力加速度と同等の推進力を持つと表現する
こともできるが、どのようにでも好きなように解釈したらよい。
0859デフォルトの名無しさん2009/07/05(日) 15:46:01
>>857
ゴミはゴミらしくしていろ
0860デフォルトの名無しさん2009/07/05(日) 16:54:09
>>859
ゴミはゴミらしくしていろ
0861デフォルトの名無しさん2009/07/06(月) 10:34:41
俺らってジャンプした瞬間に着地点決まるよな?
0862デフォルトの名無しさん2009/07/06(月) 12:28:13
俺らって誰よ。
空中で方今転換できるやつもいるべ
0863デフォルトの名無しさん2009/07/06(月) 12:32:57
>>862
えっなにそれこわい
0864デフォルトの名無しさん2009/07/06(月) 12:51:12
いるな
http://rocketnews24.com/wp-content/uploads/mizu.jpg
0865デフォルトの名無しさん2009/07/06(月) 13:43:50
重力を自在に操る高貴なるお方なら、あるいは、、
0866デフォルトの名無しさん2009/07/06(月) 14:13:02
たとえば重いダンベルをもって飛んで腕を振れば簡単に重心が移動する
空気抵抗なんかもあるし、着地点をずらす程度なら余裕で可能
0867デフォルトの名無しさん2009/07/06(月) 14:21:07
>>866
ダンベル振るとかwwどこのキン肉物理学だよw
0868デフォルトの名無しさん2009/07/06(月) 15:18:27
ダンベル振るとかw

普通ゲーム作るときって人間がジャンプするなら、
簡略化するためにその人間の装備を全て含んだ重量・重心を基準にして計算するから、
ダンベル振ってもそういう意味では重心位置は変わらない。

それに空気抵抗は一般的なゲームなら計算に入れるだろ。
そうしないと終端速度を求められないから、
高いところから飛び下りるシーンのあるゲームとかだと際限なく加速していく。
マリオでもドンキーコングでもよく観察したら分かるけど、
飛び降りてから一定速度に達するとそれ以上加速しなくなるのがその証拠。

まぁゲームだから重力加速度や空気抵抗の値をそれなりに調整するけどな!。
0869デフォルトの名無しさん2009/07/06(月) 15:27:10
俺らって生まれた瞬間にどうやって死ぬかきまるよな?
自由意志なんて存在しないよな?
0870デフォルトの名無しさん2009/07/06(月) 15:29:20
スレチは失せろよ
0871デフォルトの名無しさん2009/07/06(月) 15:33:31
>自由意思
>自由意思
>自由意思
>自由意思
>自由意思
>自由意思

自由意思覚えたての厨房かよw
0872デフォルトの名無しさん2009/07/06(月) 15:55:54
えっなにそれこわい
0873あいこ2009/07/06(月) 17:32:05
こーの間はスレチがあったんだー♪
だけーど声はかけられなかった♪
0874デフォルトの名無しさん2009/07/06(月) 18:41:51
そもそも重力加速度出してる時点で間違い。
この世に重力加速度を計算してるゲームなど一つもない。
0875デフォルトの名無しさん2009/07/06(月) 18:43:00
グランツは?
0876デフォルトの名無しさん2009/07/06(月) 19:00:10
いや別に、重力加速度を算出してますなんて
レスはどこにもないでしょ。
0877デフォルトの名無しさん2009/07/06(月) 19:10:14
ゲーム作るときって何かライブラリ化したりする?
0878デフォルトの名無しさん2009/07/06(月) 20:49:50
どうみても足し算をする関数名なのに引き算をする関数
どうみても外積をする関数名なのに内積をする関数
以下略
 ・
 ・
 ・
な俺々数学ライブラリ
会社を出るときに役に立つ
0879デフォルトの名無しさん2009/07/06(月) 21:02:12
なんかブラウザ論争の様に終わらない論争な気がするんだがw
ちなみに俺は重力加速度と終端落下速度を使ってる。
前者だけだと早くなりすぎてゲームにならない部分が出るけど、空気抵抗まで一々計算する必要は今のところ無いからな。俺のゲームではだけど
0880デフォルトの名無しさん2009/07/06(月) 21:09:17

if(getKey(KEYIN_SPC)){
  //尻から出るぅ!!!!!!!
  vy = BURYYYYYYYYYYYYYYYY;
}else{
  //落ちるぅ!落ちるぅ!
  vy += g;
}
y += vy;
0881デフォルトの名無しさん2009/07/07(火) 00:00:29
スペースキー押しっぱだと、宇宙の果てに飛んでいくぞ
0882デフォルトの名無しさん2009/07/07(火) 00:18:30
>>881
俺のゲームに限界など必要ない
お前には必要なんだな
ならばつければいい
0883デフォルトの名無しさん2009/07/07(火) 00:23:23
俺
お
なら
0884デフォルトの名無しさん2009/07/07(火) 00:46:53
>>879-873の流れにワロタ
0885デフォルトの名無しさん2009/07/07(火) 02:33:32
当たり判定ってどうやるんですか?
なんか壁すり抜けるんですけど
0886デフォルトの名無しさん2009/07/07(火) 02:42:00
壁すり抜けないように設定すりゃいいじゃん
0887デフォルトの名無しさん2009/07/07(火) 03:49:47
>>886
詳しくお願いします
0888デフォルトの名無しさん2009/07/07(火) 04:23:02
いやだから壁に当たったらそれ以上自座標を増やさなきゃいいだろ
0889デフォルトの名無しさん2009/07/07(火) 05:37:20
そんなこと俺がさせねぇよ
0890デフォルトの名無しさん2009/07/07(火) 08:10:43
壁抜けるほど速いなら外側の壁なら分厚くするとか
真面目にやるならベクトルで判定
0891デフォルトの名無しさん2009/07/07(火) 11:46:00
>>885
壁が3Dの複雑な形状でなければ、
一つ前のフレームと今のフレームの座標を出して、その座標間に壁があるかどうかを判定して、
その間に壁があればそこまでの移動で止める。

wall_x = 320;//壁のx座標
posx_a = 310;//前フレームのキャラのx座標
posx_b = 328;//今のフレームのキャラのx座標

if ( ( posx_a < wall_x )&&( posx_b > wall_x ) ){//壁に左からぶつかったとき
 posx_b = 319;
}else if ( ( posx_a > wall_x )&&( posx_b < wall_x ) ){//壁に右からぶつかったとき
 posx_b = 321;
}

これならキャラの速度が瞬速で、壁が紙のように薄くても大丈夫。
0892デフォルトの名無しさん2009/07/07(火) 11:48:19
>>891
ちなみに3Dの場合はどうやるの?
基本は同じだと思ってるんだけど・・・
0893デフォルトの名無しさん2009/07/07(火) 11:49:17
3Dゲーム用マップ作製ツール提供
http://pc12.2ch.net/test/read.cgi/tech/1246029651/
0894デフォルトの名無しさん2009/07/07(火) 13:50:47
>>892 同じ
0895デフォルトの名無しさん2009/07/07(火) 13:56:01
>>892 ゲーム用のざっくり計算でいいなら簡単な話、
3Dモデルを覆う立方体同士で交差判定すりゃいいと思う

もっと簡単にするなら球同士で距離で判定とか、やりようはいくらでもあるがな
0896あしながおじさん2009/07/07(火) 14:16:47
>>892
基本的に同じ。
3Dの複雑な形状でも細かく判定したいなら、DirectXを使うという手もある。
DirectXには確かベクトルとオブジェクトとの衝突判定をしてくれる関数があったはずだから、
今のフレームと一つ前のフレームの位置からベクトルを作って、
その関数に投げてやればOKのはず。

ただ、計算量が多いから、オブジェクトの量が多いと重くなる可能性大。
負荷を軽くしたかったら、オブジェクトを直方体や球だとして、
さっきのベクトルとの交点を求めればOK。
これはDirectX使わずに関数自作もすぐできる。
0897デフォルトの名無しさん2009/07/07(火) 18:50:35
何にしても微調整が面倒。
座標でいうと100から200に異動するときに180に壁があったら、
単に異動できないとかじゃなくて座標を180に調整せにゃならん。
0898デフォルトの名無しさん2009/07/07(火) 18:55:37
同人ゲーレベルの世界で3Dモリモリ動かすのって可能なの?
なんか本に1億円かかるとか書いてあったんだけど
0899デフォルトの名無しさん2009/07/07(火) 19:01:27
3Dモリモリ動かすだけだったら、フリーソフトにもいっぱいある。
企業ベースで動くとプロのコーダー、デザイナー、などなど
100人が2年分の賃金だけでかなりの金額になる。
0900デフォルトの名無しさん2009/07/07(火) 19:19:33
>>898
同人であるレベルまでいくと会社のツール使ってるから
もりもり動くよw
俺の昔いた会社はコミケ前は同人開発みんなやってて
誰もなにもいわなかったし
会社のツールも使ってゲーム作ってたw
0901デフォルトの名無しさん2009/07/07(火) 19:20:08
>>898 仮にもプログラムスレで何を聞いてるのか
いくらでも方法あるだろが OpenGL+GLUT でもいいし、Windowsなら DirectX でもいいし、
やる内容によっては ManagedDirectX だって選択肢の内だろうし、
FlashDevelop とか使うんだったら PaperVision だってあるし。
0902デフォルトの名無しさん2009/07/07(火) 19:20:50
※ただし XNAは除く
0903デフォルトの名無しさん2009/07/07(火) 19:21:45
壁の位置だけだとめり込んで動けなくなるから法線情報を考慮する必要がある。
床との判定をジャンプ中は無効にしないと高いところに上がるときに動きが不自然になったりするし、その辺りの修正が面倒。
PhysXやってみようかしら
0904デフォルトの名無しさん2009/07/07(火) 19:22:49
>>901
仮にも質問スレなんだから聞いてきたら普通に答えてやれよ
0905デフォルトの名無しさん2009/07/07(火) 19:32:02
まあ、ポイントは3Dのモデリングソフトでスキニングが
ゲームで使えるフォーマットにしてくれるか?ってとこ?
スキニング?アニメーション?なにそれ?
って人ならメタセコで十分な話だけど
0906デフォルトの名無しさん2009/07/07(火) 19:34:15
Wave Front Obj フォーマット簡単でおいしいです(^q^)
0907デフォルトの名無しさん2009/07/07(火) 19:50:44
DirectXのスキンメッシュが未だに理解できないから、
2Dのときに1コマずつ描いていくのと同じ要領で1コマずつメッシュ作ってる。
0908デフォルトの名無しさん2009/07/07(火) 19:58:22
3Dモデルに骨(ボーン)を入れる。
それでだな、関節の角度を変えると腕が動く訳だ。
骨と皮膚(スキン)は連動していてだな、
骨が動くと皮膚も同時に動く訳だ。
アニメするモデルが持っているデータは、ボーンの角度を配列だ
我々が見えるのはスキンでボーンは見えない。
又、別のやり方は、フレーム毎に全部の頂点データを記録する方法もある。
レス数が900を超えています。1000を超えると表示できなくなるよ。