前回は、Unity のアセット TopDown Engine のサンプルゲームの一つ KoalaDungeon に最初から用意されているパレット KoalaTilePalette を用いてマップを編集する方法を紹介しました。
今回は 2 回前に import した 2D Tilemap Extras に含まれている便利な機能付きタイルの一つ「Weighted Random Tile」を紹介します。
※ Unity は 2021.3.14f1、TopDown Engine は 3.1.1、2D Tilemap Extras は 2.2.2 です。
Weighted Random Tile とは
前回 Unity プロジェクトに import した 2D Tilemap Extras に含まれている Scriptable Tiles の一つです。
Scriptable Tiles とは、「Scriptable Tiles | 2D Tilemap Extras | 1.5.0-preview」によると
Scriptable Tiles are Tiles which you script which adapt to the position and conditions of the Tilemap it is placed and displays the relevant Sprite there.
Google 翻訳
Scriptable Tiles は、配置されたタイルマップの位置と条件に適応し、そこに関連するスプライトを表示するスクリプトを作成するタイルです。
https://docs.unity3d.com/Packages/com.unity.2d.tilemap.extras@1.5/manual/Tiles.html より
ということから、ユーザが具体的な設定を行うことで作成される、特定の機能を持ったタイルと考えられます。
今回紹介する Weighted Random Tile は、複数のタイルの中から、ランダムに選んだスプライトのタイルを配置できます。
スプライトの選択率は Weight (重み) に設定した数値が大きいほど確率が高くなります。
パレット上では絵柄は一つに見えますが、実際に塗ると、指定した中から毎回ランダムに選ばれたスプライトが表示されたタイルが塗られます。
Weighted Random Tile のタイルの探し方
実際に TopDown Engine のサンプルゲーム KoalaDungeon の KoalaTilePalette で Weigheted Random Tile のタイルを選んでみましょう。
タイルパレットのタイルを選択するだけでは、 Inspctor ウィンドウにその情報は表示されません。
タイルパレットでタイルを選択したあと、上の灰色の領域で右クリックするとポップアップメニューが出るので [Select Tile Asset] を選択します。
[Select Tile Asset] メニューを選択すると、タイルパレットで選択中のタイルに対応するアセットが Project ウィンドウに表示・選択され、Inspctor ウィンドウにその設定内容が表示されます。
タイルパレットにたくさんタイルがあると探すのが大変かもしれませんが、少なければこの方法で Weighted Random Tile の機能と設定を持ったタイルを見つけられるでしょう。
Weighted Random Tile で使ってみる
サンプルのパレット KoalaTilePalette の中から Weighted Random Tile 機能を持つタイルを見つけたので、早速タイルマップ上で使って動作を確認します。
ペイントブラシ、塗りつぶし、矩形ツールでタイルマップ上で塗ってみると、候補リストのスプライトがランダムに選ばれタイルが配置されました。
ランダムにタイルを配置する作業も、手動ではいちいちパレットから選択し直して塗る必要があったり、ランダムとはいいつつ癖がでてしまったりして手間がかかります。
Weighted Random Tile を使えば、出現率の重みづけもできて簡単にランダムに選んだ絵柄のタイルを配置できます。
今回はここまで
今回は 2D Tilemap Extras に含まれている Weighted Random Tile の実際の動作について紹介しました。
次回は、独自の Weighted Random Tile の作り方を紹介します。
コメント