FC2ブログ

架空創造地図描画日記2020[No.6777]

 新版地図を閲覧するためには、システム構築以前に閲覧する地図が無ければどうしようもない。てなわけで、地形未設定の暫定とはいえ、新版地図をグリッド分割する作業が続いていた。適当に色を塗っただけの簡素な地形陰影図が、まさかこの段階で使うことになるとは思わなかった。地形設定作業中の領域では既に消してしまった後だったので、古いバックアップをたどって引っ張り出すことになるとは…。
 かくして、暫定的に1000枚以上にも及ぶ全国地図を用意したのだが、もはや千本ノックを受けているかのような感覚だったかもしれない。後でよくよく考えたら、テストするだけならば、スクロール可能な範囲の設定は、二次元配列のmaxとminを操作するだけで簡単にできてしまうのではないか…!?まあここは新版地図早期完成を目指すためのテコ入れとしておこう。

架空創造地図描画日記2020[No.6776]

 本日スクロールマップをマイナー更新した。スワイプ機能がたまに暴走するのを抑えたのと、スワイプの角度を8方向から16方向に増やした。
 ところで、角度の計算と制御はどうやっているのか?hammerでは角度を出すことができるので最初はそれを使っていたが、どうしてもうまく動かないというお決まりの展開で断念した。代わりに導入したのは、瞬間的なXY方向の移動距離を変数に代入して、Y/Xでtanを計算して、範囲ごとにざっくりと振り分ける方法であった。縦横はXYそれぞれの軸に従い、斜め4方向は両方を同じマスだけ同時に移動、追加された8方向は片方の移動量を半分にしている。よって完璧に均等になっているわけではないが、タッチパネルを操作する時に、厳密に方向を考えている人間などまず居ないだろう。尚、この制御だとXが0の場合はコンピューターから怒られるので、もちろん事前に除外しなければならない。

架空創造地図描画日記2020[No.6775]

 新版地図読み込みのファイル名を二次元配列に羅列した.jsファイルが完成したが、あまりにも作業が地味過ぎて何度落ちたことか…。閲覧時は旧版との切替を考えて、ファイル名や配列のIDにも共通の法則性を持たせている。今後更に拡大した地図が用意されることがあれば、その法則に従うことで合理的に制御できるだろう。
 さて、こいつができたとあらば、どうしたって試してみたくなるものである。そのためには実際に画像ファイルが無ければ、読み込みエラーの多発で空白だらけの地図になってしまうではないか…。現時点で新版地図はほとんど完成していないのだが、地形設定に取り掛かる段階で背景となる(仮)の地図は存在する。そいつを一度テスト用にグリッド分割してみるか…。いやもうそのまま(仮)の新版地図として公開してもよいが、あくまで(仮)なので、地形設定を施した後は原型をとどめないほどに変わってしまうだろう。

架空創造地図描画日記2020[No.6774]

 この後は新版地図を1枚単位で完成する度に追加していくわけだが、その下準備がまだまだ地味に多い。閲覧システムの開発はこれから取り掛かるし、それ以前に地図のデータ管理をどうするかである。
 既に古守県のみが先行公開されているが、この時に定めたファイル名の規定は旧版地図の座標に従っていた。新版は旧版の2倍の縮尺なので、旧版1枚当たりの面積には新版が2×2=4枚収まることになる。
 閲覧中の拡大・縮小操作では、迅速にファイル名を検索して切り替える制御が重要になる。プログラム内でファイル名から地図を探す際は、技巧的な文字列操作よりも、あらかじめ用意した二次元配列にギッシリと名前を羅列しておいて、最初に読み込ませておいた方が処理が速いかもしれない。前者の方がプログラマーの労力はずっと少ないのだが、クライアントとユーザーの相関関係とはいかなる場合においても、どちらかが楽をすれば反対側は苦労するものである。

架空創造地図描画日記2020[No.6773]

 本日更新のスクロールマップでようやくスワイプ操作に対応するようになった。少々怪しい動きもするが、軽く少量弾くだけでもとりあえず動くので、従来より指の皮の負担が減るはずである。地図の端の方では暴走することもあるが、何も無い海上で迷った場合はセレクタ操作で本土に戻れるので安心されたし。尚、セレクタは実在世界の地図アプリに無い独自機能なので、今後は全市町村にワープすることも検討されている。
 さて、これで閲覧システムの基礎工事はひとまず済んだと言えるだろう。いよいよこいつに新版地図を搭載するための機能を追加していくが、旧版と新版との切替スイッチはマウスホイール・画面のダブルタップ・画面上部のラジオボタン設置を予定している。

架空創造地図描画日記2020[No.6772]

 画面上の地図をアニメ動作で外へ流すまではできたのだが、その続きの地図を画面内へ滑らせる制御がどうもうまくいかない。既存の地図アプリでもその部分は読み込みによるタイムラグが生じるので、あまり深く考えることも無いかもしれない。現時点では許容範囲外なわけだが、他にも色々な問題点が出ている。何はともあれ、座標が狙い通りに定まらずに画面外へはみ出すような事態を解消せねばなるまい。
 やれやれ、今年もあっという間に上半期が終わってしまったか…。コロナのせいで身動きが取れなかったせいで創作に時間を費やせたが、まだまだ全然足りない。都内では言うことを聞かない悪い子が感染を再発させているし、もうしばらくは作業に集中できるだろうか…。

架空創造地図描画日記2020[No.6771]

 システム構築作業は更に続く。現在はスワイプによる高速スクロールを搭載して、一気に閲覧しやすくしようとする計画が進行中である。画面を少し弾いただけで最低でも1000pxは送る予定だが、動作試験ではとりあえず上限を2000px程度に抑えるとする。
 作業中の内部構造だが、世に出回っている地図アプリ等と全く同じになるかどうかは定かではない。hammerのパン操作では操作開始からの時間と移動距離と角度が出せるので、こいつを基準に判定して制御する。
 使用する予定の無いスワイプのデフォルト値も参考にするならば、時間200~200ミリ秒以内に、100px程度以上スクロールしてヤメた場合にスワイプと認定して後続の処理へ移行する。その方向は角度から判定するが、律儀に360度刻むのは制御が難しいので、45度ずつ均等に割って8方向へ移動させることにした。

架空創造地図描画日記2020[No.6770]

 本日スクロールマップを更新した。従来は全国一括で読込んでスクロールさせていたが、これでは一度に動かすマップの容量が巨大なため、動作不良の原因になっていた。それに今後組み込まれる予定の地図は、縮尺が拡大される一方なので、このシステムは維持できない。てなわけで地形設定をしばらく休んで作業を続けていたのであった。
 さて、今回更新されたシステムだが、機能も外見も従来とは変わらないものの、スクロールの滑りが少しは改善されたはずである。大きな変更点としては、スクロール領域を画面サイズより一回り大きいぐらいに抑えて、画面外へはみ出したマップは後方へ回して画像ファイルを更新するという方式になった。このシステムがなかなか攻略できずに長い間悩み続けていたが、いざ完成してみれば、意外にもタイル状に並べたマップの個別の座標設定が不要だったという、かなり簡素な方法で実現できてしまったではないか…。複雑難解に思えるプログラミングも、たまにはこんなことが起きてしまうから分からないものである。

架空創造地図描画日記2020[No.6769]

 スクロール領域を縮小したことで、座標管理で新たな問題に直面している。スクロール量が大きくなって画面外へ出そうになると、マップ1枚分の250pxを後退させて画面の中心付近へ戻す処理を繰り返すわけだが、不本意にもそれを計算に入れていなかった。後退させると同時に、計算の基準となる座標も同じ量だけずらせば解決できるだろうが、これだとhammerのデフォルトのイベントオブジェクトの座標が直接使えない。完璧な値が即座に得られるので是非使いたいのだが、これは一度変数に格納して計算するしかないか…。
 そしてテストを何度繰り返しても、全国マップの右下辺りでどうも完璧に動かない。読み込むマップのファイル名は巨大な二次元配列で一括管理する方式を採用しているが、もしかして配列がでか過ぎると、右下辺りの読み込みに時間がかかるのか!?いやそれは無いと思うのだが、どうにも解決できないのである。

架空創造地図描画日記2020[No.6768]

 デフォルトのスワイプを捨ててパンに絞ったら、微動だにしなかったマップが指1本でサクサク動くではないか!細かいシステムの修正を施したこともあり、今までで一番動きがよくなった。やはりこの判断は正しかったようである。
 これで数日間悩み続けた難題からどうにか抜けたわけだが、細かいバグが多いし、他の機能を付けた際に起きそうな新たな問題が懸念される。それでも今回は大きく前進したと言えよう。
 となると、続いては滑るようなスクロール演出か?そこまでできれば新版地図も導入できるかもしれないが、まずは細かい修正が先だろう。

架空創造地図描画日記2020[No.6767]

 動かない原因は、パンとスワイプを同時に感知しているからというのでほぼ間違い無い。こういう場合にはrecognizerというものが用意されているようだが、英語音痴の作者には使い方がどうにも分からない。強引に試行錯誤を続ける手もあるが、ここは改めて考えてみよう。
 そもそもスワイプという動作は、ざっくり言えばパンの延長である。どちらの動作もとりあえず、マウスで左クリック、又は画面にタッチするところから始まる。その後でパンは微妙な緩い動きで照準を合わせるのが目的だが、スワイプは素早い動きで瞬時に払いのけ、画面を弾き飛ばすようにスクロールさせるのが目的である。
 てなわけで、スタートとなる動作は共通していて、その後は画面から離れるまでの時間が決定的な違いとなるだろう。ここで、スタートからの経過時間はdeltaTime、移動距離はdeltaXとdeltaYで変数に格納できる。となれば、パンの操作が終わった直後にこれらを呼び出し、短い経過時間でそれなりの距離が移動されたと判定できれば、スワイプとみなしてよいのではないか!?

架空創造地図描画日記2020[No.6766]

 一度パンを無効化して、スワイプのみの制御でテストしてみた。だがやっぱり微動だにしない。やけくそになって指二本でスワイプしてみたら…あれれ!?動いたではないか…。一本指ではまるで動かなかったのに、この差は一体何なのだ!?これはもう少し細かい設定をする必要があるだろう。
 ところで、こういう場合は公式サイトで仕様を調べる必要があるのだが、その文面はほぼ100%英語表記である。世界標準語と言ってしまえばそれまでなのだが、日本人にとっては少々キツイ。学生時代に英語の勉強を疎かにしたツケがこういうところで回ってくるのかもしれないが、あんな学校の授業ごどきで英語がペラペラになるわけもあるまい。まあ全く理解できないわけでもないので、どうにか解読して謎を解くことにしよう。

架空創造地図描画日記2020[No.6765]

 スワイプ操作で画像が滑るように動いて止まる正体は、スクロール時に意図的にそのような演出になるように命令しているらしい。その名もanimeteというメソッドのようだが、その内容を検索してみると…まあ察しが付くだろう。これだけではアニメショップのチェーン店がすらりと出てきてしまうので、そこはjavascriptを検索ワードに追加しなければならない。
 てなわけでその正体が分かったところで、まずはスワイプで指定座標まで画面を移動させる制御が先である。hammerにはデフォルトでスワイプを感知する機能が備わっていて、それを利用したまではよいが、PCではごく普通に動くのに、アップしてスマホで試してみたところでは、スワイプどころかパンにまで影響してしまって、微動だにしないではないか…。プログラムのどこかに問題があるのは確実だが、こういう事態が続くとどうにもモチベーションが上がらないのである。

架空創造地図描画日記2020[No.6764]

 食生活において、塩分と脂肪の過剰摂取は不健康である。それはどうでもいいとして、現在まで構築の済んだマップ閲覧システムは、感想を一言で述べるならば油が足りていない。既に試験運用で公開中なので、誰もが理解できるだろう。要するに、Web上で主流の現実世界のマップに比べると、滑りが非常に悪い。これ以上スマホでテストを繰り返したら、作者の指の皮に被害が及びそうである。できることならマップをめくって油を塗ってやりたくなるが、どうやったらあんなに滑りのいいマップにできるのやら…!?それは自分で解決するしかないが、ここは一度封印していたスワイプを導入するしかあるまい。
 スワイプ機能を一旦取り外した理由は、タップとの競合が起きてしまって互いに副作用を発生させて、まぜるな危険状態になってしまっていたからである。とはいえ、暫定的にすべてのマップを読み込んで重いスクロールをしていたので、スクロール領域の面積を小さくした今が復活の頃合いだろう。最終的にはマップの読み込みとの兼ね合いになるだろうが、そこは試行錯誤を繰り返すしかあるまい。

架空創造地図描画日記2020[No.6763]

 ところで、これは表計算ソフト以外の文書全般に言えることである。範囲を指定してコピペや移動のような一括作業をする場合、横方向には簡単にくくれても、縦方向には激しく不便なのである。現在作業中のプログラミングはマップを並べる二次元配列を駆使した制御なわけで、例外無くその困難に何度も直面している。縦スクロールでは上端と下端それぞれ横方向の1列ずつを操作するので、簡単に一括制御はできる。一方、横スクロールは左右の端のそれぞれ縦1行を操作するわけだが、こいつが簡単に制御できない。切り取った端のX座標を基準にして、その直前直後に挿入する作業を1列おきに繰り返さなければならないのである。
 かくして、最小限の面積でのスクロールは構築が済んで、動作試験は成功した。今回のシステム変更では、マップの端で停止させる制御も変更を余儀なくされた。結局読み込んでいるマップすべてにXY方向のIDを設定して、座標がスクロール限界に達したところでストップさせることができたが、現段階では微妙にずれて止まっている。閲覧上は問題無いが、何だかしまりの無い状態である。
管理人

ごとりん

  • 著者:ごとりん
  •  架空想像国家「月本國」の全国地図描画作業を地味に続けている貧乏クリエーター。このブログの毎日更新が途切れない限り、無事に生存しているものと関知して下さい。
Simulation Country GAPAN 月本國


現代和風RPG「月影の駅」Ver2
 RPGツクール2000製フリーウェア。駅から始まり駅で終わる、オトナのドライな人間模様。
 ゲーム宣伝動画配信中!

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

 「月本國」では、2D-RPG向け現代和風素材の無償配布の他、開国(平成13年12月16日)~平成17年2月28日までの過去ログ「旧月本国政府広報」を扱っています。
 又、連載物「RPG制作雑記」「徒然なる200x裏技集」(↓のカテゴリーで★が付いているもの)等のwardファイル版過去ログを扱っています。このblogの過去ログが読みにくい場合は是非御利用下さい。
ブログ内検索
カテゴリー(★:「月本國」にward版あり)
カレンダー
06 | 2020/07 | 08
- - - 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 31 -
月別アーカイブ
最近のコメント
最近のトラックバック
リンク
RSSフィード