1:名無しさん必死だな 2021/03/21(日)14:05:59.68 ID: +2JGoc1z0.net
ほとんどのゲームクリエイターにとって「ドア」をゲームに実装するのは悩みの種である。
dokodemo-door.png
海外の複数のゲームクリエイターが、「ドア」をゲームに実装することがいかに複雑で難しく、開発者を悩ませるのかについて解説しているので簡単に紹介する。ドアが起こす問題>>>ドアがある恩恵
ドアがあることでゲームのロジックが指数関数的に複雑になる可能性がある
2人のキャラクターが同時にドアを開けようとしたりすると、タイミングの問題が起こる
ドアにプレイヤーやNPCがはまってしまう
ドアが途中でつっかえて動かなくなる可能性がある
ドアの前に置かれたオブジェクトの処理
ドアが閉まってプレイヤーが閉じ込められる事故が起こる
プレイヤーキャラクターがドアを通過した後にドアが閉まり、後ろからついてきたNPCの道が塞がれる
ドアは経路探索を邪魔する
問題を解決するために別のコードを書く必要がある
FPSでは押し戸ではなく、スライド式のドアが多用されるのはそのためNPCが目的地へ移動するという仕組みがあった際、ドアがなければ単に移動して終わりだが、ドアが移動経路上にあると、NPCがドアと相互作用する必要が出てくる。ドアがどちらの方向に開くのか、NPCがドアにどれだけ近づいているのか等、様々な制御が必要になる
ドアを開ける動きそのものが厄介
ドアノブに手をかけてドアを開ける動きはもどかしく感じられ、さらにそのアニメーションを準備しておく必要がある
ドアノブがついているようなドアが自動で開くようにすると、今度は没入感を損なう
ドアを上手く実装したとしても、プレイヤーはドアが存在していることを気にしないのが普通。ドアの存在が感謝されることは稀
ゲーム「Control」では武器や能力のシステムよりもドアのシステムを開発することに時間がかかった
「ウィッチャー3」ではボスとの戦闘中はロックされ、戦闘終了時にロックが解除されるドアがあるが、開発している時にドアが開かない12通りのシナリオ(バグ)が発見された。解決策は鍵がかかるようなドアを実装しない事だった
昔のアサシンクリードではドアがまるでその世界に存在しないかのようにすることで、ドアの問題を回避しているドアを実装する労力と難易度が尋常でないほど高い一方で、ドアがあることによる恩恵はそれほど大きくないため、ゲーム開発者はドアを実装することを嫌うことが多いようだ。
AAAゲームにドアを実装する苦労
The Last of Us Part 2にはドアが実装されており、ステルス要素があるゲームでは隠れることに使ったり、敵の行動を遅らせる事に役立つ
しかし、The Last of Us Part 2のようなアニメーションが洗練されたゲームでは、ドアノブを回してドアを押して開ける動作が必要になる
走りながらドアを開けようとするとどうなるのか、開けたドアはその後どうなるのかといった課題が出てくる
開発チームはプレイヤーが手動でドアを開けたり閉めたりできる複数のプロトタイプを作ったがどれも駄目だった
敵から逃げてる途中にドアを開けるアニメーションで台無しにしたくなかった
The Last of Us Part 2では最終的に、ドアは戦闘中にはゆっくり自動で閉まるようにし、非戦闘中には開いたままにした
非戦闘時にどの道を通って来たのかをドアを見て判断できる
開発チームはプレイヤーがドアを押し開けるだけでなく、プレイヤーが扉に押されるような物理演算のオブジェクトを新たに開発しなければならなかった
The Last of Us Part 2のロープを開発した天才的なプログラマーがドアの物理演算も作った
ドアノブに近づく動作をレイヤー化するシステムで忠実度とレスポンスのバランスを取った
結果、40種類以上のドアをプレイヤーが苦痛を感じない形で実装することに成功した3Dゲームにドアがどのように実装されているのかを意識的に見てみると、開発者の努力や才能に気づくことができるだろう。
ソース: PC Gamer
4:名無しさん必死だな 2021/03/21(日)14:09:15.10 ID: qjp9ngND0.net
54:名無しさん必死だな 2021/03/21(日)15:08:51.48 ID: UP0AE4RJ0.net
あのゲームシステムだとほとんど1の問題でないじゃんw
リアルタイムでNPCやクリーチャーがドアに干渉したり
ドア越しに移動経路計算やNPCの移動があるゲームじゃないと簡単に実装できるじゃん
日本のゲームってオブジェクト動かせないし落としてもすぐ消えるからドアに挟まったりとかしねーしw
6:名無しさん必死だな 2021/03/21(日)14:11:22.88 ID: M0Wzpcbr0.net
行動範囲をコントロールしたいから
108:名無しさん必死だな 2021/03/22(月)01:15:24.47 ID: bWAnGgQiM.net
あれはこの説明とは別物やん
11:名無しさん必死だな 2021/03/21(日)14:14:27.16 ID: SJoar6O90.net
26:名無しさん必死だな 2021/03/21(日)14:24:31.78 ID: gXD2fpLOa.net
これな
開発に金と時間かかったから成果を独占したいってのは分かるけど成果を共有しないのにゲームに求められるクオリティはどんどん上がってるからゲーム開発にかかる金がどんどん大きくなってる
83:名無しさん必死だな 2021/03/21(日)16:52:03.97 ID: czI/bSG00.net
ゲームにおいて汎用的なロジックは存在しない
50:名無しさん必死だな 2021/03/21(日)15:00:41.19 ID: Kor1CPeg0.net
再発明ってほど難しくないものだし
仕様の違いを吸収できる設計は無駄に重くなるし
いろいろある
20:名無しさん必死だな 2021/03/21(日)14:18:06.19 ID: SjC/TGo00.net
>>1
なるほど
だから技術のないスクエニのFF15はこんなことになったんだなw
119:名無しさん必死だな 2021/03/22(月)08:31:34.44 ID: I3YOCLsj0.net
イカしたやつらが箱乗りしてるだけだぞ
30:名無しさん必死だな 2021/03/21(日)14:27:40.36 ID: DdHJJDj00.net
92:名無しさん必死だな 2021/03/21(日)18:42:56.84 ID: +J9dtRJ10.net
これは何が面白いの?
34:名無しさん必死だな 2021/03/21(日)14:30:57.14 ID: HDFHnO2g0.net
36:名無しさん必死だな 2021/03/21(日)14:38:59.00 ID: u2vAKs2Z0.net
確かに車輪は大発明だは
38:名無しさん必死だな 2021/03/21(日)14:42:46.15 ID: 9U77HErMM.net
スマホガチャゲーとかその最たるもの
42:名無しさん必死だな 2021/03/21(日)14:51:25.90 ID: KpEoJ+d20.net
43:名無しさん必死だな 2021/03/21(日)14:53:41.01 ID: wUK7+a1j0.net
初代バイオが俺のプレステじゃ縦に置かないと隣の部屋に行くのに1分ぐらいかかってたわ
45:名無しさん必死だな 2021/03/21(日)14:54:09.54 ID: Kor1CPeg0.net
71:名無しさん必死だな 2021/03/21(日)16:16:34.79 ID: h6bRX+lL0.net
1番頭悪そう
136:名無しさん必死だな 2021/03/22(月)10:03:56.88 ID: aDzaRy/70.net
しゃべるドアが必要になって困るパターンじゃん
79:名無しさん必死だな 2021/03/21(日)16:42:18.68 ID: ZH6sJg3M0.net
部屋のローディングを誤魔化す為のドア演出
93:名無しさん必死だな 2021/03/21(日)19:11:28.12 ID: pyEvudtE0.net
ローディングでドアの先にゾンビが居るのバレるけどね
91:名無しさん必死だな 2021/03/21(日)18:07:39.49 ID: 6agrkZBY0.net
FF6にもドアのバグがあるしな
アウザーの屋敷地下にある3枚並んだドアは、一定時間(約2.5秒)で自動的に開閉を繰り返す。正解の扉のみが先へと通じており、ハズレの扉に入ると1つ前のフロアに戻されてしまう。
このドアの開閉に用いられているのが「ドアタイマー」である。
ドアタイマーは並列する3個のタイマーから構成されている。セットされた1つのタイマーが2.5秒で作動し、対応するドアを開閉した上で次のタイマーをセットするという動作を繰り返している。
重要なポイントは、この「ドアを開閉する」という処理の方法。実は、閉まっているドアの前には通行を妨げるために透明なNPCが配置されており、ドアが開くと透明なNPCが消去される仕組みになっているのである。
3枚のドアの前にはそれぞれ$12、$13、$14のIDを持つNPCが透明な状態で配置されており、これらがタイマーの作動に応じて消失と出現を行うことでドアの開閉を表現しているわけである。(ドアのマップチップの消去と描画はこれと別に処理されている)
なお、アウザーの屋敷をクリアしてリルムを再加入させると、ドアタイマーは機能を停止する。
この$12〜$14のIDを持つNPCは、アウザーの屋敷以外にもさまざまな場所に存在している。
従って、もしドアタイマーをアウザーの屋敷以外の場所で作動させることができるなら、その場所ごとに特定のNPCの召喚・抹消が可能になる。
129:名無しさん必死だな 2021/03/22(月)09:47:12.18 ID: 49a3EUrcM.net
それはタイマーのバグっしょ
最初はシドタイマーから検証始まったバグだし
103:名無しさん必死だな 2021/03/21(日)20:26:30.00 ID: YqSZNoN60.net
ドアの不具合>>>>ドアの恩恵
何気ないけど目から鱗
109:名無しさん必死だな 2021/03/22(月)01:16:53.66 ID: bWAnGgQiM.net
そうそう
実装は簡単なんだが問題なくするためのテストとか見た目のすり合わせとか
めんどくさい割に恩恵ないんだよな
118:名無しさん必死だな 2021/03/22(月)08:25:41.52 ID: At285oKp0.net
そしてドアノブだけが浮いている状態になる
120:名無しさん必死だな 2021/03/22(月)08:34:48.25 ID: Lu/L6ObW0.net
124:名無しさん必死だな 2021/03/22(月)09:14:55.93 ID: u4llrOe6M.net
ゼルダ含めて画面が箱になってるのはまだいいんだよ
今のゲームは見た目も無駄にコストかかるしアニメとかも同じで昔は雑で済んだので動きのあるシーンできたが
今はクオリティ求められるので結果として動きの少ない描く増えてるし
122:名無しさん必死だな 2021/03/22(月)08:58:54.36 ID: XuNUEsXi0.net