[過去ログ]
【ゲームで、この処理ってどーやってんの?】 (125レス)
【ゲームで、この処理ってどーやってんの?】 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
1: 1 [sage] 2018/05/30(水) 20:09:05.10 ID:fZdspc/Y ゲームを作ってるor作りたい人が、自分のゲームに実装したい処理や、既存のゲームのこんな処理ってどーやって実現してるの?と質問すると、心優しい誰かが説明してくれるスレです。 質問は、これこれこういう処理、〇〇のゲームのこれみたいな、とか、△△のこの面のこれってどーやってんの?という感じで既存のゲームなどを例示したりして、分かりやすい質問を心がけましょう。 説明は、コード羅列は禁止しましょう。長文でも良いので、このようにできている、又は、こんな感じでできるんじゃない、という風に文章で分かるような説明を心がけましょう。 ■ゲーム開発会社がゲーム製作技術を伝授するスレ https://mevius.5ch.net/test/read.cgi/gamedev/1520381891/ ↑上記スレを見ていて、現スレのようなのがあれば、便利かなと思って建てました。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/1
2: 1 [] 2018/05/30(水) 20:10:02.65 ID:fZdspc/Y sageちゃアカンやんage http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/2
3: 1 [sage] 2018/05/30(水) 20:18:53.13 ID:fZdspc/Y 即消されないように、しばらく自問自答したいと思います。 自分がなるほどなあ、と思った超基礎的なやつ。 1行なのでコードで書かせてください。いきなり禁止破り。原則禁止、とすべきでした。 0〜nの数字を順送りし、n番目の次は0に戻る処理 a=(a+1)mod(n+1) n+1で、増えていくaを割った余りを返すことで、nの次は0に戻る処理です。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/3
4: 1 [sage] 2018/05/30(水) 20:19:57.56 ID:fZdspc/Y a+1の1を任意の数値にすることで、いくつ進めるかを任意にできます。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/4
5: 1 [sage] 2018/05/30(水) 20:28:15.39 ID:fZdspc/Y 次。 0〜nの数字を順送り逆送りして、n+1で0、0から-1になった場合nになる処理。 どーだっけな。 m:加算値(+1や-1など任意の正負の数 a=(a+m+n+1)mod(n+1) 合ってるかな。 a+mに最大値nと1を足すことで、a+mがマイナスになった場合、プラスの数値に変換し、n+1で割った余りを戻すことで、0-1をnに送ることができます。 式、合ってるよね? http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/5
6: 1 [sage] 2018/05/30(水) 20:33:03.41 ID:fZdspc/Y マウスドラッグで画面をつまんでスクロール。 描画座標x,y ?ドラッグ開始座標dx,dy ?マウス座標mx,my 描画タイミングごとに、?と?の差を描画座標に加算して描画して、?に?を代入する。 こんな感じだったっけ。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/6
7: 1 [sage] 2018/05/30(水) 20:36:40.03 ID:fZdspc/Y ちなみに、1は自分でゲーム作ってる人です。 作ってる時に、あ、なるほどー、自分で思いついた俺、天才!とか思ったことを、しばらく書いていきたいと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/7
8: 1 [sage] 2018/05/30(水) 20:48:44.78 ID:fZdspc/Y クロスバー表現。 アイテムなどを種別ごとに横並び、強さなどごとに縦並びで、PS3のクロスメディアバーのようなものを作りたくって考えました。 詳しくはちょっと忘れちゃったけど、今作り直したらもっと理解して作れそう。 横種別がn 縦並びのアイテムを配列yoko(n).data(m個(種別ごとの動的配列) で、表示開始ID、横用yと縦用t(n)を持ち、 操作で、yとt(n)が変化するごとに表示内容が変わります。 t(n)なので、横に動かすと全体が横移動しますが、縦に動かすと、1列のみ縦移動するように動きます。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/8
9: 1 [sage] 2018/05/30(水) 20:52:50.23 ID:fZdspc/Y その際、マウスの動きが縦方向なのか、横方向なのかを検知する必要がありました。 これは、上記マウスのドラッグで移動を応用して、 開始座標と、0.01秒とかの短い時間後のマウス座標の差から絶対値を出し、x>yなら横移動、y>xなら縦移動したとみなして、それぞれの処理を行ないます。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/9
10: 1 [sage] 2018/05/30(水) 20:56:23.56 ID:fZdspc/Y この部分はもっと最適化できそうだけど、めんどいので放置してます。 というか、自分が考えついた処理は、unityとかのツールだとライブラリであるのかなあ、と思いますが、あえて遠回りしてる自分が良いのか悪いのか、トホホ http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/10
11: 1 [sage] 2018/05/30(水) 21:06:17.17 ID:fZdspc/Y 自分の疑問も書いておきます。 ■星のドラゴンクエストで、球形マップを、?クルクルした後、回転をリセットすると、球形マップの?初期表示角度に戻ると思うのだけど、戻る途中の描画に使う角度などの計算はどうやってるの? クルクルは自分で作れたつもりなんだけど、xyzの三軸回転と視点カメラの位置と方向とかも含めて考えるとこんがらがってわけわかめ。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/11
12: 1 [sage] 2018/05/30(水) 21:10:30.09 ID:fZdspc/Y ちなみに1の知識はファミコンレベルかと思いますので、ご了承ください。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/12
13: 1 [sage] 2018/05/30(水) 21:16:08.81 ID:fZdspc/Y 先日他スレで書いたやつ ファミコングラディウスの2面の粒々のあたり判定 粒々は配置されてる動かない物体なので、横スクロール座標と、ビームなどの座標を合成した座標に、粒々があったら当たったと見なして消滅処理すればイイんじゃないかなあと思いました。 例えば、現在表示される画面を描画する際、8×8ドットごとに区切ったマトリクスを2次元配列で持つとかして、中身は0:空っぽ(背景)、1:破壊可能物体、2:破壊不可物体とかを設定。 これは、面のマップ情報をスクロール分だけずらして、現在表示分をコピるだけでもイイですね。 昔のテレビって640×480でしたっけ?だと、横80×60の比較用配列で済むか。 で、ビームやレーザーの現在位置をビームが移動するごとにその配列のインデックスに直接参照できるから、オブジェクトごとの衝突判定みたいな時間のかかる処理は必要ないかと思いました。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/13
14: 1 [sage] 2018/05/30(水) 21:31:15.28 ID:fZdspc/Y 上記クロスバー表現で、横縦アイテムひとつの半分までずらしたら、一個ぶんズレたり戻ったりする処理。 アイテムひとつの半分の距離aを持っておき、 ドラッグドロップ時点の移動距離bがそれを超えたら一個ズレ。 超えなかったら元に戻る。 その際、ドラッグ距離が長い場合もあるので、アイテム一個ぶんの距離で割った余りの距離が、半分超えてたら+方向に、超えてなければ-方向に、 で、余りの距離と、前後の定位置との差分を、任意の数で分割して分割した数だけ分割距離ずつ表示座標に加算して、みよん、とズレたり戻ったりの表現。 大体こんな感じだったような。 でも、細かい部分でおかしい。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/14
15: 1 [sage] 2018/05/30(水) 21:35:31.67 ID:fZdspc/Y たくさんのアイテムを所持してる時、全部表示してたのを、表示エリア外のものは表示しなくした処理。 ゲーム作り始めた頃、画面外でも、オブジェクト表示処理をしてて、動作が重かったのを、 あれ、画面外にあるんだから表示処理しなくていいんじゃね?と思って修正したら、何百個持っててもスイスイになって感動する。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/15
16: 1 [] 2018/05/30(水) 21:42:06.23 ID:fZdspc/Y ドラッグしたオブジェクトをドラッグしながら、だんだんマウスカーソルの中心に持っていく処理。 これは、天才!とは思わなかったですが。 カーソルの座標と、オブジェクトの中心位置などの座標との差をドラッグ開始に取得し、その差分をマウス座標に足してオブジェクトを描画すると、つまんで動かす表現。 動かしていくごとに、その差分を×0.99とかしていくと、次第につまんでる位置が真ん中になる。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/16
17: 1 [] 2018/05/30(水) 21:42:25.32 ID:fZdspc/Y つかれた。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/17
18: 1 [] 2018/05/30(水) 21:43:52.53 ID:fZdspc/Y 一休み一休み http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/18
19: 1 [] 2018/05/30(水) 21:46:06.04 ID:fZdspc/Y 好きなゲームの処理の説明されてるページ ワンダと巨像のやつ https://game.watch.impress.co.jp/docs/20051207/3dwa.htm http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/19
20: 1 [] 2018/05/30(水) 21:51:02.40 ID:fZdspc/Y 衝突判定はちょっと苦労しました。 衝突可能性のあるもの同士だけ判定するために、3,4回並べ替えとか配列の生成を繰り返してから、判定したりとか。 まだ簡単に説明できないので、いずれまた。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/20
21: 1 [] 2018/05/30(水) 21:53:58.54 ID:fZdspc/Y 経路検索も楽しかった。 A*が今の所速いそうだけど、ダイクストラの方が分かりやすかったのでそっちで作りました。 説明は、よー分からん! http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/21
22: 1 [] 2018/05/30(水) 21:55:00.14 ID:fZdspc/Y こんなところかなあ。 2ちゃんって、いろんな人が書き込まないと消えるのかな。 誰か!助けて! http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/22
25: 1 [] 2018/05/30(水) 23:31:13.49 ID:fZdspc/Y >>23 落ちないんですか。そうですか。 教えてくださってありがとうございます。 VBで作ってます。馴染みがあったのがVBだったので。 今作ってるのが終わったらUnityに移る予定なので、その際はいろいろ勉強させてください。 http://mevius.5ch.net/test/read.cgi/gamedev/1527678545/25
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.728s*