XPとVX系のタイルの違い その3
一番重要なタイルIDについて。
まずはXPとVX系すべてで共通するオートタイルの中身。
オートタイルは周囲のタイルで自動に形が変わるタイルですが、
これはエディタ側の機能であってゲーム側には自動で形を変える機能はありません。
ゲーム側にあるのはオートタイルを以下のような48パターンのタイルに変更し、
その中からIDで指定されたタイルを標示しているだけです。

とりあえず覚えておきたいのは、ひとつのオートタイルにつき48のIDが使われていると言うことです。
次に全体のID割り当てについて。
XPの場合、0~47番は何もないタイルとして設定されています。
48番から48区切りでオートタイルのIDになっています。
48~95、96~143、・・・最後が336~383。
通常のタイルセットのIDがこの続きとなり、左上から右に384~となります。
こちらはひとつのタイルにつき、IDはひとつです。
VXAceの場合、タイルIDの順番がちょっとややこしいです。
まずタイルセットBが0~となっており、B以降のタイルセット一つにつき256のIDが使われています。
セットBが0~、セットCが256~、セットDが512~、セットEが768~。
そして1024~1535までは不明です。たぶん使われていません。
1536~1663がセットAのパーツ5になります。
オートタイルではないので、タイルごとに1つのIDです。
さらに2047までも不明です。これもたぶん使われていません。
2048からがオートタイルとなります。
パーツ1が2048~、パーツ2が2816~、パーツ3が4352~、パーツ4が5888~。
で、最後にXPからVXAceにIDを変換するときの目安。
まず通常のタイルセットはXPが384~、VXAceが0~となっているので
単純に-384すればいいように思えますが、
XPの素材ではID384が何もないタイルではないので空けなければなりません。
ID384が何もないタイルに出来るのであれば384を引き、
出来なければ128引いてセットCからを使うということも出来ます。
ちなみにアクイトアイでは後者を使っています。
オートタイルについてはXPが48~、VXAceが2048~となっているので+2000ですが、
前回の記事に書いたとおりアニメーションを使うタイルによって値が変わります。
アニメーションしないタイルはパーツ2の2816~なので、
それとの差分を加算する必要があります。
IDの大まかな説明は以上です。
改めて思うのは、やっぱり素材化は無理ですね・・・
まずはXPとVX系すべてで共通するオートタイルの中身。
オートタイルは周囲のタイルで自動に形が変わるタイルですが、
これはエディタ側の機能であってゲーム側には自動で形を変える機能はありません。
ゲーム側にあるのはオートタイルを以下のような48パターンのタイルに変更し、
その中からIDで指定されたタイルを標示しているだけです。

とりあえず覚えておきたいのは、ひとつのオートタイルにつき48のIDが使われていると言うことです。
次に全体のID割り当てについて。
XPの場合、0~47番は何もないタイルとして設定されています。
48番から48区切りでオートタイルのIDになっています。
48~95、96~143、・・・最後が336~383。
通常のタイルセットのIDがこの続きとなり、左上から右に384~となります。
こちらはひとつのタイルにつき、IDはひとつです。
VXAceの場合、タイルIDの順番がちょっとややこしいです。
まずタイルセットBが0~となっており、B以降のタイルセット一つにつき256のIDが使われています。
セットBが0~、セットCが256~、セットDが512~、セットEが768~。
そして1024~1535までは不明です。たぶん使われていません。
1536~1663がセットAのパーツ5になります。
オートタイルではないので、タイルごとに1つのIDです。
さらに2047までも不明です。これもたぶん使われていません。
2048からがオートタイルとなります。
パーツ1が2048~、パーツ2が2816~、パーツ3が4352~、パーツ4が5888~。
で、最後にXPからVXAceにIDを変換するときの目安。
まず通常のタイルセットはXPが384~、VXAceが0~となっているので
単純に-384すればいいように思えますが、
XPの素材ではID384が何もないタイルではないので空けなければなりません。
ID384が何もないタイルに出来るのであれば384を引き、
出来なければ128引いてセットCからを使うということも出来ます。
ちなみにアクイトアイでは後者を使っています。
オートタイルについてはXPが48~、VXAceが2048~となっているので+2000ですが、
前回の記事に書いたとおりアニメーションを使うタイルによって値が変わります。
アニメーションしないタイルはパーツ2の2816~なので、
それとの差分を加算する必要があります。
IDの大まかな説明は以上です。
改めて思うのは、やっぱり素材化は無理ですね・・・
スポンサーサイト
XPとVX系のタイルの違い その2
下記のスクリプトを更新しました。
選択肢拡張
遅くなってしまいましたが、報告のあった不具合を修正しました。
「選択肢のカーソル位置記憶」という機能を使用した状態だと選択肢の内容が更新されないため、
半透明にする描写が正常に機能しない場合があるという不具合でした。
報告ありがとうございました。
前回の続き
オートタイルの違い。
まず用意する画像の規格が違うのは、ヘルプを見ると分かると思います。
規格の変換については、たぶん検索するとツールが見つかるのでそちらを使用してください。
XPとVX系では、サイズが違うだけでなく扱い方も違います。
XPは好きなオートタイルを7つまで選べるようになってます。
VX系はタイルセットAの規格に合わせて、まとめる必要があります。
で、問題はアニメーションさせるタイルの扱い。
XPではオートタイルを横に複数並べればアニメーションするのに対し、
VX系ではタイルセットAのうちパーツ1しかアニメーションしません。
つまり、XPの7つまで設定できるオートタイルのうち、
どれをパーツ1に変換し、どれをパーツ2以降にするかを先に決めなくてはなりません。
VX系ではかなりの種類のオートタイルが用意されていますが、
XPからの変換を使うと7種類しか使用できないだけでなく、
アニメーションするタイルとしないタイルの比率まで制限されます。
これも考えてマップで使用するオートタイルを選ばないと変換できないです。
マップ作りで気をつけるのはこれくらい。
次回は細かな仕様について。
選択肢拡張
遅くなってしまいましたが、報告のあった不具合を修正しました。
「選択肢のカーソル位置記憶」という機能を使用した状態だと選択肢の内容が更新されないため、
半透明にする描写が正常に機能しない場合があるという不具合でした。
報告ありがとうございました。
前回の続き
オートタイルの違い。
まず用意する画像の規格が違うのは、ヘルプを見ると分かると思います。
規格の変換については、たぶん検索するとツールが見つかるのでそちらを使用してください。
XPとVX系では、サイズが違うだけでなく扱い方も違います。
XPは好きなオートタイルを7つまで選べるようになってます。
VX系はタイルセットAの規格に合わせて、まとめる必要があります。
で、問題はアニメーションさせるタイルの扱い。
XPではオートタイルを横に複数並べればアニメーションするのに対し、
VX系ではタイルセットAのうちパーツ1しかアニメーションしません。
つまり、XPの7つまで設定できるオートタイルのうち、
どれをパーツ1に変換し、どれをパーツ2以降にするかを先に決めなくてはなりません。
VX系ではかなりの種類のオートタイルが用意されていますが、
XPからの変換を使うと7種類しか使用できないだけでなく、
アニメーションするタイルとしないタイルの比率まで制限されます。
これも考えてマップで使用するオートタイルを選ばないと変換できないです。
マップ作りで気をつけるのはこれくらい。
次回は細かな仕様について。
XPとVX系のタイルの違い その1
「アクイ ト アイ」の製作では、XPのエディタでマップを作ってVXAceで読み込むと言う
ちょっと強引なことやって複雑なマップを作ったりしてました。
なぜこんな面倒なことやってたかというと、XPではタイルを3層自由に配置できるため、
立体的なマップを作るのに適していたからです。
とはいっても、ただ拡張子を変えるだけでは読み込むことは出来ません。
結構中身が違うので、VXAceの規格に合わせてXPのデータを変える必要があります。
で、それぞれの中身についていろいろと調べたわけですが、
そろそろどっかにメモしとかないと忘れちゃいそうなので
今日はそれについて書いておこうと思ったわけです。
別にメモ帳に書いて保存しておいてもいいのだけれど、
せっかくブログあるんだしブログに書きます。
メモ書きみたいな内容なので、分からない人にはさっぱり分からないし
どうでもいい人にはどうでもいい内容です。
ちなみに、XPマップをVXAceで読み込むスクリプトは素材化する予定はありません。
というのもXPのマップがそのまま使えるわけではなく、色々と制限がつくので
その制限を意識してマップを作らないと読み込めないため、めんどくさいのです。
● プライオリティの違い
画面にマップを表示するクラスをTilemapクラスといいます。
それに使用するタイルセットの画像やマップデータを設定することで、
エディタで作ったマップが画面に標示されます。
XPもVXAceも、タイルマップの層の数は基本的に同じ3層です。
なら簡単に読み込めるんじゃないかと思うかもしれませんが、
結構細かな違いがあるわけです。
その違いの一つが、プライオリティの扱いです。
プライオリティというのはXPで使われていた名称で、
VXからは「通常キャラの上に表示」されるタイルとなっています。
プライオリティの方が書きやすいので、ここはプライオリティと書きます。
まずVXAceのプライオリティについて。
VXAceでは単純にプライオリティを設定したタイルがキャラの上に標示されます。

分かりやすい構造になってます。
が、プライオリティが設定されたタイルが全てキャラの上に表示されるかといったらそうではありません。
正確には、
「3層目に設置されたタイルでプライオリティが設定されているものがキャラの上に表示される」
です。
こうなっているのはエディタを見るとわかるのですが、
プライオリティが設定できるのはタイルセットのB~Eまでです。
そしてこのタイルセットB~Eは、3層目にしか配置できないようになっています。
これがXPでは、プライオリティが設定されているタイルを1層目や2層目にも配置でき、
ちゃんとキャラの上に標示されます。
つまり、XPのエディタで自由に配置できるといっても、
VXAceでは3層目にプライオリティ設定したタイルを設置しないとキャラの上に表示されないわけです。
ここがマップ作りで気をつけなければならなかった点です。
ですが、裏を返せばプライオリティが設定してあっても、1層目や2層目に配置すれば
キャラの下に標示されるということでもあります。
これを利用すれば、同じタイルでもキャラの下に標示したり上に表示したりできます。
(ただし、通行判定もいじる必要あり)
とりあえずプライオリティについては以上です。
他についてはまた近いうちに書く予定。
ちょっと強引なことやって複雑なマップを作ったりしてました。
なぜこんな面倒なことやってたかというと、XPではタイルを3層自由に配置できるため、
立体的なマップを作るのに適していたからです。
とはいっても、ただ拡張子を変えるだけでは読み込むことは出来ません。
結構中身が違うので、VXAceの規格に合わせてXPのデータを変える必要があります。
で、それぞれの中身についていろいろと調べたわけですが、
そろそろどっかにメモしとかないと忘れちゃいそうなので
今日はそれについて書いておこうと思ったわけです。
別にメモ帳に書いて保存しておいてもいいのだけれど、
せっかくブログあるんだしブログに書きます。
メモ書きみたいな内容なので、分からない人にはさっぱり分からないし
どうでもいい人にはどうでもいい内容です。
ちなみに、XPマップをVXAceで読み込むスクリプトは素材化する予定はありません。
というのもXPのマップがそのまま使えるわけではなく、色々と制限がつくので
その制限を意識してマップを作らないと読み込めないため、めんどくさいのです。
● プライオリティの違い
画面にマップを表示するクラスをTilemapクラスといいます。
それに使用するタイルセットの画像やマップデータを設定することで、
エディタで作ったマップが画面に標示されます。
XPもVXAceも、タイルマップの層の数は基本的に同じ3層です。
なら簡単に読み込めるんじゃないかと思うかもしれませんが、
結構細かな違いがあるわけです。
その違いの一つが、プライオリティの扱いです。
プライオリティというのはXPで使われていた名称で、
VXからは「通常キャラの上に表示」されるタイルとなっています。
プライオリティの方が書きやすいので、ここはプライオリティと書きます。
まずVXAceのプライオリティについて。
VXAceでは単純にプライオリティを設定したタイルがキャラの上に標示されます。

分かりやすい構造になってます。
が、プライオリティが設定されたタイルが全てキャラの上に表示されるかといったらそうではありません。
正確には、
「3層目に設置されたタイルでプライオリティが設定されているものがキャラの上に表示される」
です。
こうなっているのはエディタを見るとわかるのですが、
プライオリティが設定できるのはタイルセットのB~Eまでです。
そしてこのタイルセットB~Eは、3層目にしか配置できないようになっています。
これがXPでは、プライオリティが設定されているタイルを1層目や2層目にも配置でき、
ちゃんとキャラの上に標示されます。
つまり、XPのエディタで自由に配置できるといっても、
VXAceでは3層目にプライオリティ設定したタイルを設置しないとキャラの上に表示されないわけです。
ここがマップ作りで気をつけなければならなかった点です。
ですが、裏を返せばプライオリティが設定してあっても、1層目や2層目に配置すれば
キャラの下に標示されるということでもあります。
これを利用すれば、同じタイルでもキャラの下に標示したり上に表示したりできます。
(ただし、通行判定もいじる必要あり)
とりあえずプライオリティについては以上です。
他についてはまた近いうちに書く予定。