2D TOOLKIT におけるドットと座標の関係

20081224-2

3D空間における座標距離1は何ドット分?

もともと 2D TOOLKIT はファミコンぽい 2D シューティングゲームを作りたくて購入した自分としては、座標とドットの関係をはっきり把握しておく必要があるので調べてみました。

座標が1変化したら1ドット分動くのが理想なので、そういう設定を 2D TOOLKIT にしてやればいいわけです。

座標とドットの関係がはっきりすればレイアウトもしやすいし、良い事だらけです。

1ドット座標1つ分にする

では前回の記事「2D TOOLKIT でオリジナルボタンを作成する」で作成したスプライトコレクション sample006SC.prefab を編集して座標1つ分を1ドットに対応させてみます。

Unity を起動しましょう。前回保存したシーンファイル sample006.unity をダブルクリックすれば、清く正しくインストールした Unity ならば普通に起動するはずです。拡張子の関連付けに悪さした人は Unity が起動しない可能性がありますのでご注意ください(そんな人はいないか)
2dtk20131025-001

無事起動したら前回作成したボタンが読み込まれます。ではこのボタンに使われているスプライトコレクションを編集しましょう。Assets / sample006 をクリックし、sample006SC.prefab をクリックし、インスペクタの Open Editor… ボタンをクリックします。
2dtk20131025-002

スプライトコレクションの編集ウインドウが開いたら Settings をクリックします。次に Size で Pixels Per Meter が選択されている事を確認し、Pixels Per Meter の数値を 1 にします。

これは、1 メートルにつき何ドット? という設定です。Unity の世界では 1 メートルが座標1つ分になります。つまり、X 座標に 16 加算すれば 16 メートル分動いたという事になります。つまり 1 メートルが 1 ドットという設定になったわけですね。
2dtk20131025-003

※ 注意

ゲーム世界の 1 メートルと Unity の 1 メートルが一致しているなら良いですが、例えばゲーム世界の 16 ドットが 1 メートルとした場合、物理演算を使うと都合が悪くなります。具体的には見た目の落下速度とかが遅くなったりします。

物理演算のパラメータを微調整するのも手間なので現実世界の挙動に近づけたい場合は GUI 等ゲームに関係ないものは Pixels Per Metor を 1 に設定し、ゲーム内キャラクターは 16 ドットが 1 メートルの場合、Pixels Per Metor を 16 に設定しましょう。

Pixels Per Metor はスプライトコレクション毎に指定可能なのでうまく使い分けると混乱しなくて良いと思います。

どうしてこうなった!?

さて sample006SC.prefab に変更を加えてコミットするとこうなってしまいました。
2dtk20131025-004

フォントの Pixels Per Metor が 20 なのでスケールに差が出てしまったんですね。これも直してしまいたいと思います。

ボタンに使われているフォントは sample005 の時に作ったので Assets / sample005 フォルダの中にあります。

Assets / sample005 の中の MedamaFont.prefab をクリックし、インスペクタの Size が Pixels Per Metor になっている事を確認し、Pixels Per Metor を 1 に変更し、Commit… をクリックします。これでバッチリです。
2dtk20131025-005

「シェアする」

ツイートツイート