カテゴリー

















Z座標を制す者はゲームを制す

2021/10/01

さて、最初の難関になる移動処理をする前に、ここでゲームの画像処理の大まかな構造を決めておかなければいけません。

まず考えないといけないのが「Z座標」
キャラの重なりに関する仕組みです。
「Z座標を制す者はゲームを制す」というくらい重要な基幹部分なのです。

正面見下ろし型のウォーシミュであればたぶんツクールデフォで良い。
しかしクォータービューの場合はそうもいかない。

例えば移動する時、移動範囲が表示されますよね。
仮にフォトショ上で画像を作ってみます。
画像610.png
よく見ると地形の下に表示されているブロック画像がありますね。
画像611.png
これはつまり、スプライト画像は1ブロックごとに作ってZ座標を指定しなければいけません。

もしブロック画像のZ座標を個別に設定しなかった場合はこうなります。
画像616.png
ここまでなら「ふ~~ん、そうだね」で済む話。
でも実はコレが大きな問題になってくるんです。

何が問題なの?って話ですけど、大問題です。
ツクールのマップチップは基本的にスプライト画像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とか他にも山場は腐るほど出てくるけど…

で、ここ数日ずっと難解なパズルを組み続け…
「もう駄目だぁ…おしまいだぁ…」と何度も絶望し。
かろうじて移動プログラムは組めました。たぶん奇跡が起こったとおもう。

試しにゲーム上で出してみると…
画像612.png
いけてる…
まずは3歩でやってみたけどFPSも問題ないし100回出したり消したりしたけど大丈夫そう。透明度もフレーム毎に変化させてるけどひょっとしていけるか?

さぁ…
ここからがドキドキテストタイムの始まりだ。
いったいコイツは何歩まで出しても大丈夫なんだ?

5歩…
画像613.png

8歩…
画像614.png

ええいまどろっこしい!2倍の16歩だドン!!
画像615.png
い、いけてる…
いけてない? これ?
いいの? いっちゃっていいの?

調子こいて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までの拍手お返事です。
●いまドーラ編で,これが終わればヨウコ編に行けます.

クリア特典の帽子解放のやつテンション上がりますね
意味もなく出したりしてます
■敵が使ってたチート技をこっちも使えるようになるとワクワクしますよね
それこそがロマンなんだとおもう。げーむはろまんがないとね

●隊長が活き活きしてる! わーい!!
■やっぱゲーム作りは楽しいぜ!

●引き継ぎでプリムを仲間にした時装備、アイテムにキーロッドが入ってなかった場合プリムの罵倒付きで再入手とかどうでっしゃろ隊長
■キーロッドのレシピ用意すれば良いかなぁっておもってる

●ツクールは装備画面でPageUp/Downで別のキャラに移れるやつと
できないやつがあって統一されてないのちょっとややこしいよね
■見た目のUIが同じなのに挙動がゲームごとに違うのは宜しくないですねぇ
せめてメニュー画面がまるっとオリジナルだったら困惑しなくても済むんでしょうけど、なかなか難しいところでしょうね

●えぬくん僕リメイク版やってないから暗黒騎士なんてジョブ知らなかったよ。ガフガリオンの立場ないね。暗黒騎士強いね、詠唱ださいけど。でも無印で期待したような、ガフガリオンを倒した時にアビリティドロップしてラムザくんに継承させるような渋めの感じの方が僕は好きだよ
■自分もリメイク版はやってないんですけど、騎士剣装備できるらしいですね
まあでも育てる手間考えたらもう暗黒騎士になれてる時点でバランス崩壊してるだろうからなぁ…

●> んでラストイエスタデイが思ってたより使われなくてちょっと寂しいかな
そうかな… Youtubeで「新約 帽子世界」を検索すると、みんながダークえのきさんとかクオストワットさんとかマリスレーゼ様とかラストイエスタデイを使って無慈悲に殴っていましたよ… それでみんなたくさん使うと思ったけど違うんじゃないのか…
■そもそも本編はラストイエスタディを使うまでもなく全ての敵を瞬殺できるから出番が無い的なアレなんですよね。ダークえのきッズをしばき倒すくらいしか出番が無いというか…

●>って感じで、各香水の名前の一部を取って組み合わせたものです。
言われてみればそうだな!想像もできなかったよ ww
■ネ、ネタが思い浮かばなかったわけじゃないんだからね!

●ヨウコさんがソフトボールユニフォームを着た姿が気になります
■んなこと言われても描かんぞ!

●>コマンド系
ここに弓(投石)やクロスボウ(銃)などが入ると、一気に作成難易度が跳ね上がりそう
剣と魔法に限定したり、射線を遮蔽物で区切るのも手でしょうか

え、弓兵は双剣を使う猛者で、ランサーは自害するの?
■射線計算なぁ…ぜったい鬼門でしょアレ
今からもうガクガクブルブルですよ。こわいよぉ~!

●遊ぶ側とは全く違うUIへの意識が「ほぉぉぉん」ってなるお話。こういうお話大好き
いずれ慣れれば無意識に行う操作だからこそ、1手を大事に簡潔にわかりやすくってやつなんですねぇ
道路のアスファルトに感謝したくなるような、当たり前を当たり前にするためにUIにかけられた労力と歴史を少し感じました。奥が深いぜぇ…
■なんか久々に製作日誌書いてるきがする
いや~帽子作り終わってな~んもゲーム作ってなかったからな~

●> ●メリッサ様は裸足で歩くんですか?
> ■そらもう裸で腰に手を当てながら牛乳をゴキュゴキュよ
これがまさにメリッサ様の無差別魅了攻撃なのか?!
■そんな姿に魅了されたくないわ!

●久しぶりに覗いたら隊長がFFTの話をしてらっしゃる!
FFTは戦略研究や編集のレベルが高いプレイ動画が定期的に上がってくる印象
最近だと最小クロッククリアとか一人旅ノーダメージクリアとか。
それだけゲームとしての完成度が高いってことなんでしょうねぇ
■やればやるほど新しい楽しさが発見できるスルメゲーですね
結局MV始める前に4周くらいしましたもん

●FFTのメニュー系のUIいいですよね。色合い,フォント,ウィンドウの質感などの外観も素敵だし普通遊びやすくてめっちゃ好きです。
UIにこだわるならぜひ「オブジェクト指向UI」で調べてみてください!アプリ系の話ばかり出てくるのですが多分ゲームのUIにも活かせると思います!
ソシオメディアっていう会社の「ヒューマンインターフェース ガイドライン」とかも面白いかもです。(ゲームと関係ないのも多いですが)
■FFTのメニューは安心感みたいなのがあるんですよねぇ
実家に帰ってきたような、そんなホッとする安心感がある
でもタイトルでニューゲーム指してるUIだけは許せねえ…

●隊長の文章って用語知らなくても調べてもう一回見てみようと思わせるちからがあるっすよね

だから開発3年に早めてね!
■3年かぁ…まあなるべく早く完成させたいとはおもってる
とりあえず汎用ジョブ36キャラ分のドット絵とアクション全部作らないとな!

●確かに帽子っぽい名前でしたね、ルサンヴィラージュ

確かに働き出してからゲーム時間減った&やれる娯楽が増えてしまいましたね、ワタシ
■時間の取り合いですもんね
ゲームも油断してたら別の娯楽に時間取られちゃうわけですよ

●> キーロッドってプリムに装備させてなくて宝石箱に入れなかったらそれまでっぽいのに再取得できないのはやっぱ不親切かなぁ…

これ読んで思ったんですが,うっかり解体しちゃったと思い込んでたんですけど,斧を持たせた後キーロッドを宝石箱に入れてなかったのかもしれないです.

不親切というほどではないと思いますが,他の部分が親切設計なので油断してるプレーヤー(私とか)だとやらかしてしまいそうですね
■ヨウコのカットイン画像が気に入らないからその修正するついでにキーロッドのレシピ入手するようにしとこうかしら…それ以外の修正はもう何やりゃいいか忘れまくってるけど

●>■ガラテアは出ないけどレベッカは出るかもしんない
召喚魔法とかですかね
タクティクスオウガでは、戦力を追加してくれる魔法だと思って空きマスへ発射すると…ウボァー
■スターシステムというか、名前と外見が同じ別キャラとして出す感じになるとおもうレベッカ

●とても感銘を受けました
こうしてみると我々はUIに甘えてしまっていたかもしれませんね
使いやすいものかどうかも考えずにそういうものと自然に受け入れてしまっていた
これはUIを改善できないプレイヤー視点だけの傲慢だったのかもしれません
これからは視野を広げメルさまのおぱんちゅも広げていくことを誓います
■メルさまのおぱんちゅ言いたかっただけやろ!

●qHDって言われると1/4HDと4HD(quadHD)の区別がめんどくさい気がします
何か最新の呼び名を開発しましょう
■よし… (^q^)HDでどうだ!

●↓/←+Kで3マス先まで移動しながら攻撃!穴も飛び越えるぞ!!
■なんかどっかできいたことあるな!

●SRPGで落とし穴とかリングアウトあったらひどいと思ったけど
そういえばディスガイアの即死地相とか似たようなもんだった
■ディスガイアも面白かったですねぇ。微妙にサガ要素が入ってる感じがして楽しかった思い出

●えぬさんの投稿を見るたびにFFTに興味がでてきますね。
この機会にやってみようかな。
■さすがに昔のゲーム過ぎるからお勧めはしにくい…
もうすぐ25周年らしいからそん時にひょっとして何かやってくれるかも

●これはとてもイリーガルで繊細な話題なので日誌で取り上げないでいただきたいのですが(以下略)
■そらもう当然知ってますよ。ただしあたしゃプレイする側じゃなくてイジる側ですがね。公開はせず個人で楽しむ範囲内で

●ようやくヨウコ編を始めたのですが,とにかく魔トちゃんが強くて苦戦しました.ケリー姉貴なしで倒すのにあんなに苦労するとは思わなかったです.それまで押し通してきたリザリカごり押し戦法をやめたらあっさり倒せて,ちょっと感動しました.
■リザリカってジェム枠を半分埋めるから大胆な戦略が組みにくくなる弱点があるんですよね。大抵リザリカで何とかなるバランスになってるけど、究極決戦になると通用しにくくなっちゃうというか

< プライバシーの侵害システム  | ページTOPへ |  コマンド系イジってる >