[過去ログ] 【ゲームで、この処理ってどーやってんの?】 (125レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(32): 1 2018/05/30(水)20:09 ID:fZdspc/Y(1/23) AAS
ゲームを作ってるor作りたい人が、自分のゲームに実装したい処理や、既存のゲームのこんな処理ってどーやって実現してるの?と質問すると、心優しい誰かが説明してくれるスレです。
質問は、これこれこういう処理、〇〇のゲームのこれみたいな、とか、△△のこの面のこれってどーやってんの?という感じで既存のゲームなどを例示したりして、分かりやすい質問を心がけましょう。
説明は、コード羅列は禁止しましょう。長文でも良いので、このようにできている、又は、こんな感じでできるんじゃない、という風に文章で分かるような説明を心がけましょう。
■ゲーム開発会社がゲーム製作技術を伝授するスレ
2chスレ:gamedev
↑上記スレを見ていて、現スレのようなのがあれば、便利かなと思って建てました。
2: 1 2018/05/30(水)20:10 ID:fZdspc/Y(2/23) AAS
sageちゃアカンやんage
3(6): 1 2018/05/30(水)20:18 ID:fZdspc/Y(3/23) AAS
即消されないように、しばらく自問自答したいと思います。
自分がなるほどなあ、と思った超基礎的なやつ。
1行なのでコードで書かせてください。いきなり禁止破り。原則禁止、とすべきでした。
0〜nの数字を順送りし、n番目の次は0に戻る処理
a=(a+1)mod(n+1)
n+1で、増えていくaを割った余りを返すことで、nの次は0に戻る処理です。
4: 1 2018/05/30(水)20:19 ID:fZdspc/Y(4/23) AAS
a+1の1を任意の数値にすることで、いくつ進めるかを任意にできます。
5(1): 1 2018/05/30(水)20:28 ID:fZdspc/Y(5/23) AAS
次。
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に送ることができます。
省1
6: 1 2018/05/30(水)20:33 ID:fZdspc/Y(6/23) AAS
マウスドラッグで画面をつまんでスクロール。
描画座標x,y
?ドラッグ開始座標dx,dy
?マウス座標mx,my
描画タイミングごとに、?と?の差を描画座標に加算して描画して、?に?を代入する。
こんな感じだったっけ。
7: 1 2018/05/30(水)20:36 ID:fZdspc/Y(7/23) AAS
ちなみに、1は自分でゲーム作ってる人です。
作ってる時に、あ、なるほどー、自分で思いついた俺、天才!とか思ったことを、しばらく書いていきたいと思います。
8: 1 2018/05/30(水)20:48 ID:fZdspc/Y(8/23) AAS
クロスバー表現。
アイテムなどを種別ごとに横並び、強さなどごとに縦並びで、PS3のクロスメディアバーのようなものを作りたくって考えました。
詳しくはちょっと忘れちゃったけど、今作り直したらもっと理解して作れそう。
横種別がn
縦並びのアイテムを配列yoko(n).data(m個(種別ごとの動的配列)
で、表示開始ID、横用yと縦用t(n)を持ち、
操作で、yとt(n)が変化するごとに表示内容が変わります。
省1
9: 1 2018/05/30(水)20:52 ID:fZdspc/Y(9/23) AAS
その際、マウスの動きが縦方向なのか、横方向なのかを検知する必要がありました。
これは、上記マウスのドラッグで移動を応用して、
開始座標と、0.01秒とかの短い時間後のマウス座標の差から絶対値を出し、x>yなら横移動、y>xなら縦移動したとみなして、それぞれの処理を行ないます。
10: 1 2018/05/30(水)20:56 ID:fZdspc/Y(10/23) AAS
この部分はもっと最適化できそうだけど、めんどいので放置してます。
というか、自分が考えついた処理は、unityとかのツールだとライブラリであるのかなあ、と思いますが、あえて遠回りしてる自分が良いのか悪いのか、トホホ
11: 1 2018/05/30(水)21:06 ID:fZdspc/Y(11/23) AAS
自分の疑問も書いておきます。
■星のドラゴンクエストで、球形マップを、?クルクルした後、回転をリセットすると、球形マップの?初期表示角度に戻ると思うのだけど、戻る途中の描画に使う角度などの計算はどうやってるの?
クルクルは自分で作れたつもりなんだけど、xyzの三軸回転と視点カメラの位置と方向とかも含めて考えるとこんがらがってわけわかめ。
12: 1 2018/05/30(水)21:10 ID:fZdspc/Y(12/23) AAS
ちなみに1の知識はファミコンレベルかと思いますので、ご了承ください。
13(1): 1 2018/05/30(水)21:16 ID:fZdspc/Y(13/23) AAS
先日他スレで書いたやつ
ファミコングラディウスの2面の粒々のあたり判定
粒々は配置されてる動かない物体なので、横スクロール座標と、ビームなどの座標を合成した座標に、粒々があったら当たったと見なして消滅処理すればイイんじゃないかなあと思いました。
例えば、現在表示される画面を描画する際、8×8ドットごとに区切ったマトリクスを2次元配列で持つとかして、中身は0:空っぽ(背景)、1:破壊可能物体、2:破壊不可物体とかを設定。
これは、面のマップ情報をスクロール分だけずらして、現在表示分をコピるだけでもイイですね。
昔のテレビって640×480でしたっけ?だと、横80×60の比較用配列で済むか。
で、ビームやレーザーの現在位置をビームが移動するごとにその配列のインデックスに直接参照できるから、オブジェクトごとの衝突判定みたいな時間のかかる処理は必要ないかと思いました。
14: 1 2018/05/30(水)21:31 ID:fZdspc/Y(14/23) AAS
上記クロスバー表現で、横縦アイテムひとつの半分までずらしたら、一個ぶんズレたり戻ったりする処理。
アイテムひとつの半分の距離aを持っておき、
ドラッグドロップ時点の移動距離bがそれを超えたら一個ズレ。
超えなかったら元に戻る。
その際、ドラッグ距離が長い場合もあるので、アイテム一個ぶんの距離で割った余りの距離が、半分超えてたら+方向に、超えてなければ-方向に、
で、余りの距離と、前後の定位置との差分を、任意の数で分割して分割した数だけ分割距離ずつ表示座標に加算して、みよん、とズレたり戻ったりの表現。
大体こんな感じだったような。
省1
15: 1 2018/05/30(水)21:35 ID:fZdspc/Y(15/23) AAS
たくさんのアイテムを所持してる時、全部表示してたのを、表示エリア外のものは表示しなくした処理。
ゲーム作り始めた頃、画面外でも、オブジェクト表示処理をしてて、動作が重かったのを、
あれ、画面外にあるんだから表示処理しなくていいんじゃね?と思って修正したら、何百個持っててもスイスイになって感動する。
16: 1 2018/05/30(水)21:42 ID:fZdspc/Y(16/23) AAS
ドラッグしたオブジェクトをドラッグしながら、だんだんマウスカーソルの中心に持っていく処理。
これは、天才!とは思わなかったですが。
カーソルの座標と、オブジェクトの中心位置などの座標との差をドラッグ開始に取得し、その差分をマウス座標に足してオブジェクトを描画すると、つまんで動かす表現。
動かしていくごとに、その差分を×0.99とかしていくと、次第につまんでる位置が真ん中になる。
17: 1 2018/05/30(水)21:42 ID:fZdspc/Y(17/23) AAS
つかれた。
18: 1 2018/05/30(水)21:43 ID:fZdspc/Y(18/23) AAS
一休み一休み
19: 1 2018/05/30(水)21:46 ID:fZdspc/Y(19/23) AAS
好きなゲームの処理の説明されてるページ
ワンダと巨像のやつ
外部リンク[htm]:game.watch.impress.co.jp
20: 1 2018/05/30(水)21:51 ID:fZdspc/Y(20/23) AAS
衝突判定はちょっと苦労しました。
衝突可能性のあるもの同士だけ判定するために、3,4回並べ替えとか配列の生成を繰り返してから、判定したりとか。
まだ簡単に説明できないので、いずれまた。
21: 1 2018/05/30(水)21:53 ID:fZdspc/Y(21/23) AAS
経路検索も楽しかった。
A*が今の所速いそうだけど、ダイクストラの方が分かりやすかったのでそっちで作りました。
説明は、よー分からん!
22: 1 2018/05/30(水)21:55 ID:fZdspc/Y(22/23) AAS
こんなところかなあ。
2ちゃんって、いろんな人が書き込まないと消えるのかな。
誰か!助けて!
23(1): ボッキングの弟子 ◆rZPPjYuxmQ 2018/05/30(水)23:22 ID:ABn11nDo(1/2) AAS
ちなみにこの板は落ちないので沢山のくそスレが乱立してます
あの板に人が集まるのは現役のゲーム会社の人がやってるからで、わざわざそこに名無しで回答するのは、構ってちゃんなのよ
だからいくらスレ作って誘導しても来ないの
ただの荒らしだから…
24: ボッキングの弟子 ◆rZPPjYuxmQ 2018/05/30(水)23:23 ID:ABn11nDo(2/2) AAS
ところで主さんのゲ製は何でやってますかぁ?
unityなら情報共有できるのだけど…
25: 1 2018/05/30(水)23:31 ID:fZdspc/Y(23/23) AAS
>>23
落ちないんですか。そうですか。
教えてくださってありがとうございます。
VBで作ってます。馴染みがあったのがVBだったので。
今作ってるのが終わったらUnityに移る予定なので、その際はいろいろ勉強させてください。
26: 2018/05/31(木)05:46 ID:9nDqf7jv(1) AAS
支援
27(1): 2018/05/31(木)07:45 ID:DnYcK65M(1) AAS
本一冊かける乱数についてどうぞ
28(1): 2018/05/31(木)08:44 ID:IITj/Hiu(1/2) AAS
お題
グラディウスのミサイルの地形追従
29(3): 1 2018/05/31(木)09:15 ID:N+l2Be6d(1) AAS
>>27
スレチですが。
乱数関係だと。
一定の確率で複数の分岐処理を扱う時。
1番最初は
select case 0to0.2
〜case 0.6to0.7みたく直接数字書いたけど、もっと楽にできないかと考えました。
省13
30: 1 2018/05/31(木)09:28 ID:qD6WAQaC(1) AAS
>>28
>>13で書いたような、任意のドットで区切った縦横のBG配列に地形情報を入れ(破壊不可だから、1かな)
ミサイルの座標をBG配列のインデックスに計算し、参照。
破壊不可と重なったら、ミサイルの座標を1ブロックかその半分くらい上に移動させる。
ミサイルは基本的に下と右に向かうので、地面がデコボコしてたらそのデコボコに沿う感じになるんじゃないかと。
細かく地面を這わせたい時は、BG配列のドット区切りを細かくすれば良いと思います。
どうでしょう?
31: 2018/05/31(木)12:10 ID:IITj/Hiu(2/2) AAS
地面の細かい凸凹をどうデータ化するかが胆かと思う。
/|型の地形と|\型の地形が並んでる場合、両方とも「非破壊地形」にしちゃうと、凸凹に沿わずに真横に飛んでいるように見えちゃいそう。
なお俺の場合は、
1.右下が空いている→右下に移動
2.else右が空いている→右に移動
3.else右上が空いている→右上に移動
4.else爆発
省2
32: 2018/05/31(木)15:37 ID:d58xUOV7(1) AAS
モンハンワールドで首長系モンスを実装出来ないのは、ダウン時に段差に首や頭がめり込むからという間抜けな理由なのですが、
不可能なのですか?
UR4&HAVOK
33: 2018/05/31(木)18:20 ID:f6lDwIJE(1) AAS
ネットスライム君、こんなところに居ないで自スレを伸ばしゲームを完成させて早くデバッグさせなさい。先生はカンカンに怒って居ます。
34: 2018/05/31(木)21:24 ID:afJ9Cg6n(1) AAS
AA省
35: 2018/06/01(金)07:45 ID:2GLaryXx(1) AAS
ここ写経スレ?
36: ダーク王鍬大使 ◆SoVpkB15jY 2018/06/01(金)10:20 ID:dKo9snWk(1) AAS
そうでふよ(^^
37: 2018/06/01(金)11:40 ID:Pq7J7Prf(1) AAS
浄土真宗羅列すまん。
コード禁止は知ってたが、言葉で説明する自信がなかった。
親子丼食べて落ち着くよ
38(1): 29 2018/06/01(金)16:13 ID:0NO1muzn(1/2) AAS
えー、すいません。
>>29は、
えーと、?分岐させたいケースごとに適当な数をセットし、?その合計でそれぞれ割ると、それぞれの確率、重み?になるので、その確率を順に足すことで、0.0〜1.0に収まる範囲に分岐の確率を設定できるので、そこに乱数値を与えて分岐のIDを返す。
?だけ渡せば良く、?以降を関数化したもの、です。
前述したように、分岐数も自由だし、分岐に用いる割合の合計を100とか1.0にしなくてもよい点が、自分ではなかなか閃いたなあ、というもの、でした。
m(_ _)m
39: 29 2018/06/01(金)16:22 ID:0NO1muzn(2/2) AAS
>>38のメリットは、関数化によるものは当然ですが、?を変更するだけで、分岐を増やしたりそれぞれの確率を変えたり出来る修正の簡略性でしょうか。
関数の中では、分岐IDを返すのはforとかdo loopになってますが、
普通にselectを使う場合の分岐を増やしたり確率を変更したりする時より修正の手間が減るかと。
40: 2018/06/01(金)21:36 ID:zTDrksgY(1) AAS
なるほど!・・・だいたい34で合ってたな!(強引)
>selectを使う場合の分岐を増やしたり確率を変更したりする時より修正の手間
これはまったくその通り。
複数のモノからウェイトに応じて1つを選択する処理って、基本動的だから、ハードコーディングできないしね。
自分の場合は、クセで、なるべく整数で扱うように組んでしまうw
41(1): 2018/06/02(土)08:14 ID:v2De4DA4(1) AAS
グラディウス4の1面のボスの変形ってどうやってるんだろ?
頂点ID単位で変形前後のメッシュモデルを関連付けてるんだろうか
キャラ変形は昔からテーマみたいで、色んなタイトルが導入してるけど、作り込むのが大変そうな割に今一つインパクトに欠けるんだよな
42(1): 2018/06/03(日)20:50 ID:cxQibUuc(1) AAS
>>41
動画見てみましたが、懐かしい響きのモーフィングですかね。
3Dは一口かじった程度なのであまり話せませんが面白い処理ではありますね。
元々軟体なキャラ表現にも良さげ。
43: 2018/06/04(月)16:31 ID:EEJNpDFt(1) AAS
マウスジェスチャー使ってみたいな
44: 2018/06/04(月)20:13 ID:8xsfA6rj(1) AAS
>>42
モーフィングの範疇に入るんですかね。そのキーワードからは、頭部メッシュの変形例が思い浮かぶ
グラ4の1ボスの最初の形態である3つ首竜は、各首がランダムに動いており、変形前後のメッシュ形状が一様ではないように見えるが、
あらかじめ中間メッシュを準備しておいて使ってるのかな?
いずれにせよこの演出は、DQ4のデスピサロほどには、プレイヤーの印象に残らなった気がする
上下前次1-新書関写板覧索設栞歴
あと 81 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.018s