sound sepher's PASTIME

ゲーム開発で思ったことや、趣味などの話を書き綴っていきます。

最近ウィザードリィが(また)マイブーム

 だいたい毎年、ドラキュラ月下→ロックマンウィザードリィのルーチンでマイブームがぐるぐる変わるんですけど、ロックマンブームがいったん落ち着いてきた(というかクリアしまくった)ので、ウィザードリィのターンに入りました。ちなみに今はクローン派生系の3DSエルミナージュ2遊んでます。エルミ2を遊ぶのは実質3回目だ……。

ウィザードリィとの出会い

 それは確か、むかし勤めてた会社に入って数年くらいの頃、ネット通販の中古で買ったワンダースワンクリスタルに、ロマサガウィザードリィリヴィエラセット(他にも入ってた)がおまけでついてたんですね。

 子供の頃(小学生くらいだったかなあ)、リイド社かどこかから出てた、ウィザードリィ4コマまんが王国を読んだりして、ウィザードリィの存在は知っていて。で、おまけでついてきたってことで、遊んでみようと。

 そしたらびっくり、めちゃくちゃおもしろいじゃないですか。レベル300くらいまで上げた。前列ロード3人全魔法持ち、後列忍者3人全魔法持ち、みたいな構成で、全員最強装備くらいまで揃えた。グレーターデーモン狩り4時間とかふつうにやってた。

なので、22~3歳くらいで初めて出会った

 ウィザードリィリリースから20年以上たってからの出会いってことで、実はかなり遅れて入ったタイプでした。その後、PC版リルガミンサーガを買ったり、ウィザードリィ派生のゲームを買い集めたり、今ではほぼ全シリーズを揃えてる、という状態です。

 もちろんその時点でウィザードリィはとっくにクラシックと呼ばれ、世界樹の迷宮もまだリリースされておらず、3Dダンジョン復刻みたいな時代ではないので、忘れ去られかけていた時代だったんですが。

 つまり、作法さえ知れば(当時の時点で)若い子でもウィザードリィはハマれるってことなんですよね。実際に、更に整理された世界樹の迷宮で再ヒットしたわけですし。

シンプルなのが良かった

 じゃあ、どんなところが良かったかというと、皆が口を揃えて難易度を話題にしますが、更に難易度が上がった#2や#3、更にリドルなどの謎解きが増えた#5は、実は苦手なんです。難しくて……。クリアしたけど、#1みたいなテンポの良さを感じなかったのが原因かなぁと。僕はいわゆる#1原理主義みたいなタイプに近いかも。でもすいません、僕はオートマッピングないとつらい派です(優しくしてください……)。

 これは攻略を見ながらダンジョン探索することだけを楽しんでいたということに尽きるのでしょう。謎解きは必要ない。複雑なフラグ立てはテンポを害する。そういうことなのかな、と。

 もちろんこれは個人的な感想で、それが良いという人もいるので否定はしません。が、未知のダンジョンをひたすら探索して、敵と戦って、レベルを上げて、装備を集める。それだけで十分だったということだったのかなーと。

ダンジョンに意味がほとんどないのが良かった

 ウィザードリィ#1は、実質1・2・4・9・10階以外は本編に関係なく、2階で4階に進むアイテムを集めたのち、4階からはエレベータで9階に直行でき、9階ではすぐ近くにあるシューターで10階へ進めるという、シナリオすっ飛ばしていきなりラストボスを拝めるという潔さが良かったな~と。

 3・5・6・7階はほんとに意味のないマップで、行きたければ行けば? みたいな突き放し感もよかった。ダンジョンとしてみれば結構狭いんだけど、その突き放し感で広く感じた。

敷居が高いのは作法にある

 #1を遊んだ人なら一度はやったことあると思うのですがマーフィーラン。これをひらめくか、突き放されたダンジョンの遊び方を自分で見つけられるか、初プレイで運良くいい装備ドロップを得れるか…そういう部分でウィザードリィは敷居が高いんですよね。レベルも上がりづらいので、マーフィーランやらないとつらいですし。

クローンを自分で作るなら

 クローンといわず、3DダンジョンRPGを作るなら自分だったらどうするかな~って思うんですけど。

 オートマッピングあり、全滅OK、ロストOK(でも死んだら拠点に死体輸送できる機能はないとつらいな~)、ズルいマップトラップは(まあまあ)OK、ダークゾーンは意地悪なのはご勘弁、時間のかかるレベル上げNG、ハクスラOK、パズルNG、フラグ立てはシンプル。そんな感じがいいのかな~。

 それで思い出しましたけど、個人的にととモノ3は物凄く面白かった……。レベル上がりまくり、パズルなしのテンポの良いハクスラ3DダンジョンRPGなので、興味ある人は遊んでみてください。

 あっ、更に思い出した。ととモノ2は魔法禁止区域+ディープゾーンで瞬殺全滅したの、ショッキングだったなあ……。一歩進んだ瞬間にブクブク沈んでいくの、あれは笑ってしまった……。3でそういうのが全部なくなったんだっけ。

最近は

 ウィザードリィエンパイアから始まったチームムラマサ(エクスペリエンス)さんがめっちゃたくさん3DダンジョンRPGを出されてるのと、アクアプラスさんがダントラを出してくれてるのと、さりげなくスターフィッシュさんが3DSにほぼ永久保存版的な形でエルミナージュシリーズをDL版で出してくれてるので、3DダンジョンRPGを遊びたい! となったら選択肢が無数にある今の時代は幸せですね。

 本家ウィザードリィもVita版囚われし亡霊の街が出てますし、ホント、ありがたいことです。

 版権の都合で無理と聞きますが、#1~5もバーチャルコンソールとかで遊べるようになったらな~と思うのですけど。未だにGBC版#1~#3は現役稼働してます。自分が生きてるうちに、このあたりの問題も解決したらいいなぁ。

ゲーム作りは時間と根気が必要

 などとそれっぽいタイトルにしましたが、Twitterでも書いたことのまとめなおしです。あんまりまとまってないですけど。今回は素材作りの話題がメインです。

 いま作っているスマゲビ用ゲームと箱庭セレナータは、明確な目的のもと作っています。スマゲビゲーは「一切素材を自作せず作ったらどのくらいで完成するか」。箱庭セレナータは「持てる時間とアイディアをすべて注ぎ込んだら何年かかるか」。

 ちなみにスマゲビゲーは90%完成しているのですが、だいたい2週間。箱庭セレナータは完成度50%で5年くらい。やばい。

 ゲーム作りはちまちまとしか進んでいかないので、諦めない根性と執念が必要になってくるなーというのが、まず結論。

作るものに限界はないけど時間は有限

 時間をかければある程度の質にすることは不可能ではないです。たくさんの人に見てもらったり、ある時間を注ぎ込んで質を上げていけば、割と見れる程度にまでは行けるみたい。

 でも、ひとつのゲームに数年かけてしまうということは、その人の作品はその数年でひとつしか出ないということなんですよね。それで構わないなら良いけど、その期間、その人は(ほぼ)存在しなかった扱いになってしまう。

 もしかすると時代が変わって、ツールがOS非対応になってしまうかもしれない。作り続けていくほどに過去の遺物になるかもしれない。他者の作品が自分が考えたアイディアを先に使ってしまうかもしれない(考えることは皆一緒)。それらに遭遇したり、遭遇する可能性に怯えながら作り続けていくことになる。

 作れるものに限界はないけど、物理的・精神的な限界はある、ってことかな~と。

 ほんとうに自己満足が目的の趣味だったら、そんなことどうでもいいと思うんですけど。遊んでもらうことを考えたら…。

素材作りは時間が果てしなくかかる

 ノウハウがないところから始める場合、使いやすいツールはどれか、作りやすい方法は何か、いろんなことを模索しながらやっていくことになります。

 ドット絵にしろ、ゲームエディタに最適化して、効率よく、うまく表示できるチップを作るには、エディタの仕様を完全に理解しないと作れない。

 立ち絵にしろ、ルールを何も決めずに依頼すると実際にゲーム画面に落とし込むときに苦労する。

 デザインフォーマットを何も考えずに作っていくと、最終的に全部作り直しになる。

 ちなみに作り慣れ始めた去年年末に時間をとってじっくり作り込んだ箱庭セレナータですが、チップ10000パーツを作るのに2ヶ月、UIワイド化に1ヶ月、スクリプト部のシステム修正に1ヶ月かかっていて、それでもまだ素材が足りないという状況。

 「見た目の違うマップを数種類以上作る」=「短編数作分の物量になる」と思って良いです。

 これが多人数でドットチップを作ることになったら…キャラ絵担当が複数人になったら…UIデザイナーが分担することになったら…。ノウハウ共有、クオリティバランスを保つために何をする、そういう問題が追加されていくことでしょう。

質を上げれば上げるほど、大量生産に不向きになる

 例えばマップパーツ。最終的に一人の人間がイラストを書いて、そのままゲーム中に落とし込むのがクオリティ的には最高なんですが、そのフォーマットでマップを作る=その人に頼りっきりになる→複数人で作る→絵柄のバランスをあわせるには……? 個人規模で作るには無理がある状況になっていきます。

 それに、いちど決めてしまったらレベルデザインができなくなるので、トラブルを避けるためにマップギミック的な要素を避けて作ったほうが完成する確率が上がる。単純なマップにせざるを得なくなる。単純なマップで問題ないゲーム内容にする必要がある。設計に関わってくる。

 既存チップでマップを作ったら、その上に手作業で書き足す…という手法も、若干難易度は下がるけど同様の問題をはらんでる。一度試しに作ってみましょう。そして、その作業をすべてのマップで行う気合と根性はあるか? 自分に問いかけてみましょう。

 自分の場合はこれから、ドット絵1万パーツ+αを組み立てて更に上から軽く修正することを想定しているのですが……気が遠くなりそう。

 個人規模で作れるものの限界値を学びましょう

それらを想定して、じゃあ何を作るか

  • 作れるものに限界はないけど、物理的・精神的な限界はある
  • 「見た目の違うマップを数種類以上作る」=「短編数作分の物量になる」
  • 質を上げれば上げるほど、大量生産に不向きになる

 結局のところ、実際作ってみないとわからないなぁといった趣があるので、実際作って痛い目を見るのが一番よさそう。もちろん一人で。

 なので、めちゃめちゃキレイなゲーム画面が作れて、かつ面白くて、複数作品作れてる人は、たぶん神です。普通の人が見つけられないものを見つけた人です。God Like。

 個人的には、初めてゲームを作る人が考えたゲーム内容は、その1/10作りきれれば御の字かなあ……って思います。いや、ほんとうに。

補足

 僕は音楽畑の人間なんですが、こうしてゲームを作りながら思ったのは、1日に10曲くらい作りたい……ってことでした。1日1~2曲じゃ遅すぎだなあ……と。音楽は効率が悪いなあ。なんとかうまい解決方法を探したいところ。

テストプレイのフィードバックで感じたこと

 箱セレの感想や、今作ってるスマゲビゲームのテストプレイのフィードバックから受けた印象と、何を直すべきで何を直さないべきか的なことをまとめた自分用のメモ。

(1)開始10分がすべて

 ゲームをはじめて10分、そのあいだのプレイがつまらなかったら多分プレイヤーはゲームを削除します。具体的には、自動イベントをなるべく減らして、プレイヤーがたくさん介入できて、かつサクサク進めるようにするのが一番よさそう。バトルがあるRPGなら、スタート直後にバトルが起きるといいみたい。

(2)ソロプレイゲームで起きたミスは全部ゲームのせいになる

 例え操作ミスで落とし穴に落ちたり、コマンド入力ミスをしたとしても、それはすべてプレイヤーの責任ではなく、ゲームの責任になります。

(3)難しいゲームはよほどノウハウがない限り避ける

 ギリギリのバランス、例えばギリギリジャンプしないと届かない地形だとか、ギリギリの手数でしかクリアできないパズルなどの難易度の高い要素については、初心者は避けておいたほうが無難です。前述の話題に繋がりますが、プレイヤーのミスは全部ゲームのせいになります。具体的に書けば、レビューで★が1つになったりします。

 あとは、暗記系のイベントもなるだけ避けたほうがいいかも。

(4)プレイヤーの言う「楽勝」は喜びの反応

 勝負ではないので、楽勝と言われたからって難易度を上げないように。プレイヤーをうまく勝たせるのがソロプレイゲームの作り方みたいです。

 これは個人的な意見ですが、ハードコアがウリなブランドでない限りは、すごく簡単でサクサク気持ちよく進むゲームで良いんじゃないかなーと考えています。

 プレイヤーが悩んでいるところを目の前で見ると、けっこうつらいものがあるんですよね。ストレス溜めてるのが空気で伝わってくるので、申し訳なくなってしまいます。

(5)バトルの長期戦はダレる

 50ターンとか100ターンかかるような戦闘はけっこうソロプレイゲームではきついです。10ターン、長くても20ターン程度で決着がつくようにしたほうがいいかもしれない。20ターンって物凄く長いですが。

 パターン攻略で操作ミスを誘発させるみたいなやり方もあるにはありますが、アクションゲームではありでも、ターンバトルでは決められたコマンド入力を行うだけになるので、若干作業になるかもしれません。

(6)要素はプレイヤーに気づいてもらえるように組む

 作り手が本気で隠した要素は、プレイヤーは絶対気付きません。説明していない要素はないものと扱われます(そもそも気付かない)。

 箱セレだとグリモア装備ウィンドウ上で、装備したグリモアを選択してサブキーを押すと装備が外れるだとか、そういうウディタデフォルト要素とかでも、知らない人は気付かないということです。

(7)救われない悲劇は大人用

 全く救いのない作品は反応もかなり重いです。それが狙いならアリですが、そうでないなら最後に救いは用意したほうがいいのかなあ……と。大人向けですね。

(8)テキストは読み飛ばされることを前提に

 一度しか表示されないシステム表示テキストや、一度しか表示されないヒントなどは、飛ばしたら詰みます。

 また、会話ウィンドウの横に立ち絵、更にマップでもキャラ演技があった場合はプレイヤーの視線誘導に注意したほうがいいです。立ち絵やキャラ演技が多く入る場合、たぶん会話ウィンドウの内容はうわのそらになります。

 ゲーム画面の情報量が多ければ多いほど、ひとつひとつの要素が希薄になって、受け取る側は気付きづらく、うわのそらになっていく印象を受けました。

(9)重要なイベントは素通りできないように

 自由度を上げたい等の理由で重要イベントを素通りできるようにすると、気付かず素通りして詰むプレイヤーが多発します。

(10)作り手が「詰まるかな」と思った箇所でプレイヤーは100%詰む

 「ここは難しいかな、気付くかな? 詰まるかな~。でもわかるよね」みたいなノリで作ったイベントはほぼ気付いてもらえません。(9)と合わせて注意したいです。

ウディタの仕様簡易まとめ

 ウディタをふつうに使ってるぶんには大して気にならないけど、作り込んでくるとぶつかってくる仕様を簡単にまとめておきます。

(1)ゲームの動作が重いなら

 たぶんソフトウェアモードで動いてます。ハードウェアモードに切り替えましょう。Config.exeでいじれます。

(2)1ピクチャの描画限界は8192x8192px

 Intel HD系のビデオカードの最大テクスチャサイズが8192x8192pxだから。ピクチャは2048x2048pxより大きくしないほうが安全。

 更に、これはマップサイズやマップチップセットのサイズにも適用されます。マップサイズもこのサイズを超えたあたりから、エディタが正常に動作しなくなりますし、ゲーム側でもロードが激重になったりします。避けたほうが無難。

 1グリッド40x40pxなら204x204グリッドくらい。画面サイズ1280x720pxなら、横6画面、縦11画面まで

(3)イベント起動条件

 これは憶測ですが、優先順位は並列実行>自動実行>プレイヤー接触>イベント接触。マップ座標(0,0)に近いイベント・座標ほど優先順位が高い。(0.5マス移動時)

 新しいマップへ場所移動した際に並列実行イベントでマップ環境を設定し終わったあと、自動実行イベントが起動したため。

 ランダムエンカウントを接触範囲拡張で指定した際に階段に触れると何が優先されるか検証したところ、ランダムエンカウントをプレイヤー接触で判定した場合、階段イベントより先に戦闘が発生し、発生後は階段イベントが起きず階段の上で立てる。これを両方イベント接触にすると、階段イベントで場所移動したあと、エンカウントが起きる。

 なお、0.5マス判定の場合、座標(0,0)に近い座標ほど優先される都合、「左から近づいて接触した場合」と「右から近づいて接触した場合」、「上から近づいて接触した場合」と「下から接触して近づいた場合」の判定タイミングは後者が優先され、ナナメから近づいた際も同様に判定される模様。「左上から右下に向かって接触」が一番優先順位が高い。接触判定を0.5マス判定でチェックするときは、この仕様もあって若干複雑に(同じ接触方法でも内部の判定が偶数座標と奇数座標で違う、奇数座標はバグの原因)。

(4)複数のマップイベントが重なっている場合の優先度

 マップイベント1とマップイベント2が同座標にいる場合、イベントID番号が小さいほう(1)が優先される。ただし、描画はイベントIDが大きいほう(2)が上に描画される(多分)。これを避けたいときは、イベントIDが小さいほうのオプション「主人公より上」チェックをオン。

(5)大きな画像は読み込みがかなり遅い

 高解像度でゲームを作るときに大きな立ち絵を出したり、大きな敵を出すとすぐにわかりますが、ある程度大きい画像(1024px程度)を表示すると、ビデオカードによっては結構大きな負荷がかかります。

 これはエフェクトアニメーションを1枚画像のアニメしかできないウディタデフォルト仕様では致命的で、派手なバトルエフェクトを作ると毎回ロードで停止します。対策は事前ロードとエフェクト倍角化。ゲーム開始時やデータロード時、もしくは戦闘開始前に必要なエフェクトだけロードするなどの対策が必要。

(6)繰り返し使う処理はコモンイベントでまとめる

 場所移動時の移動前処理・後処理。宝箱処理。エンカウント処理。繰り返し使うイベントはコモンイベントから読み込むようにしたほうが後々ラクに。

 ウディタの隠し機能のひとつに、コモンイベントからは呼び出しイベントのセルフ変数を参照することはできないが、マップイベント上で指定したセルフ変数分岐やセルフ変数格納をコピーしてコモンイベント上でペーストすると機能する。なお、これをコモンイベントで修正しようとするとエラーが起きる。

ペチコートデュエル

 ……ペチコートデュエルズ。何かに使えそうなので、メモ。やっぱどの時代にもセンスいい単語選びってあるな~。

画像の合成ルールについて(メモ)

 RPGを作っていると、なんとなしにゲーム画面に陰影をつけたい…となることもあります。例えば真っ黒の画像に穴を開けて、ドラクエ1のたいまつのようにマスクっぽい処理を加えるとか、そういうのであったり、それにグラデーションをつけてもっと自然にしたり。くらいマップに明かりを灯してみたり。

 これってカンで作ってると、どんどん色がくすんでいくのですが、その理由を自分用にメモっておきます。これ、すぐ忘れるんですよね。

実際に合成してみる

f:id:Ashtarte:20170417143050p:plain

 というわけで、実際に試してみたものをまず用意しました。グレー(#4d4d4d)がもとの色合いです。まずレイヤー1で減算合成します。さらに、その上から加算合成で重ねます。すると、だいたいですが、もとの色合いに戻る…という結果になります。

戻る色と戻らない(くすむ)色がある

 スポイトツールでチェックしてみるとわかりますが、戻っている色もありますが、すこし色合いが飛んでるものもありますね。色が飛ぶものは、元画像の暗い色合いの部分です。

なぜか

 これは簡単で、色の値のRGBのどれかが減算時に失われているからです。

 例えば、樹の5段の葉っぱ部分の中心(3段目)のベースカラーは、元が#389531(56,149,49)に対して、#4d4d4d(77,77,77)で減算すると#004800(0,72,0)、その上で加算合成を行うと#4d954d(77,149,77)になっています。

 もうわかりますね。減算合成した時点で、赤と青の色値が失われているんです。色の値がマイナスになったら、その値はどこかに消えてしまい、加算したときには加算に使った色の値がそのまま与えられ、色が明るくなってしまうんです。

不具合の例

f:id:Ashtarte:20170417144552p:plain

  先の事例通りのことが起こっています。僕のゲーム「箱庭セレナータ」では、もともとキャラクター付近には「背景透明+白グラデ円」加算(透明度あり)の明かりが灯っていて、ギリギリ近づくと隠し通路が見える…という仕様です。

 詳細を書くと長くなるので省きますが、この仕様のレイヤー下に「視界」という、白減算画像をベースにした処理を加えたことで、もとの壁(黒部分#131314)の色合いが#000000になってしまい、せっかくの隠し通路の色が飛んでしまい、見えなくなっている上に、全体的に画像がくすんだよう(#303030)に見えてしまいました。

 これを解決する方法は、今のところウディタではない様子なので、「視界」は完成版ではなくなるかもしれません。それに、凄まじく処理が重いですしね…。

まとめ

 画像合成処理で色値RGBのうちどれかの値が0になった場合、その色を上から加算合成などで戻そうとしても色飛びが起きているため戻せない。明かり関連を使うときは、この問題に注意すること。です。

ゲーム作るときに用意しておくもの(自分用メモ)

 これがあるとはかどるよ~みたいなものをざっくりまとめておきます。主に自分用。PC再インストールしたときに、何が必要か思い出すのに少し手間取ったんですよね…。

ないと困る

  • GIMP (ドット絵もUIデザインもこれでできちゃう。Edgeはアルファ値保存不可)
  • mp3tag (BGMのループを取る。VXA、ウディタ、スマゲビ用。日本語化)
  • foobar (MVのループはこれで取るのが一番効率よさげ。Columns UI)
  • oggdrop (ドロップするだけでoggに)

あったら便利

調べておくといいもの

  • 色について (補色とかそういうやつ。暗記必須っぽい)
  • javascript (覚えておくと物凄くできることが広がる)
  • SoundCloudとかyoutubeとかの使い方

まだできないこと

  • 動画編集 (AviUtlがラクっていうけど、まだよくわからない)

メモ

 mp3tagでループポイントを取るときは、「ツールオプション→タグパネル」で”LOOPSTART”、"LOOPLENGTH"を追加。フィールドはそれぞれ"LOOPSTART"、"LOOPLENGTH"。複数行フィールドチェックは外す。

 右カラム(リスト部の"ファイル名"…とか書いてるとこ)を右クリック「カラムの表示項目を編集」。ここで名前「LOOPSTART」値"%LOOPSTART%"フィールド"%LOOPSTART%"、同様にLOOPLENGTHも追加。必ずすべて大文字にすること。mp3tagは小文字も受け付けるが、ウディタやスマゲビは小文字と大文字の区別をするようで、小文字にするとループ指定が無視される。あとは、「数値を使う」もチェック。

 既存oggを放り込んで追加した表示欄にループポイントが表示されたら成功。ループポイント保存時はファイル選択して右クリック「フィールドすべてを保存」もしくは、「ファイル→フィールドすべてを保存」。後者はリストにあるすべてのファイルのフィールドが保存される。