F&Q
「 Target Ortho Size」と「Target Height」 とはなんですか?
2D Toolkitは、実行時にに必要な作業量を減らすため、スプライトとテキストメッシュのデータをプリプロセス(実行前処理)でターゲットサイズにします。
これらのパラメータは、ターゲットの表示解像度とカメラがなんであるかをシステムに通知します。
「Target Ortho Size」はスプライトを表示するカメラの正射影サイズを指します。
「Target Height」は殆どの場合、ターゲットの解像度の高さを指します。
これらは全て正しい値に設定しさえすれば、作成した全てのスプライトは「Pixel Perfect」になります。
異なるパラメータをもつ複数のカメラが同一シーンにある場合は、スプライトごとに表示するカメラの詳細を入力すれば、作成したスプライトは「Pixel Perfect」になります。
スプライトの「Pixel Perfect」にチェックを入れても、スプライトやテキストメッシュが「pixel perfect」になりません
複数のカメラがあると起きやすいです。たいていの場合、スプライトを表示するカメラのパラメーターをスプライトコレクションに設定すると解決します。
処理の後「ResetScale」ボタンを押して、スプライトのスケール(1,1,1)とすると、「pixel perfect」になります。
なぜ、スプライトとテキストメッシュには標準とは別のscaleがあるのですか?
Unity標準のtransformを使ってスケールしてしまうと、「Dynamic batching」は動作を止めてしまいます。
こういった理由からこれらのコンポーネントには別のスケール変数があります。
このスケールパラメータの設定を使えば、「dynamic batching」は正常に動作します
各オプションのパフォーマンス的なコストはどれくらいですか?
スプライトの基本は単にUnityのメッシュであり、独自の3Dプログラムでポリゴンを作成した場合と違いはありません。
スプライトやメッシュを更新したときのみにコストが発生します。たとえば、スプライトのIDや、カラー、テキストなどを変えた時です。
他よりも特にコストが高いものを以下にリストアップします。
異なる頂点数のスプライトへのID切り替え(メモリ割り当てが発生するため)。
これをランタイム上で行うのは非推奨です。これをしている場合は、潜在的な問題への警告として、スプライトアニメーションエディターに「warning」が表示されます。
テキストメッシュの最大文字数の変更はメモリ割り当てが発生します。ランタイムでするのはよくありません。
同じ頂点数のスプライトへのID切り替えや、スケール、カラーの変更は同じコストで、メモリ割り当ては発生しません。
スケールとカラーの変更コストは頂点数によります。「ダイシング」をしている巨大なスプライトでは、ランタイムでこれをするのは避けていください。
スプライトのインスタンスを大量に作成すると、フレームレートが急増します。どうすればいいでしょうか?
各スプライトのメッシュはランタイムで作成されます。
この方法はデータとしては最適で、実際に実行する変換処理も少ないと思っていますが、それでもパフォーマンスヒットがあります。
この問題を解決するには、ゲームの開始時にオブジェクトをあらかじめ作成して、プールしておくと良いでしょう。
この方法は、2DToolKitのシステムを使用するかにかかわらず、メモリ割り当ておよびガベージコレクションを避けるための方法として、モバイルプラットフォームでの一般的で良い解決方法です。
コード上でスプライトを作成するにはどうしたらいいですか
スプライトクラスは、コード上ででインスタンス化するためのものではありません。
実際のスプライトのコレクションの代わりにデータの塊への参照を使用し、これを実装するのはかなり厄介です。
一応方法はあります。スプライトを作るインターフェースについては、「 tk2dSpriteEditor.DoCreateSpriteObject() 」をチェックしてください。
ゲーム中でスプライトをインスタンス化する必要がある場合は、代わりにプレハブを設定することをお勧めします。
そうすることで、視覚的にスプライトを設定でき、ゲーム中でインスタンス化するときも全て正しく設定されることが保障されます。
名前から大量のスプライトを作る必要があるときは、単純にスプライトコレクション用のプレハブを一つ作成し、それをインスタンス化し、「GetSpriteIdByName() 」を使ってスプライトと切り替えます。
こうすることで、スプライトコレクションごとに1タイプのスプライトをプールできます。そして、必要な時に先述の方法でインスタンス化します。
1024×1024のテクスチャを作ったら、なぜかアトラスが2048×2048になりました。
基本的に「2d Toolkit」はテクスチャの周囲2ピクセルをパディングし、「iPhone 3g(s)」が自動的に行う「downsampling」に対応します。
これは、リニアフィルタリングがエッジ部分の正しく描画するのにも必要です。
ドット絵を書く場合で、フィルタリングを無効にしている場合は、「Sprite Collection」の「Pixel Perfect Point Sampled」をチェックしてください。
これで、テクスチャの周りのパディングが削除され、サイズはソースイメージと全く同じになります。
ただし、スプライトを拡大した時に滑らかにフィルタリングすることができなくなります。
tk2dTextMeshの「.text」「.color」を設定したのに、何も変化がありません。どうすればいいですか。
変更をコミットするには、 textmeshのCommit()をコールしてください。
同一フレームでテキストやカラー、サイズなどを変更する際に、手動でまとめてコミットすることで、一つの変更ごとにデータが再構成されることを回避しています。
「project」ウィンドウにある「.tk2d 」はなんでしょう。削除しても復活するのはなぜでしょうか?
「.tk2d」は、すべてのスプライトのコレクション、アニメーションやフォントのグローバルインデックスです。
それらのオブジェクトを見つけるために必要処理を高速化するために使用されます。
削除しても再生成されてしまうので、削除をしないでください。
スプライトをクリックしたときに、Unityが時々クラッシュします。
バージョン1.10以前に、「2d Toolkit」はプロジェクトから全ての「2d Toolkit 」オブジェクトを探すとしていました。
ご想像通り、プレハブが多数ある場合、これは非常に遅く、メモリを枯渇させます。
「 2d Toolkit」の1.10では、全ての「2d Toolkit」オブジェクトは 最初に使おうとしたときにインデックスが割り当てられます。
バージョン1.10では、はるかにメモリを使用量が少ないです。最新バージョンにアップグレードすることをお勧めします。
「Sprites」や「TextMeshes」の実装が気に入りません。自分で書きなおしたいのですが。
もちろん!気軽にどうぞ。任意の方法で改造するため、バックエンドからデータを入手可能です。
データの使用方法は「tk2dSprite.cs」と「tk2dTextMesh.cs」をチェックしてください。
ほぼ全てのデータは事前に計算済みで、ほぼ全てのデータを使用できます。
体験版はありますか?
製品の性質上、体験版の作成はかなりの労力がかかるため、むしろ製品の改善に努める予定です。
しかし, ダウンロードプレイ可能なwebプレイヤーでのデモを提供します。
ベータ版にはどうやってアクセスすればいいですか?
アセットストアの invoice number(請求番号)と、できれば「username」を添えて、我々にサポートメッセージを送ってくれれば、アクセス情報をお送りします。
「Glyph Designer」からデータをインポートするにはどうすればいいですか?
「2D Toolkit」は正式に「Glyph Designer」の全てのエクスポートオプションに対応しています。
「Sparrow」コンフィグだけは違う出力を生成してしまうので、「Cocos2D」か「EZGUI」のエクスポートオプションを使用することをお勧めします。
「JavaScript」から「2D Toolkit」にアクセスするにはどうすればいいですか?
全ソースを配布したいのですが、ユニティのパッケージは移動したファイルを無視してインポートします。
これを設定する唯一の確実な方法は、JavaScriptからアクセス可能な場所にいくつかのファイルを手動で移動することです。
一度だけ設定すれば、将来のアップデートでは自動的に正しいファイルに更新されます。
必要な手順は以下の通りです。
1. 「project」のルート直下に「Plugins」というフォルダ作成する。
2. 「Plugins」以下に下記のフォルダを作る。
- /Plugins/tk2d
- /Plugins/tk2d/Fonts
- /Plugins/tk2d/Gui
- /Plugins/tk2d/Sprites
3. 以下のように、各フォルダにファイルを移動する。移動は、Unity上から行うこと。
/Plugins/tk2d/Fonts
- tk2dFont
- tk2dFontData
- tk2dTextMesh
/Plugins/tk2d/Gui
/Plugins/tk2d/Sprites
- tk2dAnimatedSprite
- tk2dBaseSprite
- tk2dPixelPerfectHelper
- tk2dSprite
- tk2dSpriteAnimation
- tk2dSpriteCollection
- tk2dSpriteCollectionData
- tk2dStaticSpriteBatcher
最終更新:2011年11月12日 18:04