- 1 名前:名前は開発中のものです。 mailto:sage [2014/01/16(木) 00:00:31.27 ID:w6WW3hAo.net]
- ゲーム製作におけるC/C++全般に関するスレです。
元スレ DXライブラリ 総合スレッド その17 toro.2ch.net/test/read.cgi/gamedev/1383795645/ 前スレ C/C++ゲーム製作総合スレッド Part1 toro.2ch.net/test/read.cgi/gamedev/1337516528/ C/C++ゲーム製作総合スレッド Part2 toro.2ch.net/test/read.cgi/gamedev/1351015269/ C/C++ゲーム製作総合スレッド Part3 toro.2ch.net/test/read.cgi/gamedev/1357899040/ C/C++ゲーム製作総合スレッド Part4 toro.2ch.net/test/read.cgi/gamedev/1376262450/
- 399 名前:名前は開発中のものです。 mailto:sage [2014/03/18(火) 22:13:14.48 ID:anUGUjWa.net]
- うむ、それしかないと思うよ
- 400 名前:名前は開発中のものです。 mailto:sage [2014/03/19(水) 01:58:11.08 ID:tk/WX1Vm.net]
- >>387
リンク先をチラ見した程度じゃ、何をやってるか正しく把握してないし、 >>387の言わんとしてることもイマイチ分かりかねてるが、 方法としては、 昔ながらRPGみたく、 キャラの位置が画面端に近づいたら画面全体じゃなくて、キャラのみを移動にする方法や 完全にどこの位置でもキャラを移動させる方法、画面端(移動制限をしっかり)して描画に十分な余白 の3通りぐらいはあると思うよ。 他にも3D系のだと、画面端に近づくと縮尺が変わってとかもあるけど。
- 401 名前:名前は開発中のものです。 mailto:sage [2014/03/19(水) 04:13:25.51 ID:GLn+gVin.net]
- 色々な表現方法があるのだが、比較的応用のききやすい方法を。
こんな事言って、例のkなんとかさんが激おこしないことを祈る。 >>387 現実世界で言うところの、スポーツ中継におけるTVカメラのようなものを想像して欲しい。 例えばマラソン中継。ランナーは常に走っているけど、カメラも同じ方向に動いている。 あるいは野球中継。ホームランボールをTVカメラが追いかけて、常に画面の中央にあるように撮影する。 被写体の動きに合わせてカメラを動かすことで、視聴者には被写体は停止し、背景が流れていくように見える。 カメラを動かすのをやめれば、逆に背景は停止し、被写体は移動する。やがて画面の外に消えてゆくだろう。 これをまとめると (1)キャラクターは、画面表示に関わらず常に動かせ。 (2)マップは、画面表示に関わらず座標を動かしてはならない。 (3)カメラの位置は、状況に合わせて移動させろ。 ということになる。
- 402 名前:名前は開発中のものです。 mailto:sage [2014/03/19(水) 16:07:40.13 ID:UvHVMI/M.net]
- 387の質問はサンプルソースをどうするかって話だから
その答えだと根本から作りなおせって事になるんじゃない?
- 403 名前:名前は開発中のものです。 mailto:sage [2014/03/19(水) 16:41:44.59 ID:pluZ/2gm.net]
- まあ答えとしては>389に言われちゃってるしな
- 404 名前:名前は開発中のものです。 mailto:sage [2014/03/19(水) 17:00:07.58 ID:o8V0VZ6P.net]
- そのサンプルだと滑らかに動くスクロール処理をキャラじゃなくてカメラビューの方に入れてるね。
ぶっちゃけサンプルとしてはどうかと思うぞ。 キャラとカメラ両方に入れるか、キャラに入れるか。この二択でしょ。Dxlibの作者もなんでこんな 初心者いじめのようなサンプルを書いたんだろw
- 405 名前:名前は開発中のものです。 mailto:sage [2014/03/19(水) 22:07:24.67 ID:rw0JuaTm.net]
- 俺こそが世界の中心!
- 406 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 17:23:48.20 ID:XEsROipC.net]
- C++とかで「グローバル宣言なるべく使うな」って言うけど、どうやって変数のデータを保持するの?
- 407 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 17:51:07.52 ID:
]
- [ここ壊れてます]
- 408 名前:yGIdDx3B.net mailto: 手元の入門書を開いてみてくれ。
「関数」のページに、おそらく「引数(ひきすう)」という項目が書かれてると思う。そこを読むんだ。 [] - [ここ壊れてます]
- 409 名前:名前は開発中のものです。 [2014/03/20(木) 17:55:02.77 ID:XkJNKHnH.net]
- クラス化
引数、戻り値
- 410 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 18:06:26.35 ID:XEsROipC.net]
- >>397,398
C++があやふやなのであれなんですが、Cで言えば構造体の中でxという宣言をすれば、 void main(){ }
- 411 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 18:08:28.64 ID:XEsROipC.net]
- 途中で更新ボタン押してしまった(´・ω・`)
勉強したてであやふやなのであれなんですが、Cで言えば構造体の中でxという宣言をすれば、 Test test; void main(){ test.x=1; } こんな感じにしてしまえば、xはグローバル宣言ではないということでしょうか?
- 412 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 18:12:12.69 ID:QQSkDL4k.net]
- >>400
このxはすでにグローバル変数ではなくて、ローカル変数だね 関数の中でしか有効ではない変数で、その関数を抜けるとその変数は破棄されるやつ グローバル変数ってのはTest testってなってるやつのこと
- 413 名前:名前は開発中のものです。 [2014/03/20(木) 18:17:11.33 ID:7FNS6Iq5.net]
- なんか言ってることが良く分からんが
Test test; を関数外に書いてるからtestはグローバル変数 だからその中に保持されているxの値も関数抜けても維持されるよーじゃなくてさっさと入門サイト見てこいカス
- 414 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 20:27:56.02 ID:4y6T8wZl.net]
- グローバル変数を使うことが悪いのではない
グローバル変数を使うことでバグを引き起こしたりメモリを圧迫する事が悪なのだ 要求機能満たして動くならグローバル使っても気にするこたぁない
- 415 名前:名前は開発中のものです。 [2014/03/20(木) 20:32:50.84 ID:mbiTOjB0.net]
- そういうのはわかるようになってから考えればいいし
初心者のうちはグローバル=悪って覚えていた方が安全
- 416 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 20:41:55.88 ID:F5faASXs.net]
- 問題になるのは生成、破棄の順序位でしょ
メモリ圧迫なんてヒープからnewしたのと同じだしスタックに積まれるよりまし アクセス範囲や名前の衝突なんてのも関数でも起こるし アクセッサーとか間違った使い方のシングルトンで どこからでも参照できるようにしたら同じこと
- 417 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 20:58:57.29 ID:QQSkDL4k.net]
- シングルトンを使うのがそもそもおかしいって力説するやつに会ったことならある
- 418 名前:名前は開発中のものです。 mailto:sage [2014/03/20(木) 21:49:50.24 ID:F5faASXs.net]
- インスタンスが単一を保証するためのパターンでどこからでもアクセスできる為では無いからな
ローカルなクラス内のシングルトンもあるので間違えられると混乱の元 ゲームのデータクラスとして使うのは設計次第
- 419 名前:名前は開発中のものです。 [2014/03/20(木) 22:00:31.87 ID:mbiTOjB0.net]
- リソースよりもメンテナンスの問題でないの
一人開発だとそんな気にならんけど規模でかくなると影響範囲の広い変数なんて地雷みたいなもんだからな 下手に修正すると全く関係ないところでエラーでたりしてトレース大変だったり
- 420 名前:名前は開発中のものです。 [2014/03/21(金) 18:13:16.93 ID:VAKzG1ya.net]
- シングルトン便利なのに
呼び出し側は生成関数使うだけで初期化されてるか気にしなくていいとか楽チン仕様にできる グローバル変数だけだとそうはいかんよね
- 421 名前:名前は開発中のものです。 mailto:sage [2014/03/21(金) 20:31:26.05 ID:sV0Efmq2.net]
- 初期化に失敗する可能性入れたら
実際に使う前に確認しておきたいけどな
- 422 名前:名前は開発中のものです。 mailto:sage [2014/03/21(金) 22:38:50.59 ID:4DgLw9n9.net]
- 初期化に失敗する可能性のあるものは
初期化するタイミングを図らないといけないもので それはシングルトンより適したデザインがあるのてはないか
- 423 名前:名前は開発中のものです。 mailto:sage [2014/03/23(日) 14:45:46.78 ID:UqjjQ2/2.net]
- >>408
そういう目的ならnamespaceを分ければよくねって話なら見た覚えがある ググったら過去スレがひっかかった
- 424 名前:http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
シングルトンで検索すると面白い [] - [ここ壊れてます]
- 425 名前:名前は開発中のものです。 mailto:sage [2014/03/24(月) 21:27:07.06 ID:rE2XsGEW.net]
- 最新のdirectx SDKってどこで入手したらいいですか?
ググっても場所がまちまちで
- 426 名前:名前は開発中のものです。 mailto:sage [2014/03/24(月) 21:41:34.76 ID:AEJao4UL.net]
- >>413
Windows8に標準でついてくるそうだ
- 427 名前:名前は開発中のものです。 mailto:sage [2014/03/24(月) 21:50:42.35 ID:WjXmoSNL.net]
- 2012以降のVisual Studioに標準で付いてくる、な
- 428 名前:名前は開発中のものです。 mailto:sage [2014/03/24(月) 22:39:54.92 ID:PqJgwAnT.net]
- マジレスすると>>415のやつ
それかWindowsSDKに一緒に入ってる この程度は自分で調べようぜ
- 429 名前:413 mailto:sage [2014/03/24(月) 22:44:31.69 ID:rE2XsGEW.net]
- インストール出来ました
ありがとです
- 430 名前:名前は開発中のものです。 [2014/03/25(火) 09:41:15.88 ID:KT+bOjyU.net]
- toro.2ch.net/test/read.cgi/gamedev/1175423459/719
↑ ↑ ↑ ↑ ↑ ↑
- 431 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 11:37:26.78 ID:+vTfvSPy.net]
- シューティングゲームを作る時、移動キー押下時に自キャラと他オブジェクトとの衝突判定を行うと思うのですが、
1フレーム移動毎に、敵や敵の弾や壁との衝突判定をしていると 画面上に敵の弾が100個とかあったりするとかなり膨大な数ループ処理が必要な気がします。 一般的なゲームの場合、画面上で動いているオブジェクトは全て1フレーム毎に衝突判定をしているのでしょうか?
- 432 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 13:20:48.84 ID:47820mJU.net]
- 2Dだけど
marupeke296.com/COL_2D_No8_QuadTree.html
- 433 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 13:22:14.35 ID:+vTfvSPy.net]
- >>420
レスした後でそこ見つけたんだけど私の頭では理解が・・・(´・ω・`) 皆この概念でシューティングゲーム作ってるんですかね?
- 434 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 13:23:52.42 ID:ghUA5KPp.net]
- >>420
今まで普通にやってたけど名前が付いてるの始めて知ったわ ありがとう
- 435 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 13:56:03.88 ID:xWjmtvj1.net]
- 俺もその理屈何度も読んだけど理解できないんだよなぁ。
素人に解るレベルに噛み砕いてくれてるとこあればいいのに。 結局座標で判定して分割してたりする。俺。
- 436 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 14:03:19.61 ID:+vTfvSPy.net]
- >>423
ttp://flash.polig.daa.jp/?eid=1242167 今さっき見つけたけどここと同じやり方ですかね? これならなんとなくわかる気がする。
- 437 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 17:00:06.09 ID:VxCnnAtl.net]
- >>419
100個くらいなら問題にならないっていう指摘と なぜ移動キーを押してる間しか当たり判定がないのかというツッコミと
- 438 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 17:08:48.02 ID:47820mJU.net]
- 質問はそこじゃないから
- 439 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 18:28:38.14 ID:VxCnnAtl.net]
- 質問に答えたつもりは無いのだが…
- 440 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 20:24:20.53 ID:Hvj0In47.net]
- ID:VxCnnAtl
その嫌われ者キャラは素なの? 治した方がいいよ。この先も友達出来ないよ。
- 441 名前:名前は開発中のものです。 mailto:sage [2014/03/26(水) 20:29:33.08 ID:fl0FfJGt.net]
- 一般的なゲームをどのクラスで指すのか分からないけど、
時代やハードを問わない"基本"は力技というか、1フレームごとの全判定だと思うっす。 ベテランプログラマがざっくりと組んじゃうところじゃなければ、 とりあえずプロトタイプを作ってみて、そっから必要な機能を満たしつつ、 どんだけ不要な判定対象を省いて回数減らせるか、ってやり方が多い気はする。 負荷やループ数を気にしているのなら、最近の据え置き機や携帯ゲーム機の場合だけど、 C++使ってるなら、数万回のループ判定程度がボトルネックやオーバーヘッドになることは少なくて(余程複雑な判定をしてれば別)、 問題になるのは2D3D問わずグラフィックスコマンドの場合が圧倒的に多いと思う。 なので、研究目的とかじゃなくて今時のハードで遊べるものを作りたいというだけなら、 判定そのものはそこそこ効率化してれば十分だと思うお。 よくあるシューティング形式なら、>>423の考え方でも十分効率上がりまっせ。
- 442 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 05:30:55.80 ID:y42irIZJ.net]
- そういう変な聞きかじりは止めた方がいい。
>>423ならスクロールなし画面に入るサイズだから判定もせいぜい3000未満でしょ。 それなら普通にforループ回して十分だし、そこだけマルチスレッドにしても良い。
- 443 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 05:42:21.29 ID:66/qzmyK.net]
- 厨が頑張るスレw
- 444 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 10:43:42.33 ID:LEeCMwpD.net]
- 「効率の良い判定方法を教えて下さい」
「今どきのPCは高性能だからそんな事考えなくてもOK!」 じゃ会話にならないでしょ。 ていうか自分の環境を基準に考えるのは止めたがいいよ。
- 445 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 11:05:32.54 ID:tJdovPbY.net]
- 「そこに拘るよりは、他の場所がネックになってる可能性が高い」なら回答としてギリギリありかな
- 446 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:17:49.28 ID:68m9m0Mu.net]
- そうかなぁ。
私も>>425と同じ感想を持ったんだけど。 >>419が実際にそういう総当りをしてみて重かったから他のやり方を聞いてるなら>>432のいうとおりだけど、実際やってみたのかね? そういう感じには読めなかったけど。
- 447 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:21:35.48 ID:3O8ksg+h.net]
- 判定するまでもなく接触していないことが自明なものはそもそも判定しない、とか
あとは、シューティングゲームなら 「敵x敵、敵弾x敵弾、敵x敵弾の判定は不要だからしない」とかで 判定回数を減らせることがある (もちろんその判定がシステム上必要ならやるしかないけど) あと経験不足な人だと A→Bの判定とB→Aの判定を別個にやっちゃってて そのせいで速度が出ないってのもあるかも? これを修正するだけで判定回数を半分にできる
- 448 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:35:21.54 ID:NuLp7Gqa.net]
- >>434
馬鹿じゃないの?ほんと文章を文字通りにしか受け取れないんだね。 誰が100個限定の質問してんだか。どう見ても数多くのオブジェクトがあった場合の衝突判定の質問だろ。 お前以外は皆わかってそういう答え返してるのに、お前だけが100個という質問の中のどうでもいい部分に固執してるわけだがw ここを10000個とでも書かないと分からんの?アホだろw
- 449 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:56:33.60 ID:68m9m0Mu.net]
- >>436
まじか。 想定されるオブジェクトの個数というのは重要な情報だと思ってるんだが、他の人はそうじゃないのか。 1個でも42億個でも対応できるようなやり方を毎回してるの? 100個って書いてあったらだいたい100個くらいを想定してるんだと思うのが普通だと思うが、そうでもないんだなぁ。
- 450 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 12:59:39.14 ID:LaHWZeJX.net]
- そもそもプログラム組める奴が434みたいな的はずれなこと言い出す訳がないわけで…
つまり、相手するなカス荒れるから
- 451 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 13:17:49.49 ID:462b1dLf.net]
- 膨大な数のループを使う判定は書けるんだからさらに増えたらどうすんのって質問でしょ
- 452 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 14:43:18.93 ID:0LKTz7/0.net]
- >ここを10000個とでも書かないと分からんの?アホだろw
2Dの当たり判定の処理は軽いから、マンコでも同じ事。 やってみ
- 453 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 15:10:53.94 ID:2L1CAOZz.net]
- 話変わって悪いけど、レースゲームで車が高速移動しすぎて当たり判定が出来ない場合ってどうすればいいの?
- 454 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 15:51:52.80 ID:tJdovPbY.net]
- >>441
1ループあたりの移動速度を半分にして、ループ数を2倍回す。
- 455 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 19:51:32.13 ID:D4N08/V9.net]
- >>441
現在フレームをnとした場合、n-1フレームの情報を保持しておいて、nフレームとの線分を引く。 あるいは現在の位置と速度から予測されるn+1の未来予測位置とnフレームとの線分を引く。 この線分が障害物と接触していたら接触した際の処理へ移行するように書いておく。
- 456 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 20:07:57.55 ID:LEeCMwpD.net]
- >>440
PCスペックを限定してないのにその回答は無意味だってば。
- 457 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 21:19:31.28 ID:tdrncXK1.net]
- たとえ、 2MHz Z80であっても、ディスプレイは40x25のキャラクタ画面だから大丈夫だよ
- 458 名前:名前は開発中のものです。 mailto:sage [2014/03/27(木) 22:05:12.78 ID:LEeCMwpD.net]
- 40*25のテキストエリアで10000個のキャラクター動かすのかw
- 459 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 00:17:11.93 ID:49hdQnYh.net]
- >>442
大丈夫かよ…
- 460 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 00:45:18.83 ID:1M6UES2K.net]
- >>447
俺は>>442じゃないけど大丈夫だと思う、むしろよくある手法じゃない? アクションの通信対戦で処理落ちする時の同期なんかで使われるのも似たようなやり方あるし
- 461 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 00:52:56.05 ID:bd0QOyAi.net]
- 一時期の同人げーって処理落ちしまくりで
「こいつら良いマシンで開発してるんだな…」って嫉妬してたw 最近はPCの性能頭打ちでそういうのなくなったからいいよねww
- 462 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 00:56:09.52 ID:cOG2DjHy.net]
- >>447
スレチかもしれんがUnityの物理演算部分の判定は秒間1000ループが推奨されてるんだからわりと平気なんじゃね?
- 463 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 12:11:43.53 ID:/j8PQ+jU.net]
- >>441
Point before, after; // 前回の座標、今回の座標 int count = 8; int ix = (after.x - before.x) / count; int iy = (after.y - before.y) / count; Point pos; pos.x = before.x; pos.y = before.y; for(int i=0; i<=count; i++){ bool is = collision(pos.x, pos.y); // 当たり判定 if(is) break; pos.x += ix; pos.y += iy; } count, ix, iyの値をもう少しきちんと平方根使って計ったほうがいいけど
- 464 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 12:15:19.93 ID:/j8PQ+jU.net]
- >>451はお絵描きソフトなんかでよく使うんじゃないかな
60fpsでマウス判定じゃ全然足りなくて線が破線になるし
- 465 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 13:16:45.63 ID:UXW64F/+.net]
- お絵かきならスプライン補間とかだろ2次元だとカクカクの直線になるぞ
あとそれバグ持ちだな
- 466 名前:名前は開発中のものです。 [2014/03/28(金) 22:13:02.97 ID:LlNhW3Yy.net]
- Windows APIにDirectXが搭載されたならいい加減にウィンドウ生成とかDirectXの初期化とかどんなジャンルでも必要なゲームエンジンの要素とか短縮しねえかな
コピペとはいえ毎回見るのが嫌になってくるよな ライブラリとかラッパー使えば済むんだろうけど理解するのは面倒だし
- 467 名前:名前は開発中のものです。 mailto:sage [2014/03/28(金) 22:28:44.11 ID:cOG2DjHy.net]
- >>454
会社では無理だけど自分で作るようなら短縮用のヘッダーと関数とか自作しない 理解すればいろいろと便利だし
- 468 名前:名前は開発中のものです。 mailto:sage [2014/03/29(土) 09:51:35.35 ID:Pyp/eAfy.net]
- ウィンドウ周りは自分で適当にラッパー作ったな
都度調べてコピペするより精神衛生的に良い
- 469 名前:名前は開発中のものです。 mailto:sage [2014/03/29(土) 13:22:18.51 ID:CYqmosk/.net]
- さもありなん。
老害にはコードスニペットの概念がないからなぁ。
- 470 名前:名前は開発中のものです。 mailto:sage [2014/03/29(土) 21:21:25.19 ID:2TsE/LLz.net]
- 毎回書くような所だけ書いたプロジェクト作ってテンプレートとして登録しとけばいいんじゃないの
- 471 名前:名前は開発中のものです。 mailto:sage [2014/03/29(土) 21:48:25.68 ID:fyBJTsa/.net]
- そしてそのテンプレートが、ゲームを作るたびに更新されていく
- 472 名前:名前は開発中のものです。 mailto:sage [2014/03/30(日) 00:08:10.54 ID:mb7Whzhe.net]
- win32APIで別のプログラムを呼び出したいです
system関数は使ってみたんですがdos窓も一緒に出てきてしまいます
- 473 名前:名前は開発中のものです。 mailto:sage [2014/03/30(日) 00:14:44.76 ID:3L4NtrMF.net]
- >>460
CreateProcessだとDOS窓出なかった気がする
- 474 名前:460 mailto:sage [2014/03/30(日) 01:27:38.78 ID:mb7Whzhe.net]
- ドンピシャでした
ありがとうございます
- 475 名前:名前は開発中のものです。 mailto:sage [2014/04/01(火) 17:00:08.51 ID:1bXVipah.net]
- >459
これありすぎて吹く
- 476 名前:名前は開発中のものです。 mailto:sage [2014/04/01(火) 17:13:22.13 ID:mqOcie7s.net]
- 俺もテンプレートってほどいいものじゃないけど
「今回作ったシステム流用すればいくらでもゲーム作れるぜ!: と毎回思うんだけど、毎回まるまる作り直してるという……。
- 477 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 10:41:39.05 ID:QH7QljdQ.net]
- 自分で作った3Dゲームにめちゃくちゃ酔うんだけど、比較的酔いにくくする方法ってある?
- 478 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 11:13:17.38 ID:gG8rIG0W.net]
- >>465 ちょっと、見せてみ
- 479 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 12:36:37.68 ID:Y76EY8s4.net]
- >>465
別にそういう専門知識もってないから経験則になるけど。 酔いやすい人と酔いにくい人がいるけど、酔いやすい人は三次元把握能力の高い人だと思う。これはどうしようもない。 俺は酔いにくい側の人間なんだけど、それでもあるゲームではめちゃくちゃ酔った事がある。 そのゲームはTPSなんだけど「キャラの背後に壁などの障害物があると、それが邪魔にならないよう自動でアングルが変わる」というものだった。 「背後の障害物が透明になる」なら酔わないのに「勝手にアングルが変わる」だと凄まじく酔う事がわかった。 車の運転でも、「運転してる人は酔わない」と言われてる。つ まり「プレイヤー本人の意思とは関係なくアングルが変わる」と酔う事になる。 他にも、急激にアングルが変わる(目の処理が追いつかない)でも酔うと思われるので、ゆっくり視点を動かす工夫をすればいいのではないだろうか。 あと視点の方向を変えると遠景ほど早く動いて見えるから、遠景はあまり注視できないようにぼかすとか彩度を落とすとかするといいかもしれない。
- 480 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 16:48:09.93 ID:RKxy3xMo.net]
- ソニックアドベンチャーDXは何故かすごい酔った
- 481 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 17:07:31.12 ID:05HXNQtD.net]
- モニタを「風景の映ってる窓」として捉えると酔いにくい、なんて話も聞いたことがあるね。
- 482 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 20:57:32.09 ID:SSqz5QAv.net]
- FOVの設定が悪いとか
- 483 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 21:38:55.24 ID:Y76EY8s4.net]
- >>469
上でも言ったが俺は酔いにくい人間で、モニタに映る映像を「一枚の絵」としか認識してないんだよな。 頭のなかで3次元空間を構築しながら見ていない。 ガンブレードNYの動画を見てた時、ぐりんぐりん視界が動くのにまったく酔わなかったんだが、 ふと「一枚の絵としてしか認識してない自分」に気づいて、 頭のなかで方位を意識しながら(3次元空間を意識しながら)見なおしてみると、あっという間に気分が悪くなったw でもこれは個人の話であってゲームをどうやれば酔いにくくできるかって技術とは別の話だよね。
- 484 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 22:03:56.84 ID:yy3b+VRk.net]
- 3次元で意識してるけど酔ったことないな
酔うのが不思議でならない
- 485 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 22:29:30.77 ID:sgFJO2N4.net]
- 3D酔い
カメラの位置と回転中心位置の関係が悪い カメラ視野角の調整が悪い カメラ回転の応答速度が遅い
- 486 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 22:32:07.27 ID:6rTn9j+m.net]
- >>465
FoVが狭すぎてゲロゲロ カメラの動きでゲロゲロ この辺りは既に言われてるようなので、あとはレベルデザインかな。 ぐぐったら自レスが引
- 487 名前:っかかったのでリンクを貼っとく
http://unkar.org/r/gamedev/1223550808/423-452 > 452 : 名前は開発中のものです。[sage] : 2008/12/27(土) 00:34:33 ID:quq8i6DN > >>423 > 遅レスで更に>>425、>>426と微妙にかぶる内容だが > > (1)FOVの問題 > 酔いの原因は様々だが、FOVの調整で改善される場合は多い > プレイヤーの視野角を考えずに3D画面の投影変換行列を設定すると酔いやすい > > ・プレーヤー視点とディスプレイ間の距離 > ・ディスプレイの寸法 > > 以上のパラメータから違和感の少ないFOVを探ることができる > まぁ、既存FPSのFOV値を参考にするほうが手っ取り早いかもな > > (2)レベルデザインの問題 > 閉鎖空間を多用するマップは酔いやすい。これは(1)の問題との組み合わせでより悪化する > FOVをどんなに調整しても吐く奴は吐く。対策としては開放空間(屋外)を多用する方法がある > ただし、閉鎖空間の戦いをウリにするゲームではこの対策はとれない > > BFシリーズはオーケーだけどDOOM3とかHLシリーズは駄目、みたいな人に対処するのは困難 > 狭くて暗い閉鎖空間のスポーツFPSを作るつもりなら酔いやすいユーザーは切り捨てたほうが楽 [] - [ここ壊れてます]
- 488 名前:名前は開発中のものです。 mailto:sage [2014/04/02(水) 23:05:42.17 ID:6rTn9j+m.net]
- >>473
>カメラ回転の応答速度が遅い これ、見落とされがちだけどあるよね ARMAでマウススムージングがデフォルトでONだったので視線の動きに 遅延が生じて気分悪かった。スムージングを切ったら何ともなかった
- 489 名前:名前は開発中のものです。 mailto:sage [2014/04/03(木) 00:12:27.55 ID:d8bZaMxb.net]
- 動き回る飛行船の上でアクションシーンを展開したゲームを作って見たいんだけど
着地判定というか、移動する床みたいなのってどうやってるんだ? 飛行船が上に進んでる時に急制動で下向いたら飛行船に乗ってたキャラクターが跳ねるチンフワ現象を取り入れたいんだけど 素直に物理エンジンに託した方がいい?
- 490 名前:名前は開発中のものです。 mailto:sage [2014/04/03(木) 00:41:04.11 ID:paQ+FHve.net]
- 物理エンジンが一番楽
正確じゃなくてもいいなら 飛行船が上に進んでいるときにキャラクターの下と飛行船の着地できる部分が接触してるか判定して 接触してるなら飛行船の上の移動量とキャラクターの上の移動量を比べて飛行船の移動量の方が大きいなら キャラクターの上の移動量を飛行船の上の移動量に書き換える こうすれば飛行船がいきなり止まったりしたときにふわって感じで浮くことは可能 ただ、違和感はある落ち方になると思うから物理エンジンをお勧めしとく
- 491 名前:名前は開発中のものです。 mailto:sage [2014/04/03(木) 01:07:35.19 ID:d8bZaMxb.net]
- >>477
わかったありがとう
- 492 名前:名前は開発中のものです。 mailto:sage [2014/04/04(金) 02:07:12.66 ID:iGGKX1Rj.net]
- 詳しいね
さすがチンフワ総合スレッド
- 493 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 17:41:08.13 ID:Wu1wSHql.net]
- クラス分けって具体的にどんな感じでやっていけばいいの?
関数分けまでは普通に出来るんだけど、メンバ変数がある以上クラス分けしたくても出来ないし・・・
- 494 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 18:16:26.54 ID:cqmzi82f.net]
- 「// ○○を△△する」ってなコメントが書けそうな関数が複数あったら
○○をメンバ変数に置いて、○○を操作する関数をメンバ関数にしたクラスにする ツッコミどころ多そうだけど大雑把にこんな原則で大体どうにかなるんじゃないかな
- 495 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 20:43:25.01 ID:nUDfpyEY.net]
- 例えばC言語みたいな手続き型の言語で攻撃の判定処理を作ったとする
1.判定対象を選択 2.判定対象の座標と大きさ、形を取得する 3.大きさや形に合わせて判定する 4.当たってたらhpをダメージ分引いたりノックバックさせたり双方の属性に合わせていくつかの処理に分岐する 5.繰り返し クラスを使ってオブジェクト指向的に処理する 1.対象を選択 2.対象に「お前この判定対象と当たってなる?」と確認する 3.繰り返し ここまで書いて何を言いたかったか忘れたのでこのまま投稿する
- 496 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 20:58:16.49 ID:TIaN2lJ/.net]
- 関数を実行するのに必要な変数をまとめたのが最小単位かな
変数として持つデータに依存する部分はメンバ関数にしたいけど std::stringみたいになんでも入れちゃうのと マイナーな機能は引数を取る静的関数や別クラスに分けるかはまた悩む
- 497 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 21:40:17.97 ID:nUDfpyEY.net]
- オブジェクト指向を完全に突き詰めると動詞の関数しかなくなるような気がしないでもない
ゲームなら特に
- 498 名前:名前は開発中のものです。 mailto:sage [2014/04/05(土) 22:14:07.33 ID:k4ryh3Xy.net]
- >>482
ええー、そんな感じなの。想像してたのと違うなぁ。 あ、俺は480じゃないけど似たような問題に詰まってる者です。
- 499 名前:名前は開発中のものです。 mailto:sage [2014/04/06(日) 01:53:43.72 ID:E+ECXvrW.net]
- まあオブジェクト指向の作法については
それだけで厚めの本が出るぐらいだし・・・
|

|