【プチコン4講座】多重スクロールに初チャレンジ:考察編
こんにちは。なおキーヌです。
ブログ毎日更新は266日目になります。
ミニゲーム講座、全体的には短いですが普通のゲームを作るのと労力が変わらないことに気付きました(笑)
箸休め記事としてレトロゲームによく組み込まれていた多重スクロールという概念をプチコン4で学んでみようと思います。
私は個人的にUnityでドット絵アクションゲーム(ゼルダ風のもの)を作っているのですが、
1つの演出として多重スクロールを取り入れてみたいのですが、いかんせん方法が分かりません。
プレイする側としては色んなゲームでみてきましたが、実際に作るとなると知識が皆無です。
調べれば沢山出てくると思うのですが、まずは自分の持っている考え方と知識で
どこまで実装できるのかチャレンジしてみようと思います。
多重スクロールってなんぞや?
多重スクロールとは奥行き感を出すために背景を分割して、
それぞれのスクロールスピードを変えて奥行き感を出す2Dゲームの手法です。
ハードの制約が多い時代は実装も大変だった
2Dゲームが主流だった時代(ファミコン~スーパーファミコン時代)では
この多重スクロールを使ったゲームは「なんかすげぇ!」って思わせる手法だったのですが、
ファミコンに至ってはハードの制約が強く、プログラミングテクニックが無いと実装が難しかったそうです。
私自身ファミコンのプログラミングをしたことがないので、
当時の性能では凄いことは頭では分かっているのですがいかんせん体感的には大変さが分かっていません。
今の時代ならハードの制約は気にせず実装可能!
そしてこのVR/AR時代、もうそんな制約を気にする必要もなくなったので、
とにかく実装方法さえ分かってしまえば2Dのゲームでも立体感を簡単に出せる手法として覚えておいて損はありません。
特にレトロ風のゲームを作るクリエイターにとっては必須のスキルではないでしょうか?
既に多重スクロールに関しては語りつくされているし様々な手法を公開されているとは思いますが、
まずは自分の持っている知識と能力だけで実装してみようと思います。
スキルを身に付けるには何事もチャレンジです!
どういったシーンで使われるの?
多重スクロールが使われるシーンと言えば、シューティングやスクロールタイプのアクションゲームでしょうか。
シューティングは基本的に常にスクロールしているので、
自機の近くにあるものほど早くスクロールし、地面等遠い場所はゆっくりスクロールするといった感じです。
横アクションゲームに関しては、列車ステージとかプレイヤーの意思に関係なく
ステージが動いているようなところでよく使われています。
多重スクロールは手前と奥を表現する手法なので、外系のステージに使いやすいですね。
外系のステージじゃなくても例えば空間の広い洞窟等でも使えますね。
いずれもそれぞれ別々の画像を動かしているという仕組みです。
どういう仕組みになっているのか技術的に見てみる
多重スクロールの基本的な仕組みに関しては、手前にあるものほどスクロールが早く
奥に行くほどスクロールが遅くなると先ほども言いました。
では実際に技術的にはどういう風にやっているのかというと、
単純にそれぞれの画像の座標の加算度を設定してやります。
そしてスクロールが発生した時に自分の持っている加算度を使って座標を変更すると、
それぞれの速度でスクロールしてくれるのでこれで多重スクロールの基本的な仕組みは完成です。
多重スクロールだけ見ると意外と単純なのですが、後はループをうまくつないだり周りとの整合性を取って
自然に見えるようにするのが恐らく大変なんだと思います。
その前にスクロールの仕組みについてしっかりと学ぶ必要がある気がしました。
プチコン4ではテキストスクリーンを使って実装
プチコン4ではマップ(背景)はテキストスクリーンという仕組みを使って表現するのが基本です。
テキストスクリーンは0~4枚使うことが出来るので、それぞれZ軸と高さを変更して
ずらして表示したり画像を縮小して遠くにあるように見せたり工夫を重ねて、
多重スクロールを実現していくのがセオリーかもしれません。
次回は実際にプチコンのテキストスクリーンを使って何回かに分けて多重スクロールを実装していこうと思います。
とりあえず使えるテキストスクリーンを全部使って実践しながら覚えてみましょう。
最初はプレイヤーを動かして背景をスクロールさせるところから始めて、
そこから多重スクロールを組み込んでいくという流れが一番記憶に残りやすいと思います。
もし多重スクロールなんて別にいいやって人はスクロールだけでもいいので覚えてもらうと、
今後のゲーム作りに活躍する技術だと思うのでしっかりと学んで行ってもらえると幸いです。