現代和風RPG開発日記2017[No.5764]

 部分的に直しているうちに一度バグが発生してしまうと、原因の究明で時間を費やしてしまいがちである。なかなかミスに気付かないとどんどん時間が無駄になる。ならばいっそのこと、大規模に削って最初からやり直した方が手っ取り早いほどである。
 作業用のエディタ領域の確保も案外気を遣うものである。いっそのこと新たにイベントを配置して、その1ページ目で編集したほうが間違いが少ない。それはマップ上でイベントを開くと、最初は常に1ページ目が表示されるからである。2ページ目以降で編集していると、開いた時にページをめくらなければならない。そんなわずかな時間さえもったいないし、どのページも同じような動作指定の羅列ばかりだと、間違えて別のページのコマンドを編集してしまうおそれがある。そんな凡ミスを避けるべく、目立つ注釈の多用も忘れてはなるまい。

現代和風RPG開発日記2017[No.5763]

 ほんの10数行の動作指定を直すだけで、1周分の全コマンドをやり直しする事態に陥っている。あらかじめある程度分割されていたので、直す必要の無いイベントを全部拾い出して使い回しているが、それでも残りの部分は数百行単位の書き換えとなってしまう。コマンドのコピペができないという仕様が、連日じわりじわりと負担をかけている有様である。
 とにかく修正の必要な部分を書き換えているものの、こまめにテストをする時間も惜しい。だが、1行でも間違えるとそれ以降はすべてやり直しになってしまう。そんなジレンマが繰り返され、気付いたらもう夜になっているのであった。
 よりによって今は繁忙期ときているので、まとまった時間の確保が難しい。ほぼ1日おきに全く作業ができないのもじれったい。極力区切りのいいところまで進めたいものだが、寝不足は仕事に響くので困ったものである。

現代和風RPG開発日記2017[No.5762]

 ここでは仮にA・B2つのイベントを同時に動かすとする。動作コマンドの総数がAは240個、Bは320個として、スイッチを入れればマップ上の指定ルートを何度でも移動させられるようにする。前述の通り並列処理のイベントは1つに集約させるとして、そもそもそんな制御は可能なのだろうか?
 このように動作コマンドの総数が異なる上にどちらも200行MAXを超えている場合、「キャラクターの動作指定」を複数に分割させる必要があるが、そこで少々頭をひねる必要がある。それぞれ前後で2分割するならば、前半はABのコマンド数を完全に一致させなければならない。両者の総数が合わない場合、後半は残りのコマンドを全部入れれば差が生じても問題無い。この例の場合、前半は200個限界まで入れても問題無いが、後で編集するかもしれないので余裕を持って150ぐらいで分けるとよいだろう。
 この例では2分割すれば収まり切れるが、もしコマンド総数が400を超えたらどうするか?その場合は最低限前中後で3分割する必要があるが、そのうち前と中のコマンド数を一致させればよい。尚、コマンド総数が200未満であっても、途中のコマンド数が一致してさえすれば、もっと細かく刻んでも問題無く動作する。又、並列処理させるイベントの数がABC…といくら増えても問題無いが、あまりに増やすと当然ながら処理落ちするおそれもある。

現代和風RPG開発日記2017[No.5761]

 複数のイベントを並列処理で同時に移動させるとするには、複数の並列処理を用いても可能である。とはいえ、できる限り1つの並列処理の中に動作指定を集約させた方がよい。
 突然何をどうしたいのか!?と思われるだろうが、「キャラクターの動作指定」は数百個ものマップイベントに対して複数同時に並列処理できるとしても、「指定動作の全実行」はそれができない。こいつをたった一度でも発動すると、その時点で実行中のイベントの動作がすべて終わるまでは、次の新たな動作指定は一切開始されずに待たされることになる。
 動作指定のコマンドには200行MAXの仕様があることは以前書いたが、これを超える数のコマンドを指定したい場合、200個以内に抑えた数で「指定動作の全実行」を発動後、引き続き間髪入れずに新たな動作指定を行えば、滑らかな連続動作は可能である。だがそれは1つの処理に対しては問題無いにせよ、今回はそれを複数同時に行うことになる。こんなイレギュラーな制御は滅多に使う場面も無いだろうが、今まさにそういうマップを組んでいるということである。

現代和風RPG開発日記2017[No.5760]

 移動コマンドの羅列の区切りに印を付けるとは書いているが、コマンドの中に注釈の機能は無い。では一体どうやって印を付けるというのだ?
 率直に答えるならば、他のイベントに全く影響しないコマンドならば、とりあえず何でもいい。「○に移動」が延々と続いている中で1つだけ異なるコマンドがあれば、それだけで十分目立つからである。
 とはいえ、構築している時点では影響しなくても、マップイベントを大量に組んでいけば、そのうちド忘れして影響を及ぼしてしまうかもしれない。あくまで目印として使うので、最終的には削除してしまうわけだが、ここは何か1つのコマンドに統一するのが現実的だろう。
 そこで当局が採用しているのは「効果音の演奏」→「(OFF)」である。リストの一番右下にあってすぐに選べるし、これほど他のイベントに影響しないコマンドは無いだろう。実行時点で何らかの効果音が演奏されているならば鳴り止んでしまうだろうが、効果音自体はほんの数秒で終わるものである。コマンドの実行時間は無いに等しいので、移動コマンドの間にいくつも割り込ませても滑らかに動作するのある。

現代和風RPG開発日記2017[No.5759]

 移動コマンドを何十行も羅列すると、似たような文字が延々と並んでしまい、ウィンドウをスクロールしても見分けが付きにくい。ちょっとマウスカーソルや矢印キーに力が入っただけで、1行程度はすぐにずれてしまう。上から65コマをスクロールして66コマ目に印を付けようとするならば、その単純作業を200行も完璧にこなせるものなのか?いや、それならば下から35コマをスクロールした方が早いかもしれない。いずれにせよ実際やってみれば分かるが、そのうち確実に疲れて集中力が散漫になるものである。適度に休みながら集中力を維持するしかない。
 1行ずつ数えるのは疲れるので、動作指定のコマンドを入力するウィンドウの高さが常に20行分であることに着目するとよい。そして、複数のコマンドを選択することはできなくても、1つのコマンドだけ選択することは可能であり、その選択されたコマンドは青色反転する。これらに気付けば、このウィンドウを20行分の定規のように利用できる。下から35行を数えるならば、一番下からまず20行分を出して丸ごとスクロールして、次のウィンドウで上から5行のところをチェックすればよい。これでかなり数える手間が緩和されるはずである。

現代和風RPG開発日記2017[No.5758]

 100行以上にも及ぶキャラクターの動作指定のコマンドを2分割する必要が生じた。コマンドはすべて上下左右4方向のいずれかへ移動するものである。これを200行以上のイベントに対してすべて行うものとする。さて、効率よく作業を進めるにはどうすればよいのやら?便宜上ここでは仮に200行のイベントにそれぞれ100個ずつのコマンドがあり、すべて前半65コマ+後半35コマに2分割するものとして議論を進めるとしよう。
 再三ここで書いているように、とにかく厄介なのが複数のコマンドをまとめてコピペすることができない。まず思い付いたのが、200行のイベントを丸ごとコピぺしてから、半分は後半を削除して、残りの半分は前半を削除する方法である。だが、それでは65個と35個に分割する作業が二度手間になってしまうではないか…。ならば分割するポイントを何か分かりやすいもので200行全部に印を付けてから、コピペして分割すれば効率的であろう。

現代和風RPG開発日記2017[No.5757]

 裏方のマップイベントを絶対に表に出さない苦肉の策として、通行属性「☆」のマップチップで覆い隠すことにした。基本的に屋根や高い樹木等に用いられて主人公がくぐり抜ける属性だが、透明色が使われていないマップチップならば隠蔽できる。外道ながらもスクロール範囲に注意すれば、案外重宝する方法である。これにてスクロール限界も少しばかり緩和され、どうにか組みたいマップが組めるようになった。
 このマップも組み始めて数週間が経過している。当局でツクール2000を扱い始めて15年以上が経過しているが、恐らく今まで組んだマップで最も難易度が高いのは確実だろう。計画当初の理論は大体実証されて完成に向かってはいるものの、すべて思い通りの完璧な仕上がりか?というと、そこまではまだ実証できていない。今後も動作不良が起きるようならば、どこかで軽減しながら完成を目指すことになるだろう。
 尚、このマップの欠点として、通常時の主人公の探索はできない。計画当初から鑑賞イベント専用に組んでいることを想定している。色々裏技を駆使すれば探索は不可能ではないかもしれないが、そこまでやる予定は無い。

現代和風RPG開発日記2017[No.5756]

 難関だった数百ものマップイベントの一斉移動がどうにかなりそうなので、いよいよマップチップの配置に取り掛かり始め、ようやく形になってきた。チップセットは月本國素材ではオーソドックスな「郷愁の街角」を採用しているが、状況に応じて加工する場合もある。今のところ追加のキャラチップを並べればデフォルトのままで問題無いが、通行属性はMade in GAPANのサンプルからかなり変更されている。こういう小細工にこのマップの複雑怪奇なところが見え隠れしているが、実際にプレーしてみれば最初は全く気付かずに、ごく普通の街角のマップに思えてしまうだろう。
 このマップ組みにおいても、次から次へと困難に直面してはどうにか切り抜けている。最大の難問は、現実世界では建築限界に相当するような”スクロール限界”に何度も行き詰まっていることである。既にイベントが1000個ほど並べられている状態からマップ組みに取り掛かっているが、あらかじめ画面演出のスクロール許容範囲は設定していたものの、いざマップを組むと手狭になってしまったのである。
 今更範囲を広げようにも、スクロール範囲外の裏方が1マスでも表に出てしまえばNGとなり、観客が嘲笑してしまう。配置済みのイベントの位置を変えれば解決はするが、1マス動かすだけで動作指定の設定が数百個にも影響してしまい、膨大な時間のロスとなってしまう。そんな瀬戸際での作業が続いている。

現代和風RPG開発日記2017[No.5755]

 前回は横移動のマップイベントの配置において、マップの奥へ配置するほどIDを小さくする必要があると書いたが、よくよく考えると実はそうでもない。改めて書くと、マップの手前すなわち下…ついでにY座標が大きいほど、プライオリティタイプが同じならば画像表示の優先順位は上位になる。これに関しては、マップイベントのIDには依存しない。
 ならば厳密にIDを管理せずともいいのではないか?確かに多少は肩の荷が下りたのだが、複数のイベントをまとめて制御するとなると、楽観するわけにもいかない。特にブロック単位で1つの大きな画像を生成して動かすとなると、IDの連続性や他のブロックとのIDの差は管理上侮れないのである。
 現段階に至るまで数々のテストを経たわけだが、その過程において、一度設定されたマップイベントが後になって不要になって、今は欠番になっているものもある。連続性や優先順位を維持するため、再度何も無い空のイベントとして配置して、IDを調整することも行われている。

現代和風RPG開発日記2017[No.5754]

 横方向へはキャラ画像を4列ほど移動させる予定である。プライオリティの法則からして、マップの上すなわち奥へ配置される画像ほど、IDを小さくする必要がある。
 キャラクターの動作指定の設定だが、画像が1コマ分の面積で足りるものは、マップイベントの移動ルートの中で設定してしまうことにした。こちらも恐らく200行で限界が来ると思われるが、それ以内に収まると判断されたからである。
 試しに1列のみ横方向を設定して、縦方向と同時に動かしてみた。横の方がプライオリティは上位だが、縦横はすべて交差するので、あらかじめ動作の安定を考えて横もすり抜けを有効にしている。その結果は上々で、横移動する画像の下を縦移動する画像がすり抜けて行ったのであった。

現代和風RPG開発日記2017[No.5753]

 縦方向へ移動するイベントがようやく構築できたが、作業はまだ半ばである。引き続き今度は横方向へ移動するイベントを設定しなければならない。イベント画像の横寸法は最大24pxだが、大きな画像を構成するためには1マスずつ隙間無く並べるしかない。その分だけイベントの数も増えることになる。
 ところで、縦横双方向に移動するイベントを設定したとして、それらを同時に動かそうというのか?そんなことをしたら互いに重なり合ってうまく動作しないのではないか!?という疑問が生じるかもしれない。基本仕様に基づくならば、プライオリティが異なれば互いに交差して移動できるはずである。その場合は下<重ならない<上の順に表示が優先される。一方、プライオリティーが同じならば、すり抜けを有効にすればよい。その場合はマップイベントのIDが大きい方の画像が優先されるはずである。 マップ上には既に1000個ほどのイベントを配置済みだが、もちろん後で直すことの無いようにあらかじめ設定しておいてある。

現代和風RPG開発日記2017[No.5752]

 またしても痛恨の設計変更により、数時間の遠回りを強いられることになった。常に最短距離で作業を進めていることを考えてはいても、それが完璧に進むことはまず無い。今回もまた何度もリテイクを繰り返している。だけどツクール2000での開発はこれが最後だし、やり残しの無いように限界まで追求してみようではないか…。いやもはや処理し切れずに悲鳴を上げているところもあるのだが、そこは後で軽減させればよい。
 それにしても作業が地味過ぎて参ったものである。仕事が終わって帰宅した夜に少しでも進めようとしたら、ほんの3行で眠気に襲われてリタイアしてしまった。今週末から連休にかけては割と時間を確保できそうなので、眠気覚ましでも買い込んで遅れを取り戻すとするか……。

現代和風RPG開発日記2017[No.5751]

 画像を表示させる全マップイベントのすり抜け開始設定完了。速度調節イベントは使うかどうか未定だが、とりあえず構築完了。残るは動作指定の設定だが、No.5746で書いた通りで作業が地味過ぎるので、集中力が欠けると即刻やり直しの連発となる。特に眠い時は無理せず問答無用で寝たほうがよい。さもないと時間の無駄であることをつい先日痛感した。てなわけで、今はテストを経て本番に取り掛かっているものの、多忙で時間が細切れになっていることもあり、未だにコマンド入力が完了し切れていない。それでも少しずつ進めて間もなく終わる見通しである。
 この作業が終われば、再度動作テストが行われる。そこで是非ともやってみたいのは、「指定動作の全実行」1個で、果たしてどれだけのマップイベントを動かすことができるかである。テストでは324個のイベントを一度に動かそうとして動作不良が起きたが、その後色々改良してみた。単純にマップイベントの数に依存するだけならば同様の結果になるだろうが、そこはやってみないと分からないところである。

現代和風RPG開発日記2017[No.5750]

 長らく公表していなかったが、このイベント画像の列は、画面上に出ている間、縦方向のみに移動する。横方向への移動は画面外のみで、表に出ることは無い。よって、移動する2つのイベントの間隔は、常に1マスの空きで済む。
 さて、マップにイベントを配置したならば、キャラクターの動作指定の入力作業はどうなる?すべてのイベントに対して内容が異なるわけだが、毎回1つずつちまちま入力していたら面倒臭くてたまらない。ここで法則性に着目すると、前後のイベントに対して常に2コマずつずれることに気付けば問題無い。丸ごとコピペした後でIDを変更して、最後の2コマを削除して、最初のコマより前に直前のイベントの最後の2コマ分を入力していけばよい。それでもかなりの量なので数時間はかかってしまうのだが、これ以外に効率的な方法は無いのである。
管理人

ごとりん

  • 著者:ごとりん
  •  現実的世界観のRPG開発と普及を目指して、日々の生活で戦闘を続ける貧乏クリエーター。このブログの毎日更新が途切れない限り、無事に生存しているものと関知して下さい。
Simulation Country GAPAN 月本國


現代和風RPG「月影の駅」
 RPGツクール2000製フリーウェア。駅から始まり駅で終わる人間模様。オトナのドライな難易度につきお子様は十分御注意あれ。

「Made in GAPAN 歩 ~Ayumu~」
 2D-RPG向け歩行グラフィック合成ソフト。当局開発の32規格8方向部品セット他、一般的な部品セットも利用可能。各使用環境に合わせた既存素材の組み直しや、顔グラ等の合成もOK。
(上記の管理人画像はこれで合成したものです。)

 「月本國」では、2D-RPG向け現代和風素材の無償配布の他、開国(平成13年12月16日)~平成17年2月28日までの過去ログ「旧月本国政府広報」を扱っています。
 又、連載物「RPG制作雑記」「徒然なる200x裏技集」(↓のカテゴリーで★が付いているもの)等のwardファイル版過去ログを扱っています。このblogの過去ログが読みにくい場合は是非御利用下さい。
ブログ内検索
カテゴリー(★:「月本國」にward版あり)
カレンダー
08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
月別アーカイブ
最近のコメント
最近のトラックバック
リンク
RSSフィード