開発日誌

テクニック

[ テクニック ] マップ講座(4) 自然地形の鉄則(1) 直線を避ける

2020-08-15 15:06:08

マップ制作講座の第4回。

今回は特に、洞窟や川など自然の地形をキレイに作るための鉄則を解説します。

その鉄則とは、以下の3つです。

  • 直線をなるべく避ける
  • 直角をなるべく避ける
  • 対称をなるべく避ける

もちろんRPGツクールはマス目が基本なので、よほど凝らない限りは直線や直角ができるのですが、そういうことではありません。あくまでデフォルトのマス目タイルの範囲で、自然なマップを作ることも目的としていますので、ご注意を。

今回はそのうちの1番目。直線をなるべく避けるについて解説します。

まず、自然の地形はあまり一直線を形作ることがありません。形成時の力の作用や風化・浸食などによって、ランダムな曲線を描くのが普通です。

マップを作る際も、そのことを念頭に置いて描くと、自然な地形が描けます。

試しに、川を横に引いてみましょう。まずは一直線に引いてみます。

まったく自然ではありませんね。人工的に引いた用水路のようです。

これを自然な川に見せるためには、いい感じに蛇行させてあげればよいのですが、そのいい感じってのをどうすればいいんだよって話ですね。

まずは、フリーハンドで川を引きます。

なるべく一直線にならないよう、波線を描くように引くといいです。スケールを1/4(25%)ぐらいに縮小すれば引きやすいと思います。まずは深く考えずに引きましょう。途中で川が切れたり太くなったりするのは、気にしなくて構いません。

だいたいのラインが引けたら、途中で切れたり太くなったりしている部分を修正します。

これで十分、自然な川になりました。

しかし、欲を言うともうひとつ。波線の下端と上端が、一直線上に並んでしまっています。

こういう揃っているラインが見えると自然な感じが薄れます。より自然な川を目指すなら、できるだけ揃わないようにしましょう。

というわけで、右側の下端と上端を1マスずつ下にずらしてみました。

これでだいぶ自然に蛇行する川ができました。

ポイントは、まずフリーハンドで引くことです。こうすれば直線を避けることは難しくありません。最初にフリーハンドで大体の形を引いて、途切れたり重なったりした部分を修正すれば、それだけでもOKです。

それに加えて、端のラインが揃わないように気を付けることがポイントです。隣のカーブと上下左右の端が揃わないように、ずらしてあげましょう。

今回は川で解説しましたが、森林や洞窟の壁などでも同じです。

鉄則を押さえて自然な地形を作っていってください!

[ 天下御免!からくり屋敷 ] [ テクニック ] [ 素材 ] お行儀良く寝ましょう

2020-08-09 22:48:30

和風マップチップの豪華なお布団って、横に2マス分ありますね。

ここに一人を寝かすと、布団の左右どちらかに寄ってしまって、見栄えが良くありません。

そんなにこだわらなくても、という気もしますが、シリアスなシーンでは、そういう突っ込み甲斐のある部分はできるだけ避けた方が無難です。

というわけで、ちゃんとお布団の真ん中で寝てくれるように直しました。

具体的にどうしたかと言うと、専用のキャラクターチップを作って対処しました。

専用キャラチップは、横幅が通常の2倍になっており、そのうち左右どちらかにキャラを寄せた形にしています。

キャラクターチップは置いたマスの下端中央が基準になるので、こうすれば布団の中央にキャラを寝かすことができます。

しかし、ここで問題がいくつか。

2マス分の布団のうち、イベントが設置されているのは左右どちらかだけになるので、このままだと話しかけたりした場合に片方でしかイベントが発生しませんし、反対側から話しかけようとすると顔の半分を踏んづけてしまうことになります。

というわけで、もう片方にも通行不可の空のイベントを設置して、同じイベントが発生するようにしました。これだとセルフスイッチとかは使えなくなるので、スイッチやコモンイベントを多用することになりますが。

これでちゃんと布団の中央で寝てくれるようになりましたが、今度は目が開いたままなのが気になってきました。

特に死に別れのシーンなどでは、「目を開けてくれ!」などの台詞も飛び出しているのに、キャラは目が開いてるじゃん、というのもオマヌケな感じです。これはキャラチップを加工して、閉じた目のキャラ画像にしました。この程度なら何とかできます。

さらに、フキダシアイコンは元のマスが基準になるので、このままだとずれて表示されてしまいます。

これはスクリプトを作って対処しました。相変わらずRPGツクールVX用ですが、スクリプトを公開します。

指定した番号の変数にX座標・Y座標の調整値を代入しておくと、その分だけフキダシアイコンがずれて表示されるようになります。X座標だけで十分でしたが、ついでなのでY座標も調整できるようにしました。表示後に変数の値を0にするのを、忘れないようにしてください。

質問やアドバイスなどはコメント欄まで、お気軽にどうぞ。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

簡易な実装なので、いくつか制約があります。

調整は同時に表示されているフキダシアイコン全てに適用されます。特定のキャラのフキダシアイコンのみを調整することはできません。また、調整値の変数はフキダシアイコンが消えるまで保持しておかないといけません。「フキダシアイコンの表示」コマンドの直後で調整値の変数を0に戻すと、調整値が反映されなくなってしまいます。必ずフキダシアイコンが消えるまで待ってから、調整値を戻しましょう。

うーん……。

最初はお布団の真ん中でお行儀良く寝かせたいだけだったのに、一つを直したことによって連鎖的に他の部分も直す必要が出てきてしまうという。まさに角を矯めて牛を殺す状態になるため、ある程度のところで割り切るのが必須だと思いました。

[ テクニック ] マップ講座(3) ダンジョンは先に動線を決める

2020-08-02 06:50:32

マップ制作講座の第3回。

今回はダンジョンの作り方です。

ダンジョン制作は苦手な方が多いようで、RPGツクールVXの頃からダンジョンの自動生成機能が備わっています。自動生成してから細かい部分を手動で調整するのが、よくあるダンジョン制作の方法かもしれませんが、今回はダンジョンをイチから作るコツを解説します。

ダンジョン作りの一番のポイントは、先に動線を決めることです。

大まかな手順としてはこんな感じ。

  1. マップのある程度の広さを決める
  2. スタート地点とゴール地点を決める
  3. スタートからゴールまでなるべく長い距離を通る正規ルートを決める
  4. 正規ルートに寄り道を追加する

以下、具体的に説明します。

まず始めに、マップのある程度の広さを決めましょう。

マップの広さは、最初はとりあえずで構いません。

計算尽くでやるならエンカウントの平均歩数と回数とで決めたりもしますが、そこまでしなくても、小さめのダンジョンか大きめのダンジョンかで、だいたい決めればOKです。正規ルートや寄り道ルートの動線を固めながら、後で徐々に調整していっても問題ありません。

ちなみに『天下御免!からくり屋敷』の各階層は、余白込みで91x75となっています。最初はもっと狭かったのですが、段階的に広くしていって今の大きさになりました。

次に、スタート&ゴール地点を決めます。

スタート地点はダンジョンの入口や、前の階からの階段の位置などです。ゴール地点は、ボスや目的の宝箱、もしくは出口や次の階への階段の位置などです。

『天下御免!からくり屋敷』の場合は、スタートは前の階の階段の位置で、ゴールが首領部屋となっています。首領部屋が次の階のスタート位置になるので、それを踏まえてゴール地点を決めている感じですね。だいたい、スタート地点の点対称の位置にゴールを置くことが多いですが、常に点対称だとダンジョンの構造がマンネリ化するので、適度に変えたりします。

また『天下御免!からくり屋敷』には階層を自由に行き来できる「エレベ板」があり、この位置は固定です。このような既に決まった構造物(吹き抜けとか)がある場合は、この時点でマップに組み入れておきましょう。

いよいよメイン作業。

スタート地点とゴール地点を結ぶ動線(正規ルート)を描きます。

スタートからゴールまで直線ではなく、マップ全体を迂回するように動線を引くと、効果的なダンジョンとなります。

全体を迂回すると言っても、あまり隙間なく動線を引いてしまうと、寄り道(宝箱や外れのルート)の余地がなくなってしまうので、ある程度は隙間を残しましょう。

『天下御免!からくり屋敷』の場合は、スタート地点から間もなく「エレベ板」に至り、しばらくして「からくり部屋」を通過し、しばらくすると「エレベ板」の近くを通過してショートカットの「かんぬき扉」があり、そこからさらに進んでゴールの「首領部屋」を配置しています。このように経由する施設が多い場合は、各施設の距離感を考慮する必要があるため少し頭を使いますが、通常のダンジョンであれば、スタートとゴールを結ぶだけで十分でしょう。

慣れていれば動線を引きながらマップを作ることも可能ですが、慣れないうちはまず紙などに書いてみるのがいいでしょう。

最後に、正規ルートの隙間に寄り道ルートを引いていきます。

寄り道ルートとは、外れのルートや宝箱などのルートです。

寄り道ルートは行き当たりばったりで作るよりも、あらかじめ宝箱をいくつ置くか決めた上で作っていくのがいいでしょう。ただ、実際のマップに組み込む際に、上手く寄り道ルートを作れないといったことも起こりうるので、宝箱の数はガチガチに決めるのではなく、5〜7個ぐらい、みたいに緩く決めておくのがコツです。

『天下御免!からくり屋敷』の場合は、1階層で小部屋が5つ、通常のつづら(宝箱)が8つと数を決めていたので、これに沿って寄り道ルートを作っています。実際にはマップを作る上でさらに隙間とかができてしまうことがあるので、そういう時は「小さな鈴」の置き場とかに活用しています。

また寄り道ルートは、短距離のものや長距離のもの、1つの寄り道ルートからさらに分岐するルートなど、いくつかバリエーションを設けるのがポイントです。

今回のマップ講座はここまで。

最終的なマップは右のようになりました。動線の細かい部分は、実際にマップを作りながら微調整しています。動線を引いてからここに至るまでは、まだいくつもポイントがありますが、それはまた次回以降で解説します。

いきなりダンジョンを作り始めるのではなくて、最初にしっかり正規ルートと寄り道ルートを決めましょう、というのが今回のポイントになります。

ダンジョンに限らずマップの制作方法は、人の数だけ流儀が存在すると思います。ですが、キレイなマップはたいてい行き当たりばったりではなく、動線がちゃんと考えられているはずです。

小さいマップならともかく、ある程度の大きさを持ったマップであれば、最初にしっかりと動線を引いてから作ると、キレイなマップができると思いますので、ぜひ試してみてください!

[ テクニック ] マップ講座(2) 狭く作る

2020-07-26 23:25:13

マップ制作講座の第2回ということで、やっていきたいと思います。

自分がマップを作る上で意識しているのは、広くしすぎない、狭く作るという点です。

例えば、道具屋の内装を作るとします。RPGツクールの仕様上、マップのサイズは最小が17x13です。すると左のように、そのサイズいっぱいに作ってしまいがちです。

▲ 17x13をフル利用

▲ 9x11の範囲に収めた

しかし左だと、テーブルの上の小物やカウンター後ろの棚が雑然としており、その割にはどことなくスカスカ感があります。かと言って、空いているスペースに物を置くと、さらにゴチャゴチャしてしまうこと間違いなしです。

一方の右。前回の「マップ講座1 プレイヤーは常に中央に」に従ってマップを作っており、マップ全体のサイズは23x17ですが、そのうち9x11の範囲に実質的な部分は収めています。テーブルや棚もシンプルにして、無駄なスペースをなくしています。道具屋の内装であれば、このくらいで十分でしょう。

マップをキレイに見せるコツは、なるべく無駄なスペースを作らないことです。

もとのマップサイズが広いと、どうしても無駄なスペースが生まれがちですし、それを埋めようと小物類を配置しても、整理されていない押し入れの中みたいに、ゴチャゴチャとした印象を与えてしまいます。移動距離も増えてしまいます。

ならば最初からマップサイズを最小限にしておけば、無駄なスペースも生まれず、小物類の配置も少なくて済み、移動距離も減らすことができます。

▲ 民家はたくさんあるが入れる家は1つもない

町などのマップも同じことです。

よく大都市を表現しようとして、広大なマップを作る人がいます。民家をいっぱい並べますが、そんなにたくさん家の中を用意できないので、中に入れる家はほんの一部で、あとは入口のない家だったり扉が閉まっていて入れない家だったりが並んでいたりします。

しかしこれだと、入れない家は装飾以上の意味を持ちませんし、入れる家はどこかを探しながらだだっ広い町を歩き回ることになってしまいます。

そもそも大都市を表現するのに、必ずしも広い敷地に家々が軒を連ねる必要はありません。ゲーム内に登場する他の町よりも一回り大きければ十分です。あとは大都市っぽい特徴的な建物――例えば豪華な宿屋や荘厳な教会、貴族のお屋敷などを置いておけば、十分に大都市を表現可能です。

「大都市なのに……家が5軒だけwww」といったツッコミは来るかもしれませんが、単なるツッコミなのであまり気にしなくて大丈夫です。逆にツッコミを気にして巨大な町を作ったら、今度は「広すぎて探索が大変」という具体的な不満が出てきてしまいます。

マップを作る際に、どうしてもスカスカ感やゴチャゴチャ感が出てしまうという人は、マップのサイズを一回り、二回り小さくしてみてはいかがでしょうか。

広いマップは、作るのも大変だし歩き回るのも大変だしで、良いことがありません。必要最低限の広さに抑えることが、キレイなマップ作りの第一歩だと思います。

[ テクニック ] マップ講座(1) プレイヤーは常に中央に

2020-07-25 09:29:38

昨日の宣言通り、自分が制作の上で意識していることや、応用できそうな技術について、少しずつ紹介していければと思います。

前作『小さな大冒険』の時は「マップがきれいだった」という反響を多くいただきました。自分でもマップ作りは楽しいし、それなりに自信もあります。

そこでまずはマップ作りのノウハウについて、何回かに分けて書いていこうと思います。RPGツクールでのマップ制作講座は他にもたくさんありますが、それらとはちょっと視点を変えたものにできるといいなと思っています。

さて、他のツクール製ゲームのマップと比べた時に、自分のゲームのマップの一番の特徴は、プレイヤーキャラクターが常に画面中央に表示されているという点ではないかと思います。

多くのゲームでは左のように、マップの端に来ると画面のスクロールが固定され、代わりにプレイヤーキャラクターが動くようになります。一方で私のゲームでは基本的に、端に来てもプレイヤーキャラクターが画面中央から動かないようにしています。

▲ マップの端に至るとその分プレイヤーキャラクターの位置がずれる

▲ マップの端に至ってもプレイヤーキャラクターの位置は常に画面中央

右はどのようにしているかというと、別に特別なことは何もなくて、単に通行可能な範囲に対して、上下に6マス、左右に8マス分、余白を設けているだけです。

初期の頃のドラクエをはじめ、当時のRPGはだいたいそんな感じだったので、これが普通だと思っていましたが、最近ではドラクエですら左のようになっているんですよね。

左の形式だと何が嫌かって、マップの端に至ると急にスクロールが固定されて戸惑う点です。プレイヤーキャラクターが画面中央から急に移動するので、視点を移動させないといけません。

また、場所移動の際にプレイヤーキャラクターを見失う恐れがあります。

左上の扉に入ったら、部屋の右下から開始、というようなケースはマップの位置関係上あり得ますが、次のマップがどこから始まるのか、初見のプレイヤーは分かりません。前マップの終了位置と次マップの開始位置が画面内で離れていると、プレイヤーキャラクターがどこに行ったのか、見失ってしまうかもしれません。

▲ マップの左上の入口に入ると、次のマップは右下から始まる。しかもプレイヤーキャラクターが壁の色と似ているため、分かりづらい。

その点、プレイヤーキャラクターが常に画面中央に固定であれば、どのようなマップの位置関係であっても、必ず画面中央にいるので見失うことはありません。

最後に、マップの端が見えると、興が削がれる点です。

町や室内であればまだしも、ダンジョンなどでマップの端が見えると、もうこの先には何もない、というのが明らかになってしまいます。以前プレイしたゲームで、フィールドマップなのにマップ端に到達した時は、冒険している感覚が一気に失われてしまいました。

謎解きの一種に、一見行き止まり or もう何もないように見えて、実は先に道が続いている、というものがあります。有名な例で言うと、ドラクエ3のランシールの神殿とかかな。自分のゲームでもよく採用しています。こういうのも、端が分かるタイプだと採用が難しいですよね。

逆に、プレイヤーキャラクターを常に画面中央に表示する場合のデメリットもあります。

一つは、マップ内で移動できる範囲を制限する必要がある点。

柵や壁などで囲めるのであれば難しくありませんが、草原や砂漠のようなマップでは、障害物を置いて移動可能な範囲を制限するのが難しいです。

よくあるのは、入口とか出口を設けるのではなくて、一定の範囲から外へ出るとフィールドマップに場所移動する方式ですが、スクリプトやプラグインなしで実装しようとすると、周囲全体に場所移動のイベントを敷き詰めるか、並列処理でプレイヤーの現在地を監視して一定の座標の時に場所移動させるか、いずれにしてもちょっと面倒くさいです。

もう一つのデメリットは、余白の部分もマップを作らないといけない点。

ダンジョンや屋内であれば余白部分は暗闇でもいいのですが、町マップなどの場合は余白部分もそれなりに作り込まないといけません。

昔のドラクエとかだと周囲は一面草原で済ませられていたりしましたが、それは解像度も粗くマップチップも限られていたから許されていた話で、今それをやったら手抜き感が半端ないです。なので、ゲーム上では全く意味のない部分にもかかわらず、ちゃんと作り込まないといけないという、やや不毛な作業が。

ただ、こういうところをちゃんと作り込んでいるか否かで、マップの見栄えは確実に変わってきます。範囲外だからといって、手を抜かずに作り込みましょう。たまに、気合いを入れて作った部分が、障害物の関係でプレイ中には見えない部分だったりすることもありますが……。

さて、マップ制作講座の第1回として、「プレイヤーキャラクターを常に画面中央に表示」することについて説明しました。

果たしてこれはマップ制作なのかというとやや疑問ですが、マップ作りにあたっての基本方針である上に、あまり意識されてないんじゃないか、ということで紹介してみました。

いかがだったでしょうか?(キュレーションサイト風)

次回からは、実際のマップ制作の上でのコツ等を紹介していきたいと思います。