2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【ゲームで、この処理ってどーやってんの?】

1 :1:2018/05/30(水) 20:09:05.10 ID:fZdspc/Y.net
ゲームを作ってるor作りたい人が、自分のゲームに実装したい処理や、既存のゲームのこんな処理ってどーやって実現してるの?と質問すると、心優しい誰かが説明してくれるスレです。

質問は、これこれこういう処理、〇〇のゲームのこれみたいな、とか、△△のこの面のこれってどーやってんの?という感じで既存のゲームなどを例示したりして、分かりやすい質問を心がけましょう。

説明は、コード羅列は禁止しましょう。長文でも良いので、このようにできている、又は、こんな感じでできるんじゃない、という風に文章で分かるような説明を心がけましょう。


■ゲーム開発会社がゲーム製作技術を伝授するスレ
https://mevius.5ch.net/test/read.cgi/gamedev/1520381891/
↑上記スレを見ていて、現スレのようなのがあれば、便利かなと思って建てました。

2 :1:2018/05/30(水) 20:10:02.65 ID:fZdspc/Y.net
sageちゃアカンやんage

3 :1:2018/05/30(水) 20:18:53.13 ID:fZdspc/Y.net
即消されないように、しばらく自問自答したいと思います。
自分がなるほどなあ、と思った超基礎的なやつ。
1行なのでコードで書かせてください。いきなり禁止破り。原則禁止、とすべきでした。

0〜nの数字を順送りし、n番目の次は0に戻る処理

a=(a+1)mod(n+1)

n+1で、増えていくaを割った余りを返すことで、nの次は0に戻る処理です。

4 :1:2018/05/30(水) 20:19:57.56 ID:fZdspc/Y.net
a+1の1を任意の数値にすることで、いくつ進めるかを任意にできます。

5 :1:2018/05/30(水) 20:28:15.39 ID:fZdspc/Y.net
次。
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に送ることができます。
式、合ってるよね?

6 :1:2018/05/30(水) 20:33:03.41 ID:fZdspc/Y.net
マウスドラッグで画面をつまんでスクロール。

描画座標x,y
@ドラッグ開始座標dx,dy
Aマウス座標mx,my
描画タイミングごとに、@とAの差を描画座標に加算して描画して、@にAを代入する。

こんな感じだったっけ。

7 :1:2018/05/30(水) 20:36:40.03 ID:fZdspc/Y.net
ちなみに、1は自分でゲーム作ってる人です。
作ってる時に、あ、なるほどー、自分で思いついた俺、天才!とか思ったことを、しばらく書いていきたいと思います。

8 :1:2018/05/30(水) 20:48:44.78 ID:fZdspc/Y.net
クロスバー表現。
アイテムなどを種別ごとに横並び、強さなどごとに縦並びで、PS3のクロスメディアバーのようなものを作りたくって考えました。

詳しくはちょっと忘れちゃったけど、今作り直したらもっと理解して作れそう。

横種別がn
縦並びのアイテムを配列yoko(n).data(m個(種別ごとの動的配列)
で、表示開始ID、横用yと縦用t(n)を持ち、
操作で、yとt(n)が変化するごとに表示内容が変わります。
t(n)なので、横に動かすと全体が横移動しますが、縦に動かすと、1列のみ縦移動するように動きます。

9 :1:2018/05/30(水) 20:52:50.23 ID:fZdspc/Y.net
その際、マウスの動きが縦方向なのか、横方向なのかを検知する必要がありました。

これは、上記マウスのドラッグで移動を応用して、
開始座標と、0.01秒とかの短い時間後のマウス座標の差から絶対値を出し、x>yなら横移動、y>xなら縦移動したとみなして、それぞれの処理を行ないます。

10 :1:2018/05/30(水) 20:56:23.56 ID:fZdspc/Y.net
この部分はもっと最適化できそうだけど、めんどいので放置してます。

というか、自分が考えついた処理は、unityとかのツールだとライブラリであるのかなあ、と思いますが、あえて遠回りしてる自分が良いのか悪いのか、トホホ

11 :1:2018/05/30(水) 21:06:17.17 ID:fZdspc/Y.net
自分の疑問も書いておきます。

■星のドラゴンクエストで、球形マップを、@クルクルした後、回転をリセットすると、球形マップのA初期表示角度に戻ると思うのだけど、戻る途中の描画に使う角度などの計算はどうやってるの?

クルクルは自分で作れたつもりなんだけど、xyzの三軸回転と視点カメラの位置と方向とかも含めて考えるとこんがらがってわけわかめ。

12 :1:2018/05/30(水) 21:10:30.09 ID:fZdspc/Y.net
ちなみに1の知識はファミコンレベルかと思いますので、ご了承ください。

13 :1:2018/05/30(水) 21:16:08.81 ID:fZdspc/Y.net
先日他スレで書いたやつ
ファミコングラディウスの2面の粒々のあたり判定

粒々は配置されてる動かない物体なので、横スクロール座標と、ビームなどの座標を合成した座標に、粒々があったら当たったと見なして消滅処理すればイイんじゃないかなあと思いました。

例えば、現在表示される画面を描画する際、8×8ドットごとに区切ったマトリクスを2次元配列で持つとかして、中身は0:空っぽ(背景)、1:破壊可能物体、2:破壊不可物体とかを設定。
これは、面のマップ情報をスクロール分だけずらして、現在表示分をコピるだけでもイイですね。
昔のテレビって640×480でしたっけ?だと、横80×60の比較用配列で済むか。
で、ビームやレーザーの現在位置をビームが移動するごとにその配列のインデックスに直接参照できるから、オブジェクトごとの衝突判定みたいな時間のかかる処理は必要ないかと思いました。

14 :1:2018/05/30(水) 21:31:15.28 ID:fZdspc/Y.net
上記クロスバー表現で、横縦アイテムひとつの半分までずらしたら、一個ぶんズレたり戻ったりする処理。


アイテムひとつの半分の距離aを持っておき、
ドラッグドロップ時点の移動距離bがそれを超えたら一個ズレ。
超えなかったら元に戻る。
その際、ドラッグ距離が長い場合もあるので、アイテム一個ぶんの距離で割った余りの距離が、半分超えてたら+方向に、超えてなければ-方向に、
で、余りの距離と、前後の定位置との差分を、任意の数で分割して分割した数だけ分割距離ずつ表示座標に加算して、みよん、とズレたり戻ったりの表現。

大体こんな感じだったような。
でも、細かい部分でおかしい。

15 :1:2018/05/30(水) 21:35:31.67 ID:fZdspc/Y.net
たくさんのアイテムを所持してる時、全部表示してたのを、表示エリア外のものは表示しなくした処理。


ゲーム作り始めた頃、画面外でも、オブジェクト表示処理をしてて、動作が重かったのを、
あれ、画面外にあるんだから表示処理しなくていいんじゃね?と思って修正したら、何百個持っててもスイスイになって感動する。

16 :1:2018/05/30(水) 21:42:06.23 ID:fZdspc/Y.net
ドラッグしたオブジェクトをドラッグしながら、だんだんマウスカーソルの中心に持っていく処理。

これは、天才!とは思わなかったですが。

カーソルの座標と、オブジェクトの中心位置などの座標との差をドラッグ開始に取得し、その差分をマウス座標に足してオブジェクトを描画すると、つまんで動かす表現。
動かしていくごとに、その差分を×0.99とかしていくと、次第につまんでる位置が真ん中になる。

17 :1:2018/05/30(水) 21:42:25.32 ID:fZdspc/Y.net
つかれた。

18 :1:2018/05/30(水) 21:43:52.53 ID:fZdspc/Y.net
一休み一休み

19 :1:2018/05/30(水) 21:46:06.04 ID:fZdspc/Y.net
好きなゲームの処理の説明されてるページ
ワンダと巨像のやつ
https://game.watch.impress.co.jp/docs/20051207/3dwa.htm

20 :1:2018/05/30(水) 21:51:02.40 ID:fZdspc/Y.net
衝突判定はちょっと苦労しました。

衝突可能性のあるもの同士だけ判定するために、3,4回並べ替えとか配列の生成を繰り返してから、判定したりとか。

まだ簡単に説明できないので、いずれまた。

21 :1:2018/05/30(水) 21:53:58.54 ID:fZdspc/Y.net
経路検索も楽しかった。
A*が今の所速いそうだけど、ダイクストラの方が分かりやすかったのでそっちで作りました。
説明は、よー分からん!

22 :1:2018/05/30(水) 21:55:00.14 ID:fZdspc/Y.net
こんなところかなあ。

2ちゃんって、いろんな人が書き込まないと消えるのかな。

誰か!助けて!

23 :ボッキングの弟子 :2018/05/30(水) 23:22:20.29 ID:ABn11nDo.net
ちなみにこの板は落ちないので沢山のくそスレが乱立してます
あの板に人が集まるのは現役のゲーム会社の人がやってるからで、わざわざそこに名無しで回答するのは、構ってちゃんなのよ
だからいくらスレ作って誘導しても来ないの
ただの荒らしだから…

24 :ボッキングの弟子 :2018/05/30(水) 23:23:50.42 ID:ABn11nDo.net
ところで主さんのゲ製は何でやってますかぁ?
unityなら情報共有できるのだけど…

25 :1:2018/05/30(水) 23:31:13.49 ID:fZdspc/Y.net
>>23
落ちないんですか。そうですか。
教えてくださってありがとうございます。


VBで作ってます。馴染みがあったのがVBだったので。
今作ってるのが終わったらUnityに移る予定なので、その際はいろいろ勉強させてください。

26 :名前は開発中のものです。:2018/05/31(木) 05:46:07.28 ID:9nDqf7jv.net
支援

27 :名前は開発中のものです。:2018/05/31(木) 07:45:56.09 ID:DnYcK65M.net
本一冊かける乱数についてどうぞ

28 :名前は開発中のものです。:2018/05/31(木) 08:44:36.81 ID:IITj/Hiu.net
お題
グラディウスのミサイルの地形追従

29 :1:2018/05/31(木) 09:15:43.81 ID:N+l2Be6d.net
>>27
スレチですが。

乱数関係だと。

一定の確率で複数の分岐処理を扱う時。

1番最初は
select case 0to0.2
〜case 0.6to0.7みたく直接数字書いたけど、もっと楽にできないかと考えました。

で、分岐させたい数の配列t(n)を作り、
その中に確率の大小を入れ(合計が100にならなくても良い)
、t(n)の値の合計sumを出し、それを使ってt2(n)に0.0〜1.0の範囲として割り振る。
例えば3つの分岐で、1つめが45、2つめが90、3つめが15だとすると、合計150なので、1は30%、2は60%、3は10%
なので、0.3,0.6,0.1となり、t2(0)は0.0と0.3
t(1)は0.3と0.9、t2(2)は0.9と1.0の開始値と終了値を格納。
ここらへんは、ちょっと冗長。終了値だけで事足りそう。

で、乱数を出し、
n回だけ繰り返してそれがどの範囲かの番号を返す。

その後それぞれの処理へ。

要約すると、、、
t(n)にそれぞれの当たり確率を適当な整数で示せば、その内のどれに当たるかを返してくれる関数。

分岐の確率を手書きしなくて済むことと、合計100にしなくても良くなった瞬間でした。

30 :1:2018/05/31(木) 09:28:37.23 ID:qD6WAQaC.net
>>28
>>13で書いたような、任意のドットで区切った縦横のBG配列に地形情報を入れ(破壊不可だから、1かな)
ミサイルの座標をBG配列のインデックスに計算し、参照。
破壊不可と重なったら、ミサイルの座標を1ブロックかその半分くらい上に移動させる。

ミサイルは基本的に下と右に向かうので、地面がデコボコしてたらそのデコボコに沿う感じになるんじゃないかと。

細かく地面を這わせたい時は、BG配列のドット区切りを細かくすれば良いと思います。

どうでしょう?

31 :名前は開発中のものです。:2018/05/31(木) 12:10:06.08 ID:IITj/Hiu.net
地面の細かい凸凹をどうデータ化するかが胆かと思う。

/|型の地形と|\型の地形が並んでる場合、両方とも「非破壊地形」にしちゃうと、凸凹に沿わずに真横に飛んでいるように見えちゃいそう。

なお俺の場合は、
1.右下が空いている→右下に移動
2.else右が空いている→右に移動
3.else右上が空いている→右上に移動
4.else爆発
と書きたい模様
(そして坂道を延々登っていくミサイル)

32 :名前は開発中のものです。:2018/05/31(木) 15:37:36.49 ID:d58xUOV7.net
モンハンワールドで首長系モンスを実装出来ないのは、ダウン時に段差に首や頭がめり込むからという間抜けな理由なのですが、
不可能なのですか?
UR4&HAVOK

33 :名前は開発中のものです。:2018/05/31(木) 18:20:16.72 ID:f6lDwIJE.net
ネットスライム君、こんなところに居ないで自スレを伸ばしゲームを完成させて早くデバッグさせなさい。先生はカンカンに怒って居ます。

34 :名前は開発中のものです。:2018/05/31(木) 21:24:38.84 ID:afJ9Cg6n.net
>>29
ごめん、言葉だけだとよくわからん。

もし29に書いてあるようなことを俺がやるとすると、こんな感じかなぁ。。。
(C#失礼)

static T SelectByRandom<T>(Dictionary<T, int> dic) {
 //荷重合計までの乱数を発生
 int n = MyRandom(dic.Sum(x => x.Value));
 //乱数に応じたオブジェクト選択
 foreach(var kv in dic) {
  if ((n -= kv.Value) < 0) {
   //選択
   return kv.Key;
  }
 }
 throw new Exception();//エラー
}

実際はDictionary使わないし、関数化もしないけど、とりあえずイメージで。
ループ回して乱数値に応じた選択をするのが、俺的に定番。
コンパイラ通してないのでエラーでるかもw

呼び出し方はこんな感じ

//準備
var weightDic = new Dictionary<MyClass, int>();
weightDic[objA] = 30;//30の確率でobjAを選択
weightDic[objB] = 90;//90の確率でobjBを選択
weightDic[objC] = 40;//40の確率でobjCを選択
//選択そして実行
var selectedObject = SelectByRandom<MyClass>(weightDic);

35 :名前は開発中のものです。:2018/06/01(金) 07:45:20.95 ID:2GLaryXx.net
ここ写経スレ?

36 :ダーク王鍬大使 :2018/06/01(金) 10:20:16.59 ID:dKo9snWk.net
そうでふよ(^^

37 :名前は開発中のものです。:2018/06/01(金) 11:40:53.50 ID:Pq7J7Prf.net
浄土真宗羅列すまん。
コード禁止は知ってたが、言葉で説明する自信がなかった。
親子丼食べて落ち着くよ

38 :29:2018/06/01(金) 16:13:07.09 ID:0NO1muzn.net
えー、すいません。

>>29は、
えーと、@分岐させたいケースごとに適当な数をセットし、Aその合計でそれぞれ割ると、それぞれの確率、重み?になるので、その確率を順に足すことで、0.0〜1.0に収まる範囲に分岐の確率を設定できるので、そこに乱数値を与えて分岐のIDを返す。

@だけ渡せば良く、A以降を関数化したもの、です。

前述したように、分岐数も自由だし、分岐に用いる割合の合計を100とか1.0にしなくてもよい点が、自分ではなかなか閃いたなあ、というもの、でした。
m(_ _)m

39 :29:2018/06/01(金) 16:22:47.28 ID:0NO1muzn.net
>>38のメリットは、関数化によるものは当然ですが、@を変更するだけで、分岐を増やしたりそれぞれの確率を変えたり出来る修正の簡略性でしょうか。

関数の中では、分岐IDを返すのはforとかdo loopになってますが、
普通にselectを使う場合の分岐を増やしたり確率を変更したりする時より修正の手間が減るかと。

40 :名前は開発中のものです。:2018/06/01(金) 21:36:46.13 ID:zTDrksgY.net
なるほど!・・・だいたい34で合ってたな!(強引)

>selectを使う場合の分岐を増やしたり確率を変更したりする時より修正の手間
これはまったくその通り。
複数のモノからウェイトに応じて1つを選択する処理って、基本動的だから、ハードコーディングできないしね。
自分の場合は、クセで、なるべく整数で扱うように組んでしまうw

41 :名前は開発中のものです。:2018/06/02(土) 08:14:34.42 ID:v2De4DA4.net
グラディウス4の1面のボスの変形ってどうやってるんだろ?
頂点ID単位で変形前後のメッシュモデルを関連付けてるんだろうか
キャラ変形は昔からテーマみたいで、色んなタイトルが導入してるけど、作り込むのが大変そうな割に今一つインパクトに欠けるんだよな

42 :名前は開発中のものです。:2018/06/03(日) 20:50:11.51 ID:cxQibUuc.net
>>41
動画見てみましたが、懐かしい響きのモーフィングですかね。
3Dは一口かじった程度なのであまり話せませんが面白い処理ではありますね。
元々軟体なキャラ表現にも良さげ。

43 :名前は開発中のものです。:2018/06/04(月) 16:31:01.07 ID:EEJNpDFt.net
マウスジェスチャー使ってみたいな

44 :名前は開発中のものです。:2018/06/04(月) 20:13:06.13 ID:8xsfA6rj.net
>>42
モーフィングの範疇に入るんですかね。そのキーワードからは、頭部メッシュの変形例が思い浮かぶ
グラ4の1ボスの最初の形態である3つ首竜は、各首がランダムに動いており、変形前後のメッシュ形状が一様ではないように見えるが、
あらかじめ中間メッシュを準備しておいて使ってるのかな?

いずれにせよこの演出は、DQ4のデスピサロほどには、プレイヤーの印象に残らなった気がする

45 :名前は開発中のものです。:2018/06/04(月) 20:57:21.77 ID:9Q3y7VLu.net
ドラクエってwwwww

46 :名前は開発中のものです。:2018/06/04(月) 22:03:26.23 ID:VMODjZSK.net
>>5
N=n+1として、
a=(a+m+N) mod N
にしようぜ。プログラミングで0≦a≦nって気持ちわるい。
(0≦a<Nのほうがいい)

47 :名前は開発中のものです。:2018/06/04(月) 22:54:57.18 ID:q8Why9BM.net
オレは両辺にaがあるのが気持ち悪い

48 :1:2018/06/05(火) 08:09:45.07 ID:d+YvGmuW.net
>>46
まあそのへんは好きずきで。

0≦a<Nの方が気持ちいいのは、何か理由があるのでしょうか。
よかったらお聞かせください。

49 :名前は開発中のものです。:2018/06/05(火) 23:16:47.68 ID:SXh27SaO.net
質問です
ファミコンのゴルフゲーム(マリオUSコース)などの
3D的な画面ってどうやって処理してるのでしょうか?

50 :名前は開発中のものです。:2018/06/10(日) 14:53:10.30 ID:e9Y5gB6k.net
アラド戦記や天華百円?のような
高さの概念もあるベルトスクロールってどう実現したらいいのでしょう、なかなかノウハウが見当たりません

単純に斜めから見下ろしてる3Dゲームみたいなものなのでしょうか?

51 :名前は開発中のものです。:2018/06/10(日) 19:30:49.96 ID:2dOgpg9v.net
あぁもうスレ主あきちゃったかな

52 :名前は開発中のものです。:2018/06/10(日) 20:26:48.18 ID:e9Y5gB6k.net
このスレはだめそうね

53 :名前は開発中のものです。:2018/06/10(日) 20:40:28.38 ID:V+n/Ok0R.net
>>51
思い付きで立てたスレなんてこんなもの

54 :名前は開発中のものです。:2018/06/11(月) 01:23:02.34 ID:A7oKBA09.net
難しい質問に答えられる人がいるはずないもんな

55 :名前は開発中のものです。:2018/06/11(月) 13:49:53.82 ID:oKxCgL/T.net
>>50
その分野の経験ないけど、
座標を3Dでもたせて3Dで当たり判定すりゃいいだけだろ
繰り出したパンチ(=プレイヤー攻撃)付近の当たり判定となっている2Dの矩形(地面範囲)が、敵の当たり判定2D矩形(地面範囲)と重なるかどうかで判定してたのを、
パンチ付近の3Dの直方体が、敵の当たり判定の3D直方体と重なる部分があるかどうかでやりゃいいだけなんじゃね
直方体じゃなくて、球面判定というか、3Dの距離で判定してもいいだろうが

56 :名前は開発中のものです。:2018/06/15(金) 04:44:27.73 ID:JTGrmWDc.net
グラデュウスの話が出てたんで、
オプションを実装する場合の考え方を教えてください。
自機が止まると自機と重なるオプションと、
自機が止まると、その場で停止するオプションと。

57 :名前は開発中のものです。:2018/06/15(金) 08:44:45.17 ID:2u95J2FD.net
>>56
前者は、常に、あるいは自機と自分の位置が一定以上離れている場合、自機との座標に自分(オプション)の位置を近づけていく。(ただし動いている時は一定の距離を保つ必要があるので、後述)

後者は、自機が止まっている時、上記処理を行わない。

自機を動かしている時のオプションの動きは、、、
あれは、前のオプションに追従するような感じだよね。
動かしている時のみ、前のオプションの座標に自分を近づける、で良いのかな。それだと、後ろがどんどんショートカットしてきそうだけど、それでいいのかな?

以上です。

58 :名前は開発中のものです。:2018/06/15(金) 14:15:08.08 ID:quv25Q7S.net
各フレームの自機の位置を配列に記憶。
1番オプションは(例えば)10フレーム前の座標を設定、2番オプションは20フレーム前、3番オプションは(略)

自機が停止している状態で、位置記憶とオプション座標更新をすれば、重なる系のオプションになるし、
自機が停止している状態で、位置記憶とオプション座標更新をしないなら、重ならない系のオプションになる。

59 :名前は開発中のものです。:2018/06/15(金) 20:05:44.71 ID:PQDvx7FC.net
ファミコンなら飛び出せ大作戦の床どうやってんだ?
左右の動きはラスターとして、奥から手前ってあれ市松模様にするのは一定の幅でガバッとずらしてるのはわかるけど。
よくあるスコア表示残して縦スクロールするあれやってんのか?

60 :名前は開発中のものです。:2018/06/20(水) 15:47:11.60 ID:ZrW2wcFn.net
ポータルのポータルってどうやってるの?
向こう側見えるし、もの持ってこれるし、中途半端に入れるし

61 :名前は開発中のものです。:2018/06/22(金) 10:00:16.03 ID:ANGPpuI8.net
つーかここ、例のスレとは大違いで、答えても何の礼も無いよなw

>>60
レンダリングに関しては:
カメラ視点を複数用意して、穴の向こうの視野を一旦テクスチャにレンダリングして、テクスチャを穴のこちら側の壁に貼り付けてるんだろう
カメラ視点は3つくらいあるのかな(1人称視点、穴の向こう側の視野の視点、穴の向こう側に開いている穴から見える視野の視点)

移動に関しては:
ある境界面を境に位置をワープさせてるんじゃないか。パックマンのワープトンネルみたいなもんだろ

62 :名前は開発中のものです。:2018/06/22(金) 12:02:49.57 ID:zPLeIsN1.net
興味本位で聞いてる奴しか居ないからな

63 :名前は開発中のものです。:2018/06/22(金) 16:32:16.79 ID:WMRHtb3Q.net
>>61
3Dで考えるとヤバイだろ?
ライティングの影響とかどうなってるんだよ

64 :名前は開発中のものです。:2018/06/22(金) 16:41:00.33 ID:2vv2cu1V.net
そうなんだよね。
あっちのスレの質問もなんだが、いまさら「ファミコンでどう実装してるか」なんて聞いてどうすんだ。

飛び出せ大作戦の床?3Dポリゴン描画すればいいじゃん。
スーパーマリオのブロック?全部スプライト(2Dポリゴン描画)でいいでしょ。
(まぁインスタンシングとか考える必要あるかもだけど)

本当に作りたい人なら、質問しないで見たまま実装すれば終わる話だ。
(昔のハードの制約の中でどう実装するか考えるのが楽しいというのは認めるw)

65 :名前は開発中のものです。:2018/06/22(金) 18:10:12.47 ID:ANGPpuI8.net
>>63
つまり穴が発生している壁が斜めなのに、そこにビルボード状に穴の向こうのテクスチャを貼り付けるのが不可能だってこと?
なんらかのポストエフェクトで引き伸ばしたりしてるんじゃないかな

それとも、穴の向こう側の光景のテクスチャは壁テクスチャとは別のビルボードで、深度テストとαテストでくり抜いてるんかな

(今更なんだが)俺は実装したことがないから、俺の書き込みは礼には及ばねえよw

66 :名前は開発中のものです。:2018/06/22(金) 18:16:11.13 ID:ANGPpuI8.net
ああ、確かに光源処理はどうなってるんだろ
それは気付かなかった
穴のこちらの光源が、穴の向こうに届いてるんかな

67 :名前は開発中のものです。:2018/06/22(金) 18:40:28.96 ID:ANGPpuI8.net
ポータルで
穴の向こう側の光源の影響で、アナの向こう側のメッシュモデルにおいて、穴のこちら側に鏡面反射効果が出てるってのは、
まあ無理なく実現できるんじゃね


穴、アナとかいうとムラムラしちまうぜ


穴子丼食いてえ

68 :名前は開発中のものです。:2018/06/23(土) 10:08:27.07 ID:535B+Arc.net
>>65
壁の穴は、ビルボード(=視点に正対するポリゴン)
じゃなく、壁に沿って斜めに描画しているんじゃない?

穴に貼り付けるテクスチャのレンダリング時の
Projection行列を、なんか上手く設定してると推測。曖昧すぎすまんw
(Projection行列で投影されるスクリーンを
壁に合わせて傾ける感じ?)

俺は昼飯はコロッケにしよう。

69 :名前は開発中のものです。:2018/06/23(土) 17:06:12.99 ID:kOJXbxvz.net
>>68
サンクス
なるほどプロジェクション行列を調整して斜めテクスチャに投影すればいいんだ
ちょっと調べたけど斜投影(Oblique projection)というのか
ビルボード状スクリーンへの投影結果の内の中心から外れた隅っこの方の一部を切り出す感じか
たしかに画面の隅っこのレンダリングって不自然に引き伸ばされることがあるな
https://qiita.com/yuji_yasuhara/items/98e6bd84b82e666496ce
自然な感じに見えるようにするには、慎重に調整する必要がありそうで大変そうだ

70 :名前は開発中のものです。:2018/06/26(火) 02:31:18.18 ID:d0rsFYq9.net
>>3
 なるほど、そんな方法もあるのか。私は、
a=(a<10)?(a+1):0;
・・・って書いてる。Cだけど。

71 :名前は開発中のものです。:2018/06/26(火) 10:01:25.64 ID:CQ8pmEPX.net
>>1
二番煎じだとしても発想はわりと良いスレだと思う
板が過疎り過ぎだからがんばってくれ

72 :名前は開発中のものです。:2018/07/01(日) 16:57:04.68 ID:bbXDJrOd.net
>いまさら「ファミコンでどう実装してるか」なんて聞いてどうすんだ

そういうスレだとおもってたけど違うのか?
どういうアルゴリズムで作ってたか知ることでプログラムスキル上がるだろ

73 :名前は開発中のものです。:2018/07/01(日) 20:09:09.79 ID:JwO+Ad3Y.net
ないない

74 :名前は開発中のものです。:2018/07/14(土) 23:02:27.98 ID:trAsPRCC.net
>>70
それIF文やんけw

75 :名前は開発中のものです。:2018/07/15(日) 00:05:02.97 ID:+fIs9TbR.net
>>74
三項演算子

76 :名前は開発中のものです。:2018/07/15(日) 02:26:33.71 ID:7ZKErhFA.net
>>75
いや、だからIFだっちゅうの!www

77 :名前は開発中のものです。:2018/07/16(月) 21:35:04.95 ID:UFGOKtLD.net
>>76
んんー、10未満であることを判定して実行してるから、確かにIF文であることもないのだけど・・・普通、IF文とは区別する。
だってそうしないとfor文もwhile文もIF文ってことになっちゃうじゃん?
>>3を忠実にCで書き表せば、
a++;a=a%10;
って表現にした方が正しいというのなら、その通り。

78 :名前は開発中のものです。:2018/07/17(火) 10:01:34.15 ID:6120ASjx.net
>>77
論点がずれている。
なんで、>>3が意味あるのか考えろ
なんでIF文だとツッコミいれたか考えろ

79 :名前は開発中のものです。:2018/07/17(火) 10:29:18.95 ID:Ug1hV4Os.net
処理というよりは、どちらかというと作業の段取りについてなんだが、

スターオーシャンセカンドストーリーやテイルズ オブ デスティニー2の難易度設定は、どうやったら実現可能なんだろう
あれらのゲームはRPGなのに、戦闘はリアルタイム性が強いアクションゲームなので、バランス調整結果の確認の手間は大変だと思う
にもかかわらず、最初に選べる難易度によって敵の強さが変わってくる。よく検証してないんだが、攻撃パターンも変わってくるんだろうか
敵キャラのパラメータを設定する作業だけでも大変だと思うが、難易度に応じて単純に何倍とかにしているだけなだろうか
しかし関門を突破する為のプレイヤーのレベルが足りないが、安全に稼げる経験地が少ない状況に陥り、ゲーム進行が滞る可能性もあるだろうし
どういう体制で、どういう段取りで難易度設定作業を行い、また遊べるかどうかの確認をしているんだろう
人海戦術頼みななんだろうか

80 :名前は開発中のものです。:2018/07/24(火) 10:41:53.69 ID:WoBX4Imx.net
>>78

>>3配列の添字ループはmodだよね(y=x[++a%10])
>>70俺は三項演算子だな(y=x[++a>=10?0:a])
>>74それif(三項演算子)やんけ

何度考えても、74のツッコミの意図がわからん
(プリインクリメントが気持ち悪いけど気にするな)

81 :名前は開発中のものです。:2018/07/24(火) 15:12:15.44 ID:4va1KyIz.net
ここのレベル低すぎるだろw

82 :名前は開発中のものです。:2018/07/24(火) 18:48:14.58 ID:MVB6I5Mj.net
超初心者の俺には話題がハイレベルすぎて
まったく意味がわからんぜ・・・

83 :ネットスライム :2018/07/26(木) 09:32:55.08 ID:SQ93XVQB.net
ちょっと聞きたい。snesのロックマンのデータのパスワードと記録方法ってどうなってるの?ランダムで敵を動かしてると配置までランダムになっちゃう

84 :名前は開発中のものです。:2018/07/26(木) 10:45:40.88 ID:J+UoVDTZ.net
>>83
見てないからわからんけど、ランダム使ってるなら単にSEEDを記録してるんじゃないの?

85 :名前は開発中のものです。:2018/07/26(木) 11:57:18.18 ID:sbebnT0N.net
>>83
せめて、パスワードを入力した後にどんな状態になるのかわからないと、仮説すら立てられないぜw
パスワードは、敵の座標を格納できるほど長くないってことでいいんだよな?

86 :名前は開発中のものです。:2018/07/26(木) 18:16:59.44 ID:gq+4QXyT.net
だんまりワラタ

87 :名前は開発中のものです。:2018/07/26(木) 18:48:53.10 ID:o5WdqYqx.net
>>83
どんぴしゃでそれを画像つきでわかりやすく解説してるサイト昔あったんだが今ぐぐったら消えてたわ
英語サイトならあった
https://gamefaqs.gamespot.com/pc/562670-mega-man-x/faqs/52749

88 :ネットスライム :2018/07/26(木) 21:30:09.39 ID:SQ93XVQB.net
すまんな外出してた

>>87
サンクス。ちんポジで長ったらしくやってるのか・・・こりゃ自動セーブが捗りますわw

89 :名前は開発中のものです。:2018/08/06(月) 21:50:34.55 ID:PE4Hke8j.net
total warのような大量のオブジェクトがかなりリアルに描写されてるようなやつって、どこをどうやって負荷を軽減してるんですかね?
animationや兵士の隊列の処理やら負荷すごそうなんだけど

https://www.youtube.com/watch?v=KUWJwh5yulo

90 :1:2018/08/11(土) 02:07:42.72 ID:E001RheI.net
自分も戦略戦術系シミュレーション作りを志向してますので、考えてますが。
今のところ考えてるのは、
・拡大描写時→画面に映る人の数は少ない→画面から外れる人の描画処理はカット(戦闘によるダメージ計算や座標移動計算のみする)
・縮小して広い範囲を描写→個々の物体が小さくなるので、物体の画像(3Dモデルなども)は低容量のものに差し替えて描画する。
基本3D空間では遠くにあるものは低容量画像を使えばイイのかな、と思ってます。

言うのは簡単だけど、これって、拡大時、縮小時、中間時と、同じキャラを3種類用意しないといけないってことですね。3倍面倒だ〜

隊列とかについては、、、なんだろ、そんなに大変ですかね。
一人一人に、中心となる人との相対座標持たせて、戦闘以外の時、隊列に戻ろうとする時その座標を目指させればいいだけ?
その際、倒されて隊列に穴が空いた箇所があれば、他で補う処理を噛ませる。
リーダーと部隊全員だと、部隊員数が増えた時アレなので、サブリーダー、場合にとってはサブサブリーダーを階層的に追加できるようにして、リーダー、サブ、隊員と、上位者との相対座標を持たせれば隊列はそれっぽく見えませんかね。

処理の軽減、高速化はうまくできると楽しいですよね。
では、長文失礼しました。

91 :名前は開発中のものです。:2018/08/11(土) 08:24:44.47 ID:X5vo7wfx.net
>>89
俺はunityしか知らんから、その目線でしか答えられんが

まず上からの目線だと錐台のカリングと言うのが行われる。
これによって画面外の個別なオブジェクトは描画されない。地形も適度に切っておけば、この錐台のカリングにより思ったよりも頂点数を抑えられている。
一番不味いのは、錐台に多くオブジェクトが入る可能性がある、地平線が見えてる時。
今回のようなフィールドはこの時の事だけを考えるのが良い。
次点で重いのはオブジェクト描画。更に遠景になる事による遠くのオブジェクト描画の頂点数だ。
これを軽減するには、遠景時に自動で頂点数が減るテッセレーションがあるが負荷を考えたり、負荷をCPU側に持って行く事を考えると、現実的にはlodと言う選択になる。
次に考えるのは、アニメーションだね。
これがまた重い。何が重いかと言うと、スキンメッシュやアニメーション間のモーフィング技術が重くなってくる。
これの打開策として昨今着目されてるのが、頂点アニメーション。
つまり、アニメーションは伸張自在なスキンメッシュを使わずにメッシュの動きを焼き付けるんだね。
また、ブレンドを諦めればアニメーションをコントロールするアニメーターも消せる。
彼らの技術を複合的に使う事で、数百オブジェクトを高FPSで動かす。何て事も、可能になってくる

92 :名前は開発中のものです。:2018/08/13(月) 03:20:39.93 ID:KKp5w0E/.net
potalの仕組みは実際にpotal買ってクリアしてみ

製作者の解説が聞けるぜ

93 :1:2018/08/21(火) 17:18:06.27 ID:P+ykmxBw.net
自前でゲーム作ってるんですが最近のゲームではほぼ必須の、チュートリアルで、
「○○の練習だやってみよう!」このボタンだけ押す、次はこのボタン、次は、、、というのはどう考えれば良いのでしょう。

単純に、矢印やそのボタン辺りだけ明るく周りを暗くして、他の操作は無反応にするってだけでもいけそうですけど。。。

94 :名前は開発中のものです。:2018/08/21(火) 18:15:42.79 ID:Q5/9s8nZ.net
それでもいい
深く考える必要はない
チュートリアル用の入力処理通りの一本道しか受け付けないんだし
一度しか使われないんだから、メインルーチンいじらずに
追加プログラムで乗っ取りかければよい

95 :1:2018/08/22(水) 08:11:27.57 ID:T/cR3DQo.net
>>94
レスありがとうございます。
作る前から難しそうって考えちゃうんですよね。実際作り始めるとそれほどでもない、ということ多々あるのに。
悪い癖だ。作り始めて考える、なんてのも導入しなきゃですね。
よーし、やるぞー、おー。

96 :名前は開発中のものです。:2018/08/22(水) 10:04:29.16 ID:+07F0xQS.net
つーかシナリオの第1章第2章とか
どうやって実装するつもり?それと同じだぞチュートリアルも

97 :1:2018/08/22(水) 22:17:40.69 ID:T/cR3DQo.net
>>96
ごめんなさい。章があるゲームではないもので。

98 :名前は開発中のものです。:2018/08/25(土) 12:26:25.73 ID:MKfcSVnL.net
ドラクエなどゲーム中の文字が1つづつ順番に表示されていくメッセージ方法はどうやるのでしょうか?

99 :名前は開発中のものです。:2018/08/25(土) 12:51:01.09 ID:OvQHBAkb.net
文字を1つずつ表示していくのです

100 :名前は開発中のものです。:2018/08/25(土) 16:00:26.64 ID:0BXhQFwr.net
文字じゃないけど俺も気になる
タイマーでも使うのかな
イベントドリブンなプログラムって面倒だ

101 :名前は開発中のものです。:2018/08/25(土) 16:16:04.68 ID:CuEuXqBV.net
文章データの〇番目を表示させるだけだろ
タイマー時間後〇をインクリさせて呼ぶだけ

102 :名前は開発中のものです。:2018/08/27(月) 19:26:58.08 ID:W/pOawXb.net
ゲームだったら何かしらのメインタイマーは動かしてるだろうから、
単純に文字列を配列に入れて1文字ずつ取り出せばいい

順番に配列の要素を取り出す命令があるだろうし、なくてもindex番号の変数用意してインクリメントすればいい。

このスレだとcっぽい動作になるからかわからないけど、昔言ってたけど今はほとんど使わない用語使ってる人多いね。

ゲームもオブジェクト指向で書いた方が楽だよ。

103 :名前は開発中のものです。:2018/08/27(月) 23:52:20.15 ID:7FICON83.net
質問者さんは死んだんかな

104 :名前は開発中のものです。:2018/08/29(水) 12:22:23.14 ID:g7vh8DKh.net
開発が始まって忙しいと言いつつも
連投までして答えてくれるのにね

105 :名前は開発中のものです。:2018/08/30(木) 10:18:12.22 ID:EuvN38El.net
最近のゲームって海の波とかの表現凄いけど、あれもポリゴン処理なのかな?
まぁそれ専用の商業ライブラリとかありそうだけど、船が白波立てたりとか、設定した水面に物体が干渉するのとか設定出来るんかね

106 :名前は開発中のものです。:2018/08/30(木) 13:26:59.90 ID:8CC7+Iyv.net
水面や波はシェーダで
しぶきはパーティクルが基本やね

107 :名前は開発中のものです。:2018/08/30(木) 14:53:31.11 ID:58pnB0BU.net
下の毛の処理ってどーやってる?剃ったらチクチクするんだよなぁ

108 :名前は開発中のものです。:2018/08/30(木) 15:04:07.12 ID:q8csUN/f.net
そこもシェーダで

109 :名前は開発中のものです。:2018/08/30(木) 15:12:33.93 ID:8CC7+Iyv.net
カリングで

110 :名前は開発中のものです。:2018/09/03(月) 14:40:51.05 ID:OhvFcOuP.net
>>105
>海の波とかの表現
荒いのはジオメトリレベルで表現してる
(ちょっと古いけど)2Dの高低地図の計算結果を元にジオメトリをいじるやり方もある
https://news.mynavi.jp/article/graphics-56/

111 :名前は開発中のものです。:2018/09/14(金) 22:16:00.06 ID:Rat/lDaG.net
シェーバー使えよ

112 :名前は開発中のものです。:2018/09/15(土) 13:26:02.93 ID:1xVzdLHU.net
お気に入りはフィリップスですね

113 :名前は開発中のものです。:2018/09/17(月) 07:46:18.41 ID:11fnJD9C.net
>>3
亀で申し訳ないが、n がある程度自由に決められる数なら、2^n の数にすれば
AND でマスクするだけで済む。割り算って重たいからね。
経験上どうしても 2^n 以外にしないといけない場合ってめったにない。

114 :名前は開発中のものです。:2018/10/27(土) 18:45:13.86 ID:OANpL5O5.net
【本家が完走したけど、このスレってどーなってんの?】

115 :名前は開発中のものです。:2018/12/27(木) 08:42:24.44 ID:vkWIuT25.net
c#触り始めてるんだけど、明示的な型の定義とかナントカがめんどすぎる。
とりあえず何でも入る型とかってないのか。
VBでいうobjectとかvariantとか。

116 :名前は開発中のものです。:2018/12/27(木) 08:44:15.16 ID:vkWIuT25.net
>>113
それ知りたいです。
なんてキーワードで検索すれば良いですか?
割り算の高速化、とかかな。

117 :名前は開発中のものです。:2018/12/27(木) 09:53:02.20 ID:DqRp1IMl.net
>>115
void

118 :名前は開発中のものです。:2018/12/27(木) 10:22:43.87 ID:AhZXfowm.net
>>116
そのレスでほとんど語ってるが語ってる内容がわかんないってならビット演算子で検索するといいよ

119 :115:2018/12/30(日) 22:52:35.30 ID:qdLlihgJ.net
>>117
え、マジですか。空っぽを返すとしか認識してないのですが。

>>118
なんとなく分かりました。0101ニシン数を右にシフトすると基本半分になる奴ですね。ちょっと調べて割り算関係のところを改良するのは楽しそう。

120 :115:2018/12/30(日) 22:55:23.17 ID:qdLlihgJ.net
あ、間違った。AND関数でマスクというのは、ビット演算で、任意の箇所だけ残す的なやつか。
勉強してみます。ありがとうございます。

121 :名前は開発中のものです。:2019/01/17(木) 14:41:40.08 ID:7TWzM6ZF.net
>>119
c#のdynamic型。
ただし、動的型付けじゃないと困る場面でなければ使う必要ない。素直に型定義しとけ

122 :名前は開発中のものです。:2020/03/02(月) 11:38:25.33 ID:ioQXd+CC.net
>>119
まあ void じゃなくて void * だけどね
趙亀レス

123 :名前は開発中のものです。:2020/04/22(水) 22:22:24 ID:uQHhJAOe.net
ゲーム作りたいな、と軽い気持ちで調べて、このスレ読んでいきなり心折れそうなんやが

124 :1:2020/06/26(金) 09:24:36 ID:1Y6XlZbc.net
1です。

>>3についての>>70>>77の記述に対して、コメしようと思ったけどやめました。

3の式は5に発展して、送る数が複数でもよくなったり逆順でも大丈夫になって、0〜nを前後にループさせることができるようになったんですよね。

自分的には、74さんのツッコミの意図は、自分(1)はなるべく汎用的な数式で表わそうとしていたんですが、それに対し70,77さんが、書き方と処理の流れが分かってないと理解しづらい三項演算子や、Cでの書き方を記述したからではないのかなあ、と思いました。

125 :弟子:2020/06/29(月) 05:44:55.34 ID:dQV6Jn9N.net
主さんはそろそろユニティに移行したのかな?それともまだVBなのかな?

総レス数 125
41 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200