Twitter @HigenekoTwitter #XNA
上の画面はテクスチャのプロパティ画面です。Content Processorの脇に+のついた四角いマークに気づいたでしょうか?
クリックすると複数のパラメーターが表示されます。これがXNA GS 2.0の新機能の一つであるプロセッサパラメーターです。XNA GSE 1.0では複数の複数のプロセッサを書く必要がありましたが、XNA GS 2.0ではひとつのパラメーターつきのプロセッサを書くだけで、どのようにコンテントがプロセスされるかを指定できるようになりました。
Textureプロセッサには以下のパラメーターが設定できます。
パラメーター名
用途
Modelプロセッサでは以下のパラメータが設定できます。
プロセッサパラメーターは自分で作ったプロセッサでも簡単に使えるようになっています。ちなみにコンテントパイプラインを拡張するのに便利な"Content Pipeline Extension Library (2.0)"テンプレートがXNA GS 2.0では追加されました。またカスタムプロセッサや、カスタムインポーターの雛形となるContent Processor、Content Importerテンプレートをソースコード追加時に指定できるようになりました。
プロセッサパラメーターをカスタムプロセッサへ追加するのは簡単でプロパティを宣言するだけです。
[ContentProcessor(DisplayName = "ねこプロセッサ")] public class NekoProcessor : ContentProcessor<TInput, TOutput> { // プロセッサパラメーター public bool NekoMode { get { return nekoMode; } set { return nekoMode = value; } } bool nekoMode = false;
このままでは味気ないので、以下のようにアトリビュートを指定することによってプロパティ画面でより読みやすい状態にすることができます。これらのアトリビュートはSystem.ComponentModel内で宣言されています。
// 規定値の指定 [DefaultValue(false)] // 表示される文字列の指定 [DisplayName("ねこモード")] // パラメーターの説明 [Description("Trueにすると、なんとなくねこっぽくなります")] public bool NekoMode {
このプロセッサをコンパイルすると、プロパティ画面では以下のようにパラメーターの説明つきで分かりやすい表示になります(説明自体が分かりやすいかどうかは別問題ですが…)。
今まではどんなに小さなパラメーターでも直接コードで変更するか、インポーターを介して読まないといけなかったのですが、プロセッサパラメータを使うことでそういった煩雑な作業をする必要が大幅に減ることになるでしょう。
原文URL
http://blogs.msdn.com/shawnhar/archive/2007/11/26/content-processor-parameters-in-xna-game-studio-2-0.aspx
PingBack from http://recoveryandforensic.net/?p=2849
以前紹介した 英数字以外の文字列表示方法 はコンテントパイプラインの全体の流れを説明するという目的もあったので複雑なつくりになっていました。RPGやテキストベースのアドベンチャーゲームなどの大量のテキストデータを扱う場合は、こういったものは必須になってきますが、今回はXNA
以前紹介した 英数字以外の文字列表示方法 はコンテントパイプラインの全体の流れを説明するという目的もあったので複雑なつくりになっていました。RPGやテキストベースのアドベンチャーゲームなどの大量のテキストデータを扱う場合は