さて、最初の難関になる移動処理をする前に、ここでゲームの画像処理の大まかな構造を決めておかなければいけません。
まず考えないといけないのが「Z座標」
キャラの重なりに関する仕組みです。
「Z座標を制す者はゲームを制す」というくらい重要な基幹部分なのです。
正面見下ろし型のウォーシミュであればたぶんツクールデフォで良い。
しかしクォータービューの場合はそうもいかない。
例えば移動する時、移動範囲が表示されますよね。
仮にフォトショ上で画像を作ってみます。
よく見ると地形の下に表示されているブロック画像がありますね。
これはつまり、スプライト画像は1ブロックごとに作ってZ座標を指定しなければいけません。
もしブロック画像のZ座標を個別に設定しなかった場合はこうなります。
ここまでなら「ふ~~ん、そうだね」で済む話。
でも実はコレが大きな問題になってくるんです。
何が問題なの?って話ですけど、大問題です。
ツクールのマップチップは基本的にスプライト画像1枚で表示してるんです。
だから処理も軽く済みますが、当然ながらZ座標はスプライト画像1枚に対してしか設定できないので、マップチップ単体の重なり具合を個別に設定することはできません。よく上層レイヤー下層レイヤーって言い方してますけど、それはつまりパーツ単体ではZ座標を管理できないということなのです。
タイルチップに☆付けたらキャラの前に表示されるようになるあの仕様も、たぶん上層レイヤーに表示してるだけだと思う。だから上層レイヤーに別のチップ置いてたらたぶん干渉するはず。処理の中身見てないから知らんけど。
もしパーツ単体で重なりを設定したいならイベントのキャラ画像を使います。
キャラチップはそれ単体で1枚の画像なので自由に重なり具合を決められます。
もちろん増やすとそれなりに負荷が増えるデメリットがあります。
なのでクォータービューで隠れる地形はイベントのキャラチップで表現することになると思います。そこで問題になってくるのがこの移動範囲エリアの画像をどうするかという話です。
いいですか?
3歩移動くらいだったらブロック画像の枚数は25枚で済みます。
けど4歩で41枚、5歩61枚、6歩85枚と必要画像が跳ね上がっていくんです。
8歩だと145枚のスプライトを新規に作って表示しないといけなくなります。
クォータービューじゃなけりゃ1枚で済んでたものが145枚ですよ?
これはマップタイルと違って毎フレーム1枚1枚座標やら更新しないといけない。要するにイベントのキャラチップみたいなもんです。
その処理にどんだけ負荷がかかんの?って話です。
8歩はまだかわいい方です。
このゲームはFFTっぽさを目指してるんで、テレポ移動しようとした日にゃマップ全域にブロック画像を表示しないといけなくなります。何百枚になるか…
ていうかMVってイベントのキャラチップ何百体も出してだいじょうぶなの?
PCばくはつしたりしない?
落ち着け…!
とりあえずおちちつつつこう…
まずは負荷を最小限に抑える為にこの移動画像表示用のクラス作る所からだ。
キャラチップのクラスなんて絶対に使っちゃ駄目だ。アップデートの処理が多すぎる。マジでマップにイベント数百個置くようなもんだ。
余計な処理は一切させずにただ座標更新だけさせる画像の最小クラス。
できれば透明度も毎フレームごとに変えて光らせたいなぁ…
画像だけじゃなくて、ウォーシミュ系最初の鬼門である移動計算もやっかい。
これがけっこうプログラム初心者を殺しにくるレベルで難しい。
いわゆる総当たり法ってのを使うことになるわけですが、処理の段取りは思い描けてもそれをプログラムとしてコードで表現できるのかは別問題。要は翻訳のようなもので、苦手な人は手も足も出ないくらい訳が分からない。
ただ範囲を表示するだけならそこまででもないんですけどね。
地形IDを一つずつ読み取って移動力をマイナスしたり移動不可にしたり、高さがジャンプ可能値を下回ってたら移動不可とかそこらへんを総当たりで全歩行可能範囲内でしらみつぶしにやり出したら真顔になる。
正面見下ろし型だったら素直に組めるんですけど、クォータービューがね…
正面だったら一歩上に移動したらX座標-1ってシンプルな計算になるんですけど、クォータービューだと一歩上に移動したらXY座標-0.5-1っていう二次元的な見方になっちゃうからね。そらフリゲでクォータービューのシミュレーションほとんど見ないわけだわ…面倒くさすぎる。
で、それはこのゲームを作る前から分かってました。
だからまずこの鬼門を超えられるかどうかで本腰入れるか決めようと思って。
正式に新規ゲーム製作始めたって言わなかったのはそれが原因です。
そんだけ自信が無かった。
ウォーシミュ系のプログラムはナメちゃいかん。
あれはマジでやばいやつや。
つまり、ここを越えられたらGOサイン出すってことです。
駄目だったら素直に作るのやめます。
気合入れてかないとですね。
まぁここを超えても射線計算とかAIとか他にも山場は腐るほど出てくるけど…
で、ここ数日ずっと難解なパズルを組み続け…
「もう駄目だぁ…おしまいだぁ…」と何度も絶望し。
かろうじて移動プログラムは組めました。たぶん奇跡が起こったとおもう。
試しにゲーム上で出してみると…
いけてる…
まずは3歩でやってみたけどFPSも問題ないし100回出したり消したりしたけど大丈夫そう。透明度もフレーム毎に変化させてるけどひょっとしていけるか?
さぁ…
ここからがドキドキテストタイムの始まりだ。
いったいコイツは何歩まで出しても大丈夫なんだ?
5歩…
8歩…
ええいまどろっこしい!2倍の16歩だドン!!
い、いけてる…
いけてない? これ?
いいの? いっちゃっていいの?
調子こいて32歩までやったけどマップ全部埋まってても問題なく動いてる。
32歩って画像2113枚だよ…? マジでいいの? めっちゃ平然としてるけど…
スプライト1枚にビットマップ2100枚映してるんじゃないんだよ?
そういうタイルマップ的なアレじゃないんだよ?
ビットマップ1枚を映したスプライト2100枚を出してるんだよ?
イベントのキャラチップを2000体出してるようなもんなんだよ?
怖くなってチェックしてみましたが、ちゃんとブロック1枚1枚のXYZ座標は生きているみたいだしそれぞれ毎フレーム別々に更新してるっぽい。2000枚のスプライトの座標や透明度を1枚毎フレーム更新して大丈夫なのか…
マジでいいんだ…
これならテレポでマップ全域にブロック出しても大丈夫そう。
ていうかMVすごくね?
こんなんRGSSでやったら絶対固まってるって。
ムゲンちゃん1万超えて悲鳴上げてたもん。
javascriptっていうかpixi.jsすごいっすね…
MVのバージョン1.6に上げたら軽くなるって話聞いてたから最初っから1.6だったんですけど、これはマジですごいっすわ…
まあブラウザ系の宿命としてキャッシュ周りが難しい所ですけど、MV触って初めて感動したかもしんない。
今回の難題さえクリアできれば、あとは努力で何とかなるでしょう(フラグ)
とりあえず今までずっとスクリプトメインにいじってましたけど、そろそろゲームオブジェクトを用意しないとデータ空っぽのままだ。
ちなみに今回はツクールのデータベースは使いません。
はっきりいって、アレを使う意味と価値が見いだせないの。
ボクたちツクラーはもうそろそろ ”卒業” するべきなんだ…
あの忌まわしき ”データベース” の ”呪縛” から…
そこらへんの話はまた次回、ねっちりみっちりと語りたいと思います。
10/2までの拍手お返事です。
■敵が使ってたチート技をこっちも使えるようになるとワクワクしますよね
それこそがロマンなんだとおもう。げーむはろまんがないとね
■やっぱゲーム作りは楽しいぜ!
■キーロッドのレシピ用意すれば良いかなぁっておもってる
■見た目のUIが同じなのに挙動がゲームごとに違うのは宜しくないですねぇ
せめてメニュー画面がまるっとオリジナルだったら困惑しなくても済むんでしょうけど、なかなか難しいところでしょうね
■自分もリメイク版はやってないんですけど、騎士剣装備できるらしいですね
まあでも育てる手間考えたらもう暗黒騎士になれてる時点でバランス崩壊してるだろうからなぁ…
■そもそも本編はラストイエスタディを使うまでもなく全ての敵を瞬殺できるから出番が無い的なアレなんですよね。ダークえのきッズをしばき倒すくらいしか出番が無いというか…
■ネ、ネタが思い浮かばなかったわけじゃないんだからね!
■んなこと言われても描かんぞ!
■射線計算なぁ…ぜったい鬼門でしょアレ
今からもうガクガクブルブルですよ。こわいよぉ~!
■なんか久々に製作日誌書いてるきがする
いや~帽子作り終わってな~んもゲーム作ってなかったからな~
■そんな姿に魅了されたくないわ!
■やればやるほど新しい楽しさが発見できるスルメゲーですね
結局MV始める前に4周くらいしましたもん
■FFTのメニューは安心感みたいなのがあるんですよねぇ
実家に帰ってきたような、そんなホッとする安心感がある
でもタイトルでニューゲーム指してるUIだけは許せねえ…
■3年かぁ…まあなるべく早く完成させたいとはおもってる
とりあえず汎用ジョブ36キャラ分のドット絵とアクション全部作らないとな!
■時間の取り合いですもんね
ゲームも油断してたら別の娯楽に時間取られちゃうわけですよ
■ヨウコのカットイン画像が気に入らないからその修正するついでにキーロッドのレシピ入手するようにしとこうかしら…それ以外の修正はもう何やりゃいいか忘れまくってるけど
■スターシステムというか、名前と外見が同じ別キャラとして出す感じになるとおもうレベッカ
■メルさまのおぱんちゅ言いたかっただけやろ!
■よし… (^q^)HDでどうだ!
■なんかどっかできいたことあるな!
■ディスガイアも面白かったですねぇ。微妙にサガ要素が入ってる感じがして楽しかった思い出
■さすがに昔のゲーム過ぎるからお勧めはしにくい…
もうすぐ25周年らしいからそん時にひょっとして何かやってくれるかも
■そらもう当然知ってますよ。ただしあたしゃプレイする側じゃなくてイジる側ですがね。公開はせず個人で楽しむ範囲内で
■リザリカってジェム枠を半分埋めるから大胆な戦略が組みにくくなる弱点があるんですよね。大抵リザリカで何とかなるバランスになってるけど、究極決戦になると通用しにくくなっちゃうというか
クリア特典の帽子解放のやつテンション上がりますね
意味もなく出したりしてます