※ 注!
【 この日誌は筆者の個人的な感想です。 必ずしも事実であるとは限らないのでその旨ご了承ください 】
よろしいですか?
【 なぜ、町の中の移動スピードは速くできないのか? 】
ドラクエ10を遊んでいる冒険者なら、一度は思ったことがあるのではないでしょうか?
「 町の中をダッシュで移動したい! 」
と。
なぜドラゴンクエスト10では町の中でダッシュ移動できないのか?
今回の日誌は、その理由について僕が思っていることを書いていきます。
移動速度を速くできない理由は、
【 プレイヤーキャラの移動速度が速くなると、グラフィックの表示が間に合わなくなる 】
から。
毎日の日課でメギストリスの都を利用している冒険者は多いことと思います。
日替わり討伐を受けやすく、すぐ近くに酒場もあるので転職にも便利という五大陸でも屈指の好条件ですからね。
さて、そんな日課をこなしている中でこういう場面を見たことはありませんか?
自分が遠いところにいる時に誰かが酒場の扉を開けると、酒場の中が空っぽ
扉が開いているまま近付くと、酒場の中のオブジェクトが表示される。
Q : なぜ、こんなことが起こるのか?
A : 室内のグラフィックは、見えない時は極力非表示にしているから。
たくさんのグラフィックを表示するためにはそれだけの 「 メモリ 」 が必要になります。
しかし使えるメモリの量には限りがあるので、表示する必要のないグラフィック ( 例えば扉が閉まっていて中が見えない室内のグラフィック ) などは非表示にしてメモリを節約しているのです。
この室内のグラフィックは、プレイヤーキャラがその部屋や建物の扉にある程度近付くと徐々に表示されます。
ドラクエ10の開発チームではこのような 「 何らかの処理が実行されるきっかけとなる指定範囲 」 のことを 「 トリガボックス 」 と呼んでおり、プレイヤーキャラがトリガボックスに到達すると室内のグラフィックの読み込みが実行される、というわけですね。
Q : プレイヤーキャラの移動速度が速くなるとどうなるのか?
A : グラフィックの読み込みが間に合わなくなる
ドラクエ10の2代目プロデューサーであり初代テクニカルディレクターの青山公士さんの著書 「 ドラゴンクエスXを支える技術(技術評論社) 」 には以下のように記されています。
『 室内グラフィックリソースごとに、プレイヤーキャラクターの移動速度と室内グラフィックリソースの読み込み時間から逆算して求められた位置に、動的読み込み用トリガボックスを配置しています。このしくみにより、プレイヤーキャラクターがその室内に入るための扉に近付いたころには読み込みが完了しています 』
つまり 「 プレイヤーキャラクターの移動速度が速くなると、現在設定されているトリガボックスの位置ではグラフィックの読み込みが間に合わなくなる 」 と思うのです。
Q : グラフィックの読み込みが間に合わなくなるとどうなるのか?
A : プレイヤーキャラが背景をすり抜けるなどの不具合が起こる。
プレイヤーキャラの移動速度が今よりも大幅に速くなると、グラフィックの読み込みが間に合わなくなる可能性があります。
そうなると、本来は壁や柱、階段が表示されるはずなのにその表示が間に合わなくなり、プレイヤーキャラがそれらの背景をすり抜けるという不具合が起こる恐れがあるのです。
プレイヤーキャラが背景をすり抜けると、ストーリーやクエストに関係するトリガボックスが正常に作動せず、最悪の場合ストーリーを進められなくなるかもしれません。
Q : 他のMMORPGではダッシュ移動ができるのになぜドラクエ10では出来ないの?
A : Wiiで遊べることを前提として設計しているから
ドラクエ10は2012年8月にWiiでのサービスを開始しました。
当時、すでにWiiは発売から6年が経過しておりその性能は最先端とは言いがたいゲーム機でした。
様々な制約がある中で、Wiiで遊べるMMORPGを開発するためにはやむを得ず切り捨てた機能もあったことでしょう。
現在、ドラクエ10を遊べるゲーム機の性能は向上していますが、今からダッシュ機能を実装しようとすると、根底から設計を見直す必要があり極めて困難なのだと思います。
以上が 「 なぜ、町の中の移動スピードは速くできないのか? 」 という疑問に対する僕なりの考えです。
読んでくださってありがとうございました。