RPG Maker Auto Tilingの実装


8

私は現在Phaserと協力して、手続き的に生成されるゲームを作成しています。ゲームでRPGメーカーアートを使用したかった(参考として、RTPを使用している)。私はこの記事を偶然見つけました。自動タイルがどのように機能するかを分析しました。自動タイルについて説明している別の記事にリンクしているこの回答も偶然見つけました。

ここにあること、私はこのようなものをどのように実装するかわかりません。どのタイルセットが他のどのタイルセットに接続できるかを追跡する必要があると確信しています(つまり、一部のタイルは外側に草があり、内側に砂があります。そのため、この例では、「草"タイルは外側のタイルでした)。

私はマップジェネレーター(ここを参照)を作成しましたが、タイル領域間をシームレスに接続したいと考えました。たとえば、茶色の領域は「密な」領域(森、洞窟など)になります。紫色の領域は石の床で、緑色の領域は草です。このようなものに非常にうまく機能するタイルセットがあります:

ここに画像の説明を入力してください

それで、左上の草と、草に接続する3番目のタイルセットである石を使用します。

これらの種類のタイルセットを使用して自動タイリングを実装する場合、どのようなことを考慮する必要がありますか?実装するために確認できるアルゴリズムはありますか?



Tiledは、自動タイル実装を備えたオープンソースのマップエディターです。あなたはソースコードで実装を見つけることを試みることができます
フィリップ、

@Philipp TiledとRPGMakerの自動タイルのパラダイムは異なります。Tiledを使用すると、タイルの4つのコーナーを特定の地形タイプ(「砂」、「草」、「水」など)として指定し、それに基づいて一致するタイルを選択できます。RPGMakerでは、特定のタイプで囲まれたバリアント(たとえば、「砂の中の砂」、「草の中の水」など)であるタイルの中心を指定できます。レイヤーは、どちらの場合もこの制限に対処するために使用されます。もちろん、変革は可能です。ここでは、例としてREFMAP sand-inside-grass(草のパディング付き)を使用しています:i.imgur.com/Z343MVq.png
Martin

2
参考までに、RTPリソースは、それぞれのソフトウェアおよびRPG Makerの他のバージョンでの使用のみが許可されています。開発中のプレースホルダーとしては問題ありません、配布するために別のグラフィックセット(REFMAPセットやLiberated Pixel Cupに基づくグラフィックなど)に置き換える必要があります。
Martin Sojka、2015

頭を上げてくれてありがとう@MartinSojka-良くも悪くも、RPGメーカーは、タイル、フェイス、スプライト、エフェクトなどを扱うのに最適なアートの完全なセットを提供しますが、使用できるものを制限してきましたそれらを交換する時が来たら私のベースをカバーしてください。プログラミングをしているときに、アートを探すのに何時間も費やしたくなかっただけです。解放されたピクセルカップに関する情報をお寄せいただきありがとうございます。後で詳しく説明します。FWIW、私はこのゲームを売るつもりはありませんが、売るならアートを置き換えるつもりです。
セイリア2015

回答:


1

私はこれを(RTPを使用して)単純な(しかしかなり退屈な)方法で実装しました。

現在のセルのすべての隣接セルのリストを取得し、多くのifステートメントを使用して、タイルを4つの小さい/四分の一タイルとして描画しました。

私にとって、この方法はほとんど目に見えないエラーにつながりますが、いくつかのエッジケースをテストし、それに応じて修正することで解決できます。

RPGメーカーでソース画像と結果の画像を見る場合、ifステートメントを使用して(おそらく試行錯誤で)これを行うことができ、特定のクォータータイルの現在のケースが何であるかを特定し、それに応じて描画できるはずです。。

この方法はさらに改善でき、ビットマスク(jzxで言及)を使用して面倒な作業を減らすことができます。


あなたのコメントに答える:

クォータータイルのみをレンダリングすることで、可能性は劇的に減少します。

タイル上でタイルを処理する必要はありません。お互いにアルファブレンドまたはキーカラー化された異なるレイヤー上にある必要があるためです。

また、組み込みのネイバーが必要な理由はわかりませんが、ネイバーの計算では、おそらく何らかのマップ(ブレンドするペアのリスト)を使用して個別に処理できます。

通常、マップは静的で、画像は低解像度なので、パフォーマンスを心配する必要はありません。


可能性のある隣接するタイルごとに複雑さが増すまで、ビットマスクの使用に非常に熱心でした。RTPを見ると、いくつかのタイルを他のタイルに積み重ねることができ、一部のタイルにネイバーが組み込まれていることを考えると、考えられるケースの数を完全に収集することはできません。
セイリア2015

@Seirya編集済みの回答。
akaltar 2015

更新してくれてありがとう。ただし、上記のタイルセットを見ると、サンドオングラスタイルやストーンオングラスタイルなど、一部のタイルにネイバーが組み込まれていることがわかります。水のタイルなど、何にでも配置できるタイルの場合、これは実際には問題になりません。
セイリア2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.