<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ひにけにXNA</title><link>http://blogs.msdn.com/ito/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>日本でXNA クリエーターズ クラブ オンラインサイトが開設</title><link>http://blogs.msdn.com/ito/archive/2009/07/23/cco-japan-grand-opening.aspx</link><pubDate>Fri, 24 Jul 2009 03:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9846987</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/ito/comments/9846987.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9846987</wfw:commentRss><description>&lt;h3&gt;XNA クリエーターズ クラブ オンラインサイトが更新&lt;/h3&gt;  &lt;p&gt;今日(北米時間の7月23日)にクリエーターズ・クラブ・オンラインサイトが更新されました。新しくなった内容は以下のとおりです。&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;日本語サイトの開設 &lt;/li&gt;    &lt;li&gt;ラーニング用のサンプルも日本語化 &lt;/li&gt;    &lt;li&gt;日本語版フォーラムの開設 &lt;/li&gt;    &lt;li&gt;Xbox LIVE インディーズ ゲームに名称変更 &lt;/li&gt;    &lt;li&gt;日本を含む新しい地域からのゲーム投稿受付開始 &lt;/li&gt;    &lt;li&gt;ゲーム販売価格の変更 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;遂に&lt;a href="http://creators.xna.com/ja-JP/" target="_blank" mce_href="http://creators.xna.com/ja-JP/"&gt;日本語サイト&lt;/a&gt;がオープンしました。サイトのインターフェースの他にもサンプルコードも日本語化されています。また、&lt;a href="http://forums.xna.com/forums/default.aspx?GroupID=16" target="_blank" mce_href="http://forums.xna.com/forums/default.aspx?GroupID=16"&gt;日本語フォーラム&lt;/a&gt;も開設されたので、日本語でXNA Game Studio、クリエーターズクラブに関する技術的な質問や要望をやり取りすることができます。&lt;/p&gt;  &lt;h3&gt;新地域の追加&lt;/h3&gt;  &lt;p&gt;本日付けでXbox Liveコミュニティゲームから&lt;strong&gt;「Xbox Liveインディーズゲーム」&lt;/strong&gt;へと名称が変更され、配信可能な地域に&lt;strong&gt;日本&lt;/strong&gt;、ドイツ、シンガポール、そしてスウェーデンの四カ国が新たに追加され、今までに配信可能だった米国、英国、イタリア、カナダ、スペイン、フランスの計十カ国で配信可能となりました。&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;日本地域向けゲームのピアレビュー開始&lt;/h3&gt;  &lt;p&gt;新しく追加された地域向けのゲーム投稿は本日からできるようになっています。ですが、実際にユーザーがゲームを購入できるようになるのは８月11日(北米時間)のXbox 360 ダッシュボードアップデート後になります。今日から8月11日までの三週間弱の期間中にピアレビューを通過したゲームは8月11日に遊べることになります。&lt;/p&gt;  &lt;h3&gt;Xbox Live インディーズゲームの価格変更&lt;/h3&gt;  &lt;p&gt;インディーズゲームの価格は以下の三つになり、これらの価格は今日から選択できるようになっています。&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;400ポイント &lt;/li&gt;    &lt;li&gt;240ポイント &lt;/li&gt;    &lt;li&gt;80ポイント(容量が50MB以下のゲームのみ) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;この変更は10月22日を基点として段階的に行われます。現行価格の変更は以下のようになります。&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="725"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="103"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="296"&gt;         &lt;p align="center"&gt;2009年10月22日まで&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="324"&gt;         &lt;p align="center"&gt;2009年10月22日以降&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;200ポイント&lt;/td&gt;        &lt;td valign="top" width="296"&gt;価格選択肢の中から削除。         &lt;br /&gt;ゲームの更新時、または新価格更新イベント中に新価格に変更できる。&lt;/td&gt;        &lt;td valign="top" width="324"&gt;新価格への更新が済んでいない場合は自動的に&lt;strong&gt;80ポイント&lt;/strong&gt;に変更される。&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;400ポイント&lt;/td&gt;        &lt;td valign="top" width="296"&gt;選択可能。         &lt;br /&gt;ゲームの更新時、または新価格更新イベント中に新価格に変更できる。&lt;/td&gt;        &lt;td valign="top" width="324"&gt;そのままの価格。&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="103"&gt;800ポイント&lt;/td&gt;        &lt;td valign="top" width="296"&gt;選択可能。         &lt;br /&gt;ゲームの更新時、または新価格更新イベント中に新価格に変更できる。&lt;/td&gt;        &lt;td valign="top" width="324"&gt;価格選択肢の中から削除される。ゲームの更新をしないかぎり、価格はそのまま。更新時には新価格を選択する必要がある。&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;世界から、そして世界へ向けてのゲーム配信&lt;/h3&gt;  &lt;p&gt;今回のアップデートで日本に住んでいる人達が日本向けのゲームを配信できるようになった訳ですが、日本だけでなく、他の国へのゲーム配信もできるので、是非、日本以外の地域へのゲーム配信にも挑戦してみてください。逆に他の国から日本地域へのゲーム配信も可能になった訳ですから、8月11日には日本からではなく海外から投稿されたゲームも遊べるようになることでしょう。&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9846987" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/_397DCB4E_/default.aspx">紹介</category><category domain="http://blogs.msdn.com/ito/archive/tags/_A430F330C730A330FC30BA30B230FC30E030_/default.aspx">インディーズゲーム</category></item><item><title>アバターを使おう その4:カスタムアニメーション</title><link>http://blogs.msdn.com/ito/archive/2009/07/21/avatar-4.aspx</link><pubDate>Wed, 22 Jul 2009 04:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9844163</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ito/comments/9844163.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9844163</wfw:commentRss><description>&lt;P&gt;&lt;A href="http://creators.xna.com/en-US" target=_blank mce_href="http://creators.xna.com/en-US"&gt;Creators Club Onlineサイト&lt;/A&gt;でアバターの&lt;A href="http://creators.xna.com/en-US/news/customavataranimations" target=_blank mce_href="http://creators.xna.com/en-US/news/customavataranimations"&gt;カスタムアニメーション関連のサンプル等が公開&lt;/A&gt;されました。内容的には以下の三つになります。いずれもプレミアムコンテントになっているので、ダウンロードするにはCCO会員になっている必要があります。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://creators.xna.com/en-US/sample/customavataranimation" target=_blank mce_href="http://creators.xna.com/en-US/sample/customavataranimation"&gt;Custom Avatar Animation Sample(カスタムアニメーションサンプル)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://creators.xna.com/en-US/utility/avataranimationrig" target=_blank mce_href="http://creators.xna.com/en-US/utility/avataranimationrig"&gt;Avatar Animation Rig(アバターアニメーション生成用のリグ)&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://creators.xna.com/en-US/utility/avataranimationpack" target=_blank mce_href="http://creators.xna.com/en-US/utility/avataranimationpack"&gt;Avatar Animation Pack(アバターアニメーションパック)&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;H3&gt;Custom Avatar Animation Sample&lt;/H3&gt;
&lt;P&gt;このサンプルではアバターを自分のゲーム内で自由にアニメーションさせるための有用な情報が提供されています。3Dモデリングツール上でアニメーションリグを使って作ったアニメーションデータを作り、カスタムコンテントプロセッサーを介してFbxファイルから読み込み、CustomAvatarAnimationPlayerを使って任意のアニメーションをゲーム内で再生するという流れになっています。&lt;/P&gt;
&lt;H3&gt;&lt;/H3&gt;
&lt;H3&gt;Avatar Animation Rig&lt;/H3&gt;
&lt;P&gt;キャラクターアニメーションを作るときにひとつひとつのボーンをアニメーションさせるのは非常に面倒で時間の掛かる作業なので、その作業時間を軽減するためにリグ(Rig)と言われるものを使います。ここでは&lt;A href="http://usa.autodesk.com/adsk/servlet/index?id=7635018&amp;amp;siteID=123112" target=_blank mce_href="http://usa.autodesk.com/adsk/servlet/index?id=7635018&amp;amp;siteID=123112"&gt;Maya&lt;/A&gt;と&lt;A href="http://www.softimage.com/products/modtool/" target=_blank mce_href="http://www.softimage.com/products/modtool/"&gt;Softimage Mod Tool&lt;/A&gt;用のアニメーションリグをダウンロードすることができます。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/avatar4_10552/avatar-rig02_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/avatar4_10552/avatar-rig02_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=avatar-rig02 border=0 alt=avatar-rig02 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/avatar4_10552/avatar-rig02_thumb.png" width=643 height=484 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/avatar4_10552/avatar-rig02_thumb.png"&gt;&lt;/A&gt; &lt;BR&gt;Softimage Mod Toolの画面&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/avatar4_10552/avatar-rig_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/avatar4_10552/avatar-rig_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=avatar-rig border=0 alt=avatar-rig src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/avatar4_10552/avatar-rig_thumb.png" width=581 height=484 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/avatar4_10552/avatar-rig_thumb.png"&gt;&lt;/A&gt;&amp;nbsp; &lt;BR&gt;Maya 2008上での画面&lt;/P&gt;
&lt;H3&gt;Avatar Animation Pack&lt;/H3&gt;
&lt;P&gt;これはゲームなどでよく使われるアニメーションデータをダウンロードすることができます。アニメーションデータはFbxファイル、Maya、そしてSoftimage Mod Tool用の三種類のファイル形式が用意されています。&lt;/P&gt;
&lt;P&gt;アニメーションは21種類あり、歩く、走る、ジャンプといった基本的な移動アニメーションの他にも座る、倒れる、泳ぐといったものがあるので、アニメーションを作るときに参考にしたり、ゲームの雛形を作るときに仮データとして使えます。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9844163" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/_397DCB4E_/default.aspx">紹介</category><category domain="http://blogs.msdn.com/ito/archive/tags/_B330F330C630F330C830FB30D130A430D730E930A430F330_/default.aspx">コンテント・パイプライン</category><category domain="http://blogs.msdn.com/ito/archive/tags/Xbox360/default.aspx">Xbox360</category><category domain="http://blogs.msdn.com/ito/archive/tags/_B230FC30E0308B957A76_/default.aspx">ゲーム開発</category><category domain="http://blogs.msdn.com/ito/archive/tags/_B030E930D530A330AF30B930_/default.aspx">グラフィクス</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+3.1/default.aspx">XNA 3.1</category></item><item><title>XACT3の新機能</title><link>http://blogs.msdn.com/ito/archive/2009/07/10/xact3.aspx</link><pubDate>Sat, 11 Jul 2009 05:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9829259</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ito/comments/9829259.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9829259</wfw:commentRss><description>&lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;XACTプロジェクトファイル、XAPファイルのアップデート&lt;/h3&gt;  &lt;p&gt;XNA Game Studio 3.1ではXACTのバージョンが3へと更新されました。XNA Game Studio 3.0で作ったプロジェクトをそのままコンパイルするときには問題ありませんが、3.1へアップグレードし、そのプロジェクト内にXACT2で作ったXAPファイルが含まれている場合、コンパイル時に以下のエラーメッセージが表示されます。&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/xact3_105AF/image_3.png" width="668" height="139" mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/xact3_105AF/image_3.png" /&gt; &lt;/p&gt;  &lt;p&gt;XACT2で作られたXAPファイルは&lt;strong&gt;XACT3&lt;/strong&gt;ツール上で読み込み、保存することでXACT3用のXAPファイルへと更新できます。XACT3ツールはスタートメニュー/XNA Game Studio 3.1/Tools/Microsoft Cross-Platform Audio Creation Tool 3 (XACT3)を選択することで起動できます。&lt;/p&gt;  &lt;p&gt;XACT3ツール上でXACT2で作られたXAPファイルを読み込むと、以下のメッセージが表示されます。意味的には「このプロジェクトファイルのバージョンは古いけど、保存すると更新するよん、でも更新すると古いツールでは読めなくなるから注意してね」といった感じです。&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/xact3_105AF/image_6.png" width="524" height="284" mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/xact3_105AF/image_6.png" /&gt; &lt;/p&gt;  &lt;p&gt;OKボタンを押した後に、File/Save Projectでプロジェクトを保存します。&lt;/p&gt;  &lt;h3&gt;XACT3の新機能&lt;/h3&gt;  &lt;p&gt;XACT3では以下の二つの機能が追加されました。&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;xWMAの追加 &lt;/li&gt;    &lt;li&gt;トラック単位のフィルターコントロール&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;xWMAは&lt;a href="http://ja.wikipedia.org/wiki/Windows_Media_Audio" target="_blank" mce_href="http://ja.wikipedia.org/wiki/Windows_Media_Audio"&gt;WMA&lt;/a&gt;から派生したエンコード方式でXMAエンコード方式よりも更に良い圧縮率を実現できるエンコード方式です。ただし、XMAエンコード方式よりCPU負荷が高いので、BGMや台詞といった音声データを再生するのに向いています。CPU負荷が高くなりますが、Xbox 360上ではゲームのメインスレッド以外のコアでデコーディングするので、ゲーム速度への影響がないのも魅力的です。また、XMAはXbox 360上でしか使えませんが、xWMAはXbox 360、Windowsの両方で使用することができるので、両プラットフォームで音声データが同等のサイズになります。&lt;/p&gt;  &lt;p&gt;以下はそれぞれの方式で圧縮したサイズの例です。&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="134"&gt;圧縮方式&lt;/td&gt;        &lt;td valign="top" width="135"&gt;サイズ&lt;/td&gt;        &lt;td valign="top" width="129"&gt;圧縮率&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="134"&gt;PCM(オリジナル)&lt;/td&gt;        &lt;td valign="top" width="135"&gt;15.0MB&lt;/td&gt;        &lt;td valign="top" width="129"&gt;100%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="134"&gt;ADPCM&lt;/td&gt;        &lt;td valign="top" width="135"&gt;4.1MB&lt;/td&gt;        &lt;td valign="top" width="129"&gt;27%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="134"&gt;XMA&lt;/td&gt;        &lt;td valign="top" width="135"&gt;1.33MB&lt;/td&gt;        &lt;td valign="top" width="129"&gt;8.9%&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="134"&gt;xWMA&lt;/td&gt;        &lt;td valign="top" width="135"&gt;1.02MB&lt;/td&gt;        &lt;td valign="top" width="129"&gt;6.8%&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;xWMAの使い方は&lt;a href="http://blogs.msdn.com/ito/archive/2007/05/29/xact-tips.aspx" target="_blank" mce_href="http://blogs.msdn.com/ito/archive/2007/05/29/xact-tips.aspx"&gt;以前紹介した圧縮方式の指定の仕方&lt;/a&gt;と一緒です。XACT2ではPCM/ADCPM/XMAの三種類しか指定できなかったのが、XACT3では以下のようにxWMAが追加されたので、Compression Presetsのプロパティで形式を選択し、WaveBankで選択したWaveプロパティでプリセットを設定します。&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/xact3_105AF/image10.png" width="274" height="437" mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/xact3_105AF/image_thumb_2.png" /&gt;&lt;/p&gt;  &lt;p&gt;注意点としてはxWMA形式はストリーミング用のWave Bank内のWaveのみにしか適用できません。インメモリ形式のWave Bankで使用すると実行時にWave Bank初期化に失敗し、例外が発生します。&lt;/p&gt;  &lt;p&gt;トラック単位のフィルター処理は、Sound Bank内のSoundを選択したときに右上に表示されるトラックに対してフィルター効果を追加できるようになりました。例えば室内コンサート会場の外にいたり、水中に潜っている場合、聞こえてくるのはオリジナル音の低音部のみなのでLow Passフィルターを使うこで同じ効果を表現できます。また、イヤホンで音楽を聴いている人のそばにいるときに聞こえるのは元の音楽の高音部分なのでHigh Passフィルターを設定するといったことができます。&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/xact3_105AF/image_thumb_3.png" width="181" height="236" mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/xact3_105AF/image_thumb_3.png" /&gt;&lt;/p&gt;  &lt;p&gt;これらのパラメーターはRPC(Real-time Parameter Control)で設定できるので、ゲームの状況によってダイナミックに変化させることができます。&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9829259" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/XACT/default.aspx">XACT</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+3.1/default.aspx">XNA 3.1</category><category domain="http://blogs.msdn.com/ito/archive/tags/_AA30FC30C730A330AA30_/default.aspx">オーディオ</category></item><item><title>日本語版 XNA Game Studio 3.1がリリース</title><link>http://blogs.msdn.com/ito/archive/2009/07/09/xna-game-studio-3-1-jpn.aspx</link><pubDate>Thu, 09 Jul 2009 21:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9827387</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ito/comments/9827387.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9827387</wfw:commentRss><description>&lt;p&gt;日本語版 XNA Game Studio 3.1がリリースされました。日本語版XNA GSではVisual Studio上のインターフェース、コンテントのコンパイル時のエラーメッセージ、ランタイム時に発生する例外のメッセージが日本語化されています。&lt;/p&gt;  &lt;p&gt;機能的には先月リリースされた英語版と同じです。&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/ito/archive/2009/06/11/xnags-3-1-released.aspx" href="http://blogs.msdn.com/ito/archive/2009/06/11/xnags-3-1-released.aspx" target="_blank"&gt;http://blogs.msdn.com/ito/archive/2009/06/11/xnags-3-1-released.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;以下は日本語版XNA Game Studio 3.1に関する情報URLです。&lt;/p&gt;  &lt;p&gt;ダウンロード: &lt;a title="http://creators.xna.com/en-US/japan/" href="http://creators.xna.com/en-US/japan/" target="_blank"&gt;http://creators.xna.com/en-US/japan/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;新機能の説明: &lt;a title="http://creators.xna.com/en-us/japan/xnags3.1whatsnew" href="http://creators.xna.com/en-us/japan/xnags3.1whatsnew" target="_blank"&gt;http://creators.xna.com/en-us/japan/xnags3.1whatsnew&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Readme: &lt;a title="http://creators.xna.com/en-us/japan/xnags3.1readme" href="http://creators.xna.com/en-us/japan/xnags3.1readme" target="_blank"&gt;http://creators.xna.com/en-us/japan/xnags3.1readme&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;MSDNヘルプ: &lt;a title="http://msdn.microsoft.com/ja-jp/library/bb200104.aspx" href="http://msdn.microsoft.com/ja-jp/library/bb200104.aspx" target="_blank"&gt;http://msdn.microsoft.com/ja-jp/library/bb200104.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;以下は、このブログで紹介した3.1で追加された機能の説明です。&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/ito/archive/2009/06/25/updated-to-xna31.aspx" target="_blank"&gt;3.1用プロジェクトへのアップグレード&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/ito/archive/2009/06/11/video-playback.aspx" target="_blank" mce_href="http://blogs.msdn.com/ito/archive/2009/06/11/video-playback.aspx"&gt;動画再生&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/ito/archive/2009/06/15/automatic-xnb-serialization.aspx" target="_blank" mce_href="http://blogs.msdn.com/ito/archive/2009/06/15/automatic-xnb-serialization.aspx"&gt;自動XNBファイルシリアライズ&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;アバターを使おう      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://blogs.msdn.com/ito/archive/2009/06/23/avatar-01.aspx" target="_blank" mce_href="http://blogs.msdn.com/ito/archive/2009/06/23/avatar-01.aspx"&gt;その1:アバターを表示する&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://blogs.msdn.com/ito/archive/2009/06/25/avatar-02.aspx" target="_blank" mce_href="http://blogs.msdn.com/ito/archive/2009/06/25/avatar-02.aspx"&gt;その2:基本アニメーション&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://blogs.msdn.com/ito/archive/2009/06/29/avatar-3.aspx" target="_blank" mce_href="http://blogs.msdn.com/ito/archive/2009/06/29/avatar-3.aspx"&gt;その３:喜怒哀楽&lt;/a&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/ito/archive/2009/06/30/soundeffect-3-1.aspx" target="_blank" mce_href="http://blogs.msdn.com/ito/archive/2009/06/30/soundeffect-3-1.aspx"&gt;XNA Game Studio 3.1のSoundEffect変更点&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9827387" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/_397DCB4E_/default.aspx">紹介</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+3.1/default.aspx">XNA 3.1</category></item><item><title>XNA Game Studio 3.1のSoundEffect変更点</title><link>http://blogs.msdn.com/ito/archive/2009/06/30/soundeffect-3-1.aspx</link><pubDate>Wed, 01 Jul 2009 02:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9810143</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ito/comments/9810143.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9810143</wfw:commentRss><description>&lt;H3&gt;XNA Game Studio 3.1のSoundEffect&lt;/H3&gt;
&lt;P&gt;ゲームで使用する効果音を簡単に再生するためにXNA Game Studio 3.0で導入されたSoundEffect機能がありますが、この機能は以下の二つのシナリオを実現するようにデザインされました。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;簡易再生(Fire &amp;amp; forget)&lt;/STRONG&gt;: プログラムは単にPlayメソッドを呼ぶだけ。後は効果音が鳴り終わった後に自動的にメモリ開放処理をしてくれる機能&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;生成と設定(Create &amp;amp; configure):&lt;/STRONG&gt; 効果音を鳴らしている間に、音量、再生ピッチ、パンなどのさまざまなパラメーターを自由に設定できる機能。細かい設定ができる代わりに、プログラム側で再生中のインスタンスの保持、管理をする必要がある&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;この二つのシナリオを実現する為に、XNA GS 3.0では&lt;STRONG&gt;SoundEffect.Play&lt;/STRONG&gt;、&lt;STRONG&gt;SoundEffect.Play3D&lt;/STRONG&gt;メソッドは&lt;STRONG&gt;SoundEffectInstance&lt;/STRONG&gt;オブジェクトを返すようになっていました。再生中に設定を変更したい場合は、このインスタンスに対して処理をします。簡易再生させたい場合はインスタンスを保持しないでおきます。この場合、次にガーベージコレクション(GC)が発生した時に再生が終了したインスタンスを破棄するようになっていました。&lt;/P&gt;
&lt;P&gt;この方法には以下の二つの問題がありました。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Play/Play3Dメソッドには、プログラムが簡易再生をしたいのか、細かい設定をしたいのかを知る術がないので常にSoundEffectInstanceを生成していました。これは簡易再生をしている場合に常に不必要なメモリ確保が起きていることになります。&lt;/LI&gt;
&lt;LI&gt;確保されたSoundEffectInstanceはGCが発生された時に再生が終了しているインスタンスを自動的に破棄されるようになっています。GCがいつ発生するかはゲームがどのようにメモリを確保するかによって左右されます。GCの不必要な発生はゲームのパフォーマンスに影響するので、極力GC発生を抑えるようにプログラミングするのが望ましいのですが、GC発生数が少ないと、SoundEffectinstanceを開放する機会が減るのことになるので、最終的には同時再生できる効果音の上限に達してしまいます。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;XNA GS 3.1では、この二つのシナリオを明確に分けることで、この問題を解決しました。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;SoundEffect.Playメソッドは簡易再生専用のメソッドとなり、SoundEffectInstanceではなく、bool値を返すようになりました。このbool値は単純に再生が成功したかを示します。これで不必要なメモリ確保がなくなりました。また、このメソッドを使った場合はループ再生ができないようになっています。&lt;/LI&gt;
&lt;LI&gt;生成と設定のシナリオ用に&lt;STRONG&gt;SoundEffect.CreateInstance&lt;/STRONG&gt;メソッドが追加されました。このメソッドはSoundEffectInstanceを返すので、このオブジェクトを介して音量、ピッチ、パンなどを設定することができます。&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;SoundEffect.Play3Dメソッドは無くなりました。3Dサウンドを再生する場合は、SoundEffect.CreateInsntaceメソッドを使い、&lt;STRONG&gt;SoundEffectInstance.Apply3D&lt;/STRONG&gt;メソッドを使用します。3Dサウンドは簡易再生することができません。&lt;/P&gt;
&lt;P&gt;また、XNA GS 3.0では再生数が上限に達したときに更に効果音を再生しようとするとInstancedPlayLimitException例外が発生しました。XNA GS 3.1でもCreateInstanceメソッドを使った場合には同じように例外が発生しますが、簡易再生の場合は例外を発生せずに単にbool値を返すようになっています。ですから、簡易再生時にいちいちtry～catchブロックを書く必要がなくなりました。&lt;/P&gt;
&lt;P&gt;原文: &lt;BR&gt;&lt;A title=http://blogs.msdn.com/shawnhar/archive/2009/06/12/soundeffect-changes-in-xna-game-studio-3-1.aspx href="http://blogs.msdn.com/shawnhar/archive/2009/06/12/soundeffect-changes-in-xna-game-studio-3-1.aspx" mce_href="http://blogs.msdn.com/shawnhar/archive/2009/06/12/soundeffect-changes-in-xna-game-studio-3-1.aspx"&gt;http://blogs.msdn.com/shawnhar/archive/2009/06/12/soundeffect-changes-in-xna-game-studio-3-1.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9810143" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+_D530EC30FC30E030EF30FC30AF30_/default.aspx">XNA フレームワーク</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+3.1/default.aspx">XNA 3.1</category><category domain="http://blogs.msdn.com/ito/archive/tags/_AA30FC30C730A330AA30_/default.aspx">オーディオ</category></item><item><title>アバターを使おう その３:喜怒哀楽</title><link>http://blogs.msdn.com/ito/archive/2009/06/29/avatar-3.aspx</link><pubDate>Tue, 30 Jun 2009 09:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9809327</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ito/comments/9809327.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9809327</wfw:commentRss><description>&lt;P&gt;警告:画像が沢山あるので、重いかも。&lt;/P&gt;
&lt;H3&gt;アバターの表情(Expression)を自由に設定する&lt;/H3&gt;
&lt;P&gt;AvatarRenderer.Drawメソッドにはアバターのボーンと表情を指定することができます。基本アニメーションを使っている場合はAvatarAnimation.Expressionを指定しますが、ボーンと同じく、AvatarExpressionも自由に作ることができるので、アバターの表情を自由に変えることができます。&lt;/P&gt;
&lt;P&gt;AvatarExpressionには以下のプロパティがあります。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;LeftEye (左目) &lt;/LI&gt;
&lt;LI&gt;LeftEyebrow (左眉) &lt;/LI&gt;
&lt;LI&gt;Mouth (口) &lt;/LI&gt;
&lt;LI&gt;RightEye (右目) &lt;/LI&gt;
&lt;LI&gt;RightEyebrow (右眉) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;LeftEye、RightEyeにはAvatarEye列挙型、LeftEyebrow、RightEyebrowにはAvatarEyebrow列挙型、MouthにはAvatarMouth列挙型を設定することができます。&lt;/P&gt;
&lt;P&gt;左右の目や眉に独立した値を設定できるので、ウィンクさせるといったことも可能です。眉と目、そして口のパターンと合わせると約６万９千通りの表情を設定することができます。これだけの数があるので、喜怒哀楽といった基本的な表情の他にも多彩な表情を表現することができるようになっています。&lt;/P&gt;
&lt;P&gt;以下はそれぞれの列挙型の値と、その説明です。&lt;/P&gt;
&lt;H3&gt;AvatarEyebrow列挙型&lt;/H3&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=400&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=81&gt;
&lt;P align=center&gt;値&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=319&gt;
&lt;P align=center&gt;説明&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=81&gt;Angry&lt;/TD&gt;
&lt;TD vAlign=top width=319&gt;怒り、眉を吊り上げる&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=81&gt;Confused&lt;/TD&gt;
&lt;TD vAlign=top width=319&gt;困惑、眉を曲げる&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=81&gt;Neutral&lt;/TD&gt;
&lt;TD vAlign=top width=319&gt;自然な眉のかたち&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=81&gt;Raised&lt;/TD&gt;
&lt;TD vAlign=top width=319&gt;眉をあげる。驚いたときなどに使える&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=81&gt;Sad&lt;/TD&gt;
&lt;TD vAlign=top width=319&gt;悲しみ、眉がさがる。眠たい表情にも使える&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H3&gt;AvatarEye列挙型&lt;/H3&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=477&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;
&lt;P align=center&gt;値&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;
&lt;P align=center&gt;説明&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;Angry&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;怒り、目がつりあがっている&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;Blink&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;まばたき、目を閉じている状態&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;Confused&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;困惑、より目、または見上げている感じ&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;Happy&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;ハッピー、目が大きくひらき、目尻が下がっている&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;Laughing&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;笑い、目を細めている&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;LookDown&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;下を見る&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;LookLeft&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;左を見る&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;LookRight&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;右を見る&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;LookUp&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;上を見る&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;Neutral&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;自然な目の形&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;Sad&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;悲しみ、目尻が下がる&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;Shocked&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;驚き、目が点になる&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;Sleeping&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;眠り、目を閉じている&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=100&gt;Yawning&lt;/TD&gt;
&lt;TD vAlign=top width=375&gt;あくび、眠そうな目&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H3&gt;AvatarMouth列挙型&lt;/H3&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=651&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;
&lt;P align=center&gt;値&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;
&lt;P align=center&gt;説明&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;Angry&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;怒り、歯をくいしばってる感じ&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;Confused&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;困惑、口がゆがめている&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;Happy&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;ハッピー、口の両端が上がっている&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;Laughing&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;笑い&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;Neutral&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;自然体、すこし口が開いている&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;PhoneticAi&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;リップシンク用、英語のAの発音、日本語の「あ」と「え」の中間&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;PhoneticDth&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;リップシンク用、英語のDまたはThの発音、唇を歯で軽く噛んで発音、日本語では使われない&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;PhoneticEe&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;リップシンク用、英語のEの発音、日本語では「い」の発音&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;PhoneticFv&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;リップシンク用、英語のF、Vの発音、下唇を噛んで発音、日本語では使われない&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;PhoneticL&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;リップシンク用、英語のLの発音、舌のを歯のうらに当てて発音、日本語の「れ」に近い&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;PhoneticO&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;リップシンク用、英語のOの発音、日本語では「お」の発音&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;PhoneticW&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;リップシンク用、英語のWの最後の部分の発音、日本語では「う」の発音&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;Sad&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;悲しみ、口の両端が下がっている&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=107&gt;Shocked&lt;/TD&gt;
&lt;TD vAlign=top width=542&gt;驚き、「あ」と口をあけて驚いている&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H3&gt;百聞は１スクショにすぎず&lt;/H3&gt;
&lt;P&gt;前回の基本アニメーションと同じく、男性、女性アバターにいろいろな表情を設定したものを画像にしてみました。&lt;/P&gt;
&lt;P&gt;まずは、眉、目、口で共通するものが多い表情パターンです。&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=2 width=536&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=282&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-72_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-72_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=myxbox-72 border=0 alt=myxbox-72 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-72_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-72_thumb.png"&gt;&lt;/A&gt;&lt;STRONG&gt;自然な表情(Neutral) &lt;BR&gt;&lt;/STRONG&gt;Eyebrow.Neutral &lt;BR&gt;Eye.Neutral &lt;BR&gt;Mouth.Neutral&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=252&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-74_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-74_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=myxbox-74 border=0 alt=myxbox-74 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-74_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-74_thumb.png"&gt;&lt;/A&gt;&lt;STRONG&gt;怒り(Angry)&lt;/STRONG&gt; &lt;BR&gt;Eyebrow.Angry &lt;BR&gt;Eye.Angry &lt;BR&gt;Mouth.Angry&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=282&gt;
&lt;P align=center mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-75_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-75_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=myxbox-75 border=0 alt=myxbox-75 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-75_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-75_thumb.png"&gt;&lt;/A&gt; 
&lt;P align=center mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=center&gt;&lt;STRONG&gt;困惑(Confused)&lt;/STRONG&gt; &lt;BR&gt;Eyebrow.Confused &lt;BR&gt;Eye.Confused &lt;BR&gt;Mouth.Confused&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=252&gt;
&lt;P align=center&gt;&lt;STRONG&gt;&lt;STRONG&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-76_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-76_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-76 border=0 alt=myxbox-76 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-76_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-76_thumb.png"&gt;&lt;/A&gt;&lt;/STRONG&gt;笑い(Laughing) &lt;BR&gt;&lt;/STRONG&gt;Eyebrow.Neutral &lt;BR&gt;Eye.Laughing &lt;BR&gt;Mouth.Laughing&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=282&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-78_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-78_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=myxbox-78 border=0 alt=myxbox-78 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-78_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-78_thumb.png"&gt;&lt;/A&gt; 
&lt;P align=center&gt;&lt;STRONG&gt;ハッピー(Happy)&lt;/STRONG&gt; &lt;BR&gt;Eyebrow.Neutral &lt;BR&gt;Eye.Happy &lt;BR&gt;Mouth.Happy&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=252&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-73_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-73_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=myxbox-73 border=0 alt=myxbox-73 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-73_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-73_thumb.png"&gt;&lt;/A&gt; 
&lt;P align=center&gt;&lt;STRONG&gt;悲しみ(Sad)&lt;/STRONG&gt; &lt;BR&gt;Eyebrow.Sad &lt;BR&gt;Eye.Sad &lt;BR&gt;Mouth.Sad &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=282&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-77_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-77_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=myxbox-77 border=0 alt=myxbox-77 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-77_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-77_thumb.png"&gt;&lt;/A&gt; 
&lt;P align=center mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=center&gt;&lt;STRONG&gt;驚き(Shocked)&lt;/STRONG&gt; &lt;BR&gt;Eyebrow.Raised &lt;BR&gt;Eye.Shocked &lt;BR&gt;Mouth.Shocked&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=252&gt;
&lt;P align=center mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;つづいて、目特有の表情パターンです。上下左右を見るというパターンがあるので、画面内の物を目で追うといったこともできます。&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=2 width=541&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=278&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-85_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-85_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=myxbox-85 border=0 alt=myxbox-85 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-85_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-85_thumb.png"&gt;&lt;/A&gt;&lt;STRONG&gt;まばたき(Blink)&lt;/STRONG&gt; &lt;BR&gt;Eyebrow.Neutral &lt;BR&gt;Eye.Blink &lt;BR&gt;Mouth.Neutral &lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=261&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-79_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-79_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=myxbox-79 border=0 alt=myxbox-79 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-79_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-79_thumb.png"&gt;&lt;/A&gt; 
&lt;P align=center mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P align=center&gt;&lt;STRONG&gt;あくび(Yawning)&lt;/STRONG&gt; &lt;BR&gt;Eyebrow.Neutral &lt;BR&gt;Eye.Yawning &lt;BR&gt;Mouth.Shocked&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=278&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-80_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-80_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-80 border=0 alt=myxbox-80 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-80_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-80_thumb.png"&gt;&lt;/A&gt; &lt;BR&gt;&lt;STRONG&gt;ねむり(Sleeping)&lt;/STRONG&gt; &lt;BR&gt;Eyebrow.Neutral &lt;BR&gt;Eye.Sleeping &lt;BR&gt;Mouth.Happy&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=261&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-81_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-81_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-81 border=0 alt=myxbox-81 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-81_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-81_thumb.png"&gt;&lt;/A&gt; &lt;BR&gt;&lt;STRONG&gt;上を見る(LookUp)&lt;/STRONG&gt; &lt;BR&gt;Eyebrow.Neutral &lt;BR&gt;Eye.LookUp &lt;BR&gt;Mouth.Neutral&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=278&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-82_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-82_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-82 border=0 alt=myxbox-82 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-82_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-82_thumb.png"&gt;&lt;/A&gt;&lt;STRONG&gt; &lt;BR&gt;下を見る(LookDown)&lt;/STRONG&gt; &lt;BR&gt;Eyebrow.Neutral &lt;BR&gt;Eye.LookDown &lt;BR&gt;Mouth.Neutral&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=261&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-83_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-83_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-83 border=0 alt=myxbox-83 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-83_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-83_thumb.png"&gt;&lt;/A&gt;&lt;STRONG&gt;左を見る(LookLeft)&lt;/STRONG&gt; &lt;BR&gt;Eyebrow.Neutral &lt;BR&gt;Eye.LookLeft &lt;BR&gt;Mouth.Neutral&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=278&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-84_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-84_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-84 border=0 alt=myxbox-84 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-84_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-84_thumb.png"&gt;&lt;/A&gt;&lt;STRONG&gt; &lt;BR&gt;右を見る(LookRight)&lt;/STRONG&gt; &lt;BR&gt;Eyebrow.Neutral &lt;BR&gt;Eye.LookRight &lt;BR&gt;Mouth.Neutral&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=261&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;最後に口特有の表情パターンです。表情パターンというよりも、リップシンク用のデータです。プレイヤーが操る以外のアバターには自由に喋らせることができるので、その時に使うパターンです。&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=2 width=532&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=274&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-87_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-87_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-87 border=0 alt=myxbox-87 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-87_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-87_thumb.png"&gt;&lt;/A&gt; &lt;BR&gt;&lt;STRONG&gt;PhoneticAi&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=256&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-92_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-92_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-92 border=0 alt=myxbox-92 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-92_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-92_thumb.png"&gt;&lt;/A&gt;&lt;STRONG&gt; &lt;BR&gt;PhoneticDth&lt;/STRONG&gt; &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=274&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-88_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-88_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-88 border=0 alt=myxbox-88 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-88_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-88_thumb.png"&gt;&lt;/A&gt; &lt;BR&gt;&lt;STRONG&gt;PhoneticEe&lt;/STRONG&gt; &lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=256&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-89_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-89_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-89 border=0 alt=myxbox-89 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-89_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-89_thumb.png"&gt;&lt;/A&gt;&lt;STRONG&gt; &lt;BR&gt;PhoneticFv&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=274&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-86_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-86_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-86 border=0 alt=myxbox-86 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-86_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-86_thumb.png"&gt;&lt;/A&gt; &lt;BR&gt;&lt;STRONG&gt;PhoneticO&lt;/STRONG&gt; &lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=256&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-91_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-91_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-91 border=0 alt=myxbox-91 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-91_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-91_thumb.png"&gt;&lt;/A&gt;&amp;nbsp; &lt;STRONG&gt;PhoneticL&lt;/STRONG&gt; &lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=274&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-90_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-90_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=myxbox-90 border=0 alt=myxbox-90 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-90_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-90_thumb.png"&gt;&lt;/A&gt;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&lt;STRONG&gt;PhoneticW&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=256&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;リップシンク用のデータはもともと欧米向けのデータなので、日本語を喋らせるときには近い口の形を流用することになります。以下は日本語で「あいうえお」の口の形に近いものを順に並べてみました。&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=2 width=522&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=257&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-93_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-93_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=myxbox-93 border=0 alt=myxbox-93 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-93_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-93_thumb.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;STRONG&gt;あ (Shocked)&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=263&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-88_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-88_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=myxbox-88 border=0 alt=myxbox-88 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-88_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-88_thumb.png"&gt;&lt;/A&gt;&lt;STRONG&gt;い (PhoneticEe)&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=257&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-90_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-90_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=myxbox-90 border=0 alt=myxbox-90 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-90_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-90_thumb.png"&gt;&lt;/A&gt;&lt;STRONG&gt;う (PhoneticW)&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=263&gt;
&lt;P align=center&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-87_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-87_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=myxbox-87 border=0 alt=myxbox-87 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-87_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-87_thumb.png"&gt;&lt;/A&gt;&lt;STRONG&gt;え (PhoneticAi)&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=257&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-86_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-86_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=myxbox-86 border=0 alt=myxbox-86 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-86_thumb.png" width=240 height=135 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/d2a7980504e7_13929/myxbox-86_thumb.png"&gt;&lt;/A&gt; 
&lt;P align=center&gt;&lt;STRONG&gt;お (PhoneticO)&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=263&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9809327" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+_D530EC30FC30E030EF30FC30AF30_/default.aspx">XNA フレームワーク</category><category domain="http://blogs.msdn.com/ito/archive/tags/Xbox360/default.aspx">Xbox360</category><category domain="http://blogs.msdn.com/ito/archive/tags/_B030E930D530A330AF30B930_/default.aspx">グラフィクス</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+3.1/default.aspx">XNA 3.1</category></item><item><title>アバターを使おう その2:基本アニメーション</title><link>http://blogs.msdn.com/ito/archive/2009/06/25/avatar-02.aspx</link><pubDate>Fri, 26 Jun 2009 04:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9804574</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ito/comments/9804574.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9804574</wfw:commentRss><description>&lt;H3&gt;アバターの基本アニメーション&lt;/H3&gt;
&lt;P&gt;AvatarAnimationを生成するときに指定する&lt;STRONG&gt;AvatarAnimationPreset&lt;/STRONG&gt;列挙型には31種類の基本アニメーションが宣言されています。内訳として、11種類の男女共通のアニメーションと、性別毎に違うアニメーションが10種類となっています。&lt;/P&gt;
&lt;P&gt;男性アバター向けのアニメーションはMaleで始まり、女性アバター向けのアニメーションはFemaleで始まるようになっています。通常はAvatarDescription.BodyTypeによって性別ごとにアニメーションを切り替えて使用しますが、アニメーションは性別に関係なく使えるので、意図的に男性アバターに女性アバターのアニメーションを再生させるということもできます。&lt;/P&gt;
&lt;H3&gt;男女共通のアニメーション&lt;/H3&gt;
&lt;P&gt;以下は男女共通アニメーション名と、その説明です。 &lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=677&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;
&lt;P align=center&gt;アニメーション名&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=572&gt;
&lt;P align=center&gt;説明&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;Stand0&lt;/TD&gt;
&lt;TD vAlign=top width=572&gt;基本姿勢アニメーション、身体的アニメーションは殆どなく、瞬きする程度。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;Stand1&lt;/TD&gt;
&lt;TD vAlign=top width=572&gt;基本姿勢アニメーションに加えて、数秒間軽く上を見上げる動作。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;Stand2&lt;/TD&gt;
&lt;TD vAlign=top width=572&gt;基本姿勢アニメーションに加えて、左、上方向に顔を向ける動作。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;Stand3&lt;/TD&gt;
&lt;TD vAlign=top width=572&gt;基本姿勢アニメーションに加えて、左右を見渡した後に軽く首をかしげる動作。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;Stand4&lt;/TD&gt;
&lt;TD vAlign=top width=572&gt;軽く右足を上げて、つま先を見つめる。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;Stand5&lt;/TD&gt;
&lt;TD vAlign=top width=572&gt;両手を広げて、前後に振る。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;Stand6&lt;/TD&gt;
&lt;TD vAlign=top width=572&gt;足元を見回す動作。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;Stand7&lt;/TD&gt;
&lt;TD vAlign=top width=572&gt;頭を左右に傾けた後に、首を回す動作。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;Clap&lt;/TD&gt;
&lt;TD vAlign=top width=572&gt;笑顔で拍手する。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;Wave&lt;/TD&gt;
&lt;TD vAlign=top width=572&gt;笑顔で手を振る。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;Celebrate&lt;/TD&gt;
&lt;TD vAlign=top width=572&gt;喜びの動作。アバター生成画面でアバターを選択したときにするアニメーションと同じもの。&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;H3&gt;性別によって違うアニメーション&lt;/H3&gt;
&lt;P&gt;以下は性別によって異なるアニメーションをまとめた表です。殆どのアニメーションはMaleLaugh、FemaleLaughといった感じで同じタイプのアニメーションが用意されています。例外としてはMaleIdleCheckHand,FemaleIdleCheckNails,MaleIdleStretch,FemaleIdelFixShoeの四つのアニメーションがあります。&lt;/P&gt;
&lt;P&gt;同じタイプのアニメーションでも、例えば笑うアニメーションの場合、男性はひざを叩いて笑う動作をするのに対して、女性は手を前にかざして笑うといった違いがあります。 &lt;/P&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=679&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;
&lt;P align=center&gt;男性用アニメーション名&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=156&gt;
&lt;P align=center&gt;女性用アニメーション名&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=380&gt;
&lt;P align=center&gt;説明&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;MaleIdleCheckHand&lt;/TD&gt;
&lt;TD vAlign=top width=156&gt;FemaleIdleCheckNails &lt;/TD&gt;
&lt;TD vAlign=top width=380&gt;男性は肩を軽くまわした後に自分の手を見つめる動作。 &lt;BR&gt;女性は爪を見つめる動作。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;MaleIdleLookAround &lt;/TD&gt;
&lt;TD vAlign=top width=156&gt;FemaleIdleLookAround &lt;/TD&gt;
&lt;TD vAlign=top width=380&gt;あたりを見回す動作。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;FemaleIdleShiftWeight &lt;/TD&gt;
&lt;TD vAlign=top width=156&gt;MaleIdleShiftWeight &lt;/TD&gt;
&lt;TD vAlign=top width=380&gt;重心を左右の足に移動する動作。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;MaleIdleStretch &lt;/TD&gt;
&lt;TD vAlign=top width=156&gt;FemaleIdleFixShoe&lt;/TD&gt;
&lt;TD vAlign=top width=380&gt;男性はストレッチ動作、女性は靴の様子を見る動作。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;MaleAngry &lt;/TD&gt;
&lt;TD vAlign=top width=156&gt;FemaleAngry &lt;/TD&gt;
&lt;TD vAlign=top width=380&gt;怒る。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;MaleConfused &lt;/TD&gt;
&lt;TD vAlign=top width=156&gt;FemaleConfused &lt;/TD&gt;
&lt;TD vAlign=top width=380&gt;困惑。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;MaleLaugh &lt;/TD&gt;
&lt;TD vAlign=top width=156&gt;FemaleLaugh &lt;/TD&gt;
&lt;TD vAlign=top width=380&gt;大笑い。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;MaleCry &lt;/TD&gt;
&lt;TD vAlign=top width=156&gt;FemaleCry &lt;/TD&gt;
&lt;TD vAlign=top width=380&gt;泣く。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;MaleSurprised &lt;/TD&gt;
&lt;TD vAlign=top width=156&gt;FemaleShocked &lt;/TD&gt;
&lt;TD vAlign=top width=380&gt;驚き。&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;MaleYawn &lt;/TD&gt;
&lt;TD vAlign=top width=156&gt;FemaleYawn &lt;/TD&gt;
&lt;TD vAlign=top width=380&gt;あくび。男性は手を口に当ててあくび。女性は手を広げてあくび。&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;百聞は一動画にしかずということで、全ての基本アニメーションを再生した動画を作ってみました。男性、女性アバターを並べて、それぞれのアニメーションを二回再生するようになっています。 &lt;/P&gt;
&lt;DIV align=center&gt;
&lt;OBJECT width=560 height=340&gt;&lt;PARAM NAME="movie" VALUE="http://www.youtube.com/v/gguyGGX_ls0&amp;amp;hl=en&amp;amp;fs=1&amp;amp;"&gt;&lt;PARAM NAME="allowFullScreen" VALUE="true"&gt;&lt;PARAM NAME="allowscriptaccess" VALUE="always"&gt;
&lt;embed src="http://www.youtube.com/v/gguyGGX_ls0&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" mce_src="http://www.youtube.com/v/gguyGGX_ls0&amp;amp;hl=en&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/OBJECT&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9804574" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+_D530EC30FC30E030EF30FC30AF30_/default.aspx">XNA フレームワーク</category><category domain="http://blogs.msdn.com/ito/archive/tags/Xbox360/default.aspx">Xbox360</category><category domain="http://blogs.msdn.com/ito/archive/tags/_B230FC30E0308B957A76_/default.aspx">ゲーム開発</category><category domain="http://blogs.msdn.com/ito/archive/tags/_B030E930D530A330AF30B930_/default.aspx">グラフィクス</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+3.1/default.aspx">XNA 3.1</category></item><item><title>3.1用プロジェクトへのアップグレード</title><link>http://blogs.msdn.com/ito/archive/2009/06/25/updated-to-xna31.aspx</link><pubDate>Thu, 25 Jun 2009 11:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9803183</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ito/comments/9803183.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9803183</wfw:commentRss><description>&lt;P&gt;XNA Game Studio 3.1ではXNA Game Studio 3.0のプロジェクトを3.1用にアップグレードすることができます。3.0で作ったプロジェクトをVisual Studioで開き、ソリューション・エクスプローラーで更新したいソリューションを右クリックで表示されるメニューの&lt;STRONG&gt;「Upgrade Solution…」&lt;/STRONG&gt;を選択すると、3.1のプロジェクトへアップグレードします。&lt;/P&gt;
&lt;P&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/updatedtoxna31_1886/image_3.png" width=299 height=385 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/updatedtoxna31_1886/image_3.png"&gt; &lt;/P&gt;
&lt;P&gt;一旦3.1へアップグレートした後は、3.0のプロジェクトにダウングレードする方法は提供されていないので、3.0のプロジェクトを何らかの理由で残しておきたい場合は更新する前にバックアップしておくといいでしょう。&lt;/P&gt;
&lt;P&gt;今まで紹介してきた以下のサンプルをXNA Game Studio 3.1用のプロジェクトにアップグレードしたので、以下に記事と新しいプロジェクトへのURLをまとめておきました。&lt;/P&gt;
&lt;P&gt;基本的にはプロジェクトの更新のみですが、ソースコードファイルのエンコーディングをシフトJISからUnicode (UTF-8 シグネチャ (BOM) 付き) - コードページ 65001へ変更してあります。これはサンプルプログラムを日本語以外の環境で開くとコンパイルできないという問題を解決するためのものです。Visual Studioやメモ帳などのアプリケーションではUTF-8に対応しているので問題はありませんが、対応していないエディターでコードを開くときには日本語部分が正しく表示されないので注意してください。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/ito/archive/2009/05/10/more-bones-10.aspx" mce_href="http://blogs.msdn.com/ito/archive/2009/05/10/more-bones-10.aspx"&gt;vFetchでスキンアニメーション&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://higeneko.net/hinikeni/sample/xna31/vFetchSkinningSample.zip" mce_href="http://higeneko.net/hinikeni/sample/xna31/vFetchSkinningSample.zip"&gt;http://higeneko.net/hinikeni/sample/xna31/vFetchSkinningSample.zip&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/ito/archive/2009/05/07/more-bones-07.aspx" mce_href="http://blogs.msdn.com/ito/archive/2009/05/07/more-bones-07.aspx"&gt;頂点テクスチャでスキンアニメーション&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://higeneko.net/hinikeni/sample/xna31/TexSkinningSample.zip" mce_href="http://higeneko.net/hinikeni/sample/xna31/TexSkinningSample.zip"&gt;http://higeneko.net/hinikeni/sample/xna31/TexSkinningSample.zip&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/ito/archive/2009/05/05/more-bones-05.aspx" mce_href="http://blogs.msdn.com/ito/archive/2009/05/05/more-bones-05.aspx"&gt;クォータニオンでスキンアニメーション&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://higeneko.net/hinikeni/sample/xna31/QuatSkinningSample.zip" mce_href="http://higeneko.net/hinikeni/sample/xna31/QuatSkinningSample.zip"&gt;http://higeneko.net/hinikeni/sample/xna31/QuatSkinningSample.zip&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/ito/archive/2008/12/27/debug-components-sample.aspx" mce_href="http://blogs.msdn.com/ito/archive/2008/12/27/debug-components-sample.aspx"&gt;デバッグサンプル&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://higeneko.net/hinikeni/sample/xna31/DebugSample.zip" mce_href="http://higeneko.net/hinikeni/sample/xna31/DebugSample.zip"&gt;http://higeneko.net/hinikeni/sample/xna31/DebugSample.zip&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/ito/archive/2008/12/12/gamefest-japan-2008-demo.aspx" mce_href="http://blogs.msdn.com/ito/archive/2008/12/12/gamefest-japan-2008-demo.aspx"&gt;Gamefest Japan 2008 デモプログラム&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://higeneko.net/hinikeni/sample/xna31/GamefestJapan2008Demo.zip" mce_href="http://higeneko.net/hinikeni/sample/xna31/GamefestJapan2008Demo.zip"&gt;http://higeneko.net/hinikeni/sample/xna31/GamefestJapan2008Demo.zip&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/ito/archive/2008/02/22/simple-japanese-message.aspx" mce_href="http://blogs.msdn.com/ito/archive/2008/02/22/simple-japanese-message.aspx"&gt;簡単(かもしれない)日本語表示&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://higeneko.net/hinikeni/sample/xna31/SimpleMessage.zip" mce_href="http://higeneko.net/hinikeni/sample/xna31/SimpleMessage.zip"&gt;http://higeneko.net/hinikeni/sample/xna31/SimpleMessage.zip&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/ito/archive/2007/05/02/content-pipeline-part3.aspx" mce_href="http://blogs.msdn.com/ito/archive/2007/05/02/content-pipeline-part3.aspx"&gt;Content Pipeline その３ そのカスタマイズ(日本語表示サンプル)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://higeneko.net/hinikeni/sample/TextMessageSample31.zip" mce_href="http://higeneko.net/hinikeni/sample/TextMessageSample31.zip"&gt;http://higeneko.net/hinikeni/sample/TextMessageSample31.zip&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9803183" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/_397DCB4E_/default.aspx">紹介</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+3.1/default.aspx">XNA 3.1</category></item><item><title>アバターを使おう その1:アバターを表示する</title><link>http://blogs.msdn.com/ito/archive/2009/06/23/avatar-01.aspx</link><pubDate>Wed, 24 Jun 2009 05:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9800657</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/ito/comments/9800657.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9800657</wfw:commentRss><description>&lt;H3&gt;アバターをゲーム画面内に表示する&lt;/H3&gt;
&lt;P&gt;アバターをゲームt画面内に表示するには以下の三つのクラスが重要な役割を果たします。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;AvatarDescription &lt;/LI&gt;
&lt;LI&gt;AvatarAnimation(必ずしも必要ではない) &lt;/LI&gt;
&lt;LI&gt;AvatarRenderer &lt;/LI&gt;&lt;/UL&gt;
&lt;H3&gt;AvatarDescription&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;AvatarDescription&lt;/STRONG&gt;はアバターの性別、容姿、服装といった情報を保持しています。AvatarDescriptionのプロパティには男性(Male)、女性(Female)を表すBodyType、メートル単位の身長を表すHeightがあります。AvatarDescriptionを得るには以下の三つの方法があります。&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;SignedInGamer.Avatarからゲーマータグのアバター情報を取得する &lt;/LI&gt;
&lt;LI&gt;AvatarDescription.CreateRandomメソッドを使ってランダムにアバターを生成する &lt;/LI&gt;
&lt;LI&gt;AvatarDescription(byte[] data)コンストラクタを使って生成する &lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;1はゲーマータグに関連付けられたらアバター情報をSignedInGamer.AvatarからAvatarDescriptionを取得して使う方法で、自分のアバターをゲーム内で使う方法です。&lt;/P&gt;
&lt;P&gt;2の手法は、自分のアバター以外をゲーム内で使ったり、複数の違った体形のアバターを自分のゲーム内で表示しても問題がないようにテスト目的として使う方法です。&lt;/P&gt;
&lt;P&gt;3の方法は、アバター情報をネットワークを介して転送する時に使用します。実際にはByte[]型である&lt;STRONG&gt;AvatarDesciprion.Description&lt;/STRONG&gt;プロパティの情報をネットワークを介して転送し、転送されたデータをAvatarDescription(byte[])コンストラクタに渡すことで同じアバターを生成することができます。&lt;/P&gt;
&lt;P&gt;また、2の方法ではランダムにアバターを生成しますが、ゲームの雰囲気にあったアバターを自由に作りたいという時があります。この場合、ダッシュボード上で仮のゲーマープロファイルを生成、好きなアバターを編集します。そして、作ったアバターでサインインした状態でXNA Game Studioを起動、デバッガ上で該当するアバターのAvatarDescription.Descriptionプロパティの値を保存しておくことで自分の好きなタイプのアバターをゲーム内で使うことができます。&lt;/P&gt;
&lt;H3&gt;AvatarAnimation&lt;/H3&gt;
&lt;P&gt;XNA GS 3.1ではアバター用に31種類のアニメーションが用意されています。このアニメーションを再生する為に使うのが&lt;STRONG&gt;AvatarAnimation&lt;/STRONG&gt;クラスです。AvatarAnimationクラスには現在のアニメーション再生位置、ボーン情報、表情(Expression)などの情報などが含まれます。AvatarAnimationクラスは&lt;STRONG&gt;AvatarAnimationPreset&lt;/STRONG&gt;列挙型を指定して生成、通常は&lt;STRONG&gt;AvatarAnimation.Update&lt;/STRONG&gt;メソッドを使用してアニメーション再生をすることができます。&lt;/P&gt;
&lt;P&gt;また、&lt;STRONG&gt;AvatarAnimation.CurrentPosition&lt;/STRONG&gt;プロパティは現在のアニメーション再生位置を取得することに使いますが、任意の再生位置を設定することで自由にアニメーションすることもできます。&lt;/P&gt;
&lt;H3&gt;AvatarRenderer&lt;/H3&gt;
&lt;P&gt;アバターをゲーム画面に描画するには&lt;STRONG&gt;AvatarRenderer&lt;/STRONG&gt;クラスを使用します。AvatarRendererクラスはBasicEffectクラスとや同じように描画するアバターのWorld、View、Projection行列や、環境光源(AmbientLightColor)や平行光源(LightDirection, LightColor)を指定することができます。BasicEffectと違うところは描画するときにアバターのボーン情報や表情を指定できることです。通常はAvatarAnimationの&lt;STRONG&gt;BoneTransforms&lt;/STRONG&gt;、&lt;STRONG&gt;Expresssion&lt;/STRONG&gt;プロパティを指定します。&lt;/P&gt;
&lt;P&gt;また、指定するボーン情報は&lt;STRONG&gt;IList&amp;lt;Matrix&amp;gt;&lt;/STRONG&gt;型なので、自分で作った自由なアニメーションを設定することができます。アバターのボーン数は71あり、これ以外の数のボーンを指定すると例外が発生することに気をつけてください。カスタムアニメーションサンプルは近日中にクリエーターズ・クラブのサイトで公開予定です。&lt;/P&gt;
&lt;H3&gt;サンプルコード&lt;/H3&gt;
&lt;P&gt;アバターはGamerServicesを利用するので、アバター機能を使うときにはGamerServiceComponentを追加するのを忘れないようにしましょう。忘れた場合はGamerService機能を初期化することを促す例外が発生します。&lt;/P&gt;&lt;PRE class=code&gt;Components.Add(&lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;GamerServicesComponent&lt;/SPAN&gt;(&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;));&lt;/PRE&gt;
&lt;P&gt;&lt;A href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;次にアバターを使うのに必要なオブジェクトを生成します。&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN style="COLOR: green"&gt;// アバター情報をランダムに生成する
&lt;/SPAN&gt;avatarDescription = &lt;SPAN style="COLOR: #2b91af"&gt;AvatarDescription&lt;/SPAN&gt;.CreateRandom();

&lt;SPAN style="COLOR: green"&gt;// アバターアニメーションの生成
&lt;/SPAN&gt;avatarAnimation = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;AvatarAnimation&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #2b91af"&gt;AvatarAnimationPreset&lt;/SPAN&gt;.Celebrate);

&lt;SPAN style="COLOR: green"&gt;// アバター描画用のオブジェクトの生成
&lt;/SPAN&gt;avatarRenderer = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;AvatarRenderer&lt;/SPAN&gt;(avatarDescription);&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;P&gt;次にゲームのアップデート内でアニメーションを以下のようにして更新します。&lt;/P&gt;&lt;PRE class=code&gt;avatarAnimation.Update(gameTime.ElapsedGameTime, &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;);&lt;/PRE&gt;
&lt;P&gt;&lt;A href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;最後にAvatarRendererにアバターを描画するのに必要な行列を設定し、ボーンと表情を指定することでアバターをゲーム画面内に描画することができます。&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN style="COLOR: green"&gt;// アバター描画に必要な行列の設定
&lt;/SPAN&gt;avatarRenderer.World = &lt;SPAN style="COLOR: #2b91af"&gt;Matrix&lt;/SPAN&gt;.CreateRotationY(&lt;SPAN style="COLOR: #2b91af"&gt;MathHelper&lt;/SPAN&gt;.ToRadians(180.0f));
avatarRenderer.Projection = 
    &lt;SPAN style="COLOR: #2b91af"&gt;Matrix&lt;/SPAN&gt;.CreatePerspectiveFieldOfView(&lt;SPAN style="COLOR: #2b91af"&gt;MathHelper&lt;/SPAN&gt;.ToRadians(30.0f),
    GraphicsDevice.Viewport.AspectRatio,
    1, 1000);
avatarRenderer.View = &lt;SPAN style="COLOR: #2b91af"&gt;Matrix&lt;/SPAN&gt;.CreateLookAt(
    &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Vector3&lt;/SPAN&gt;(0, 1, 4),
    &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Vector3&lt;/SPAN&gt;(0, 0.7f, 0),
    &lt;SPAN style="COLOR: #2b91af"&gt;Vector3&lt;/SPAN&gt;.Up);

&lt;SPAN style="COLOR: green"&gt;// ボーンと表情を指定してアバターを描画する
&lt;/SPAN&gt;avatarRenderer.Draw(avatarAnimation.BoneTransforms, avatarAnimation.Expression);&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;&lt;A href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;P&gt;上記のコードを実行すると、以下のようにアバターが画面に表示されます。このコードではランダムにアバターを作っているので実行するたびに違うアバターが表示されます。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/avatar01_1159B/itoxe1-78_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/avatar01_1159B/itoxe1-78_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: block; FLOAT: none; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: auto; BORDER-LEFT-WIDTH: 0px; MARGIN-RIGHT: auto" title=itoxe1-78 border=0 alt=itoxe1-78 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/avatar01_1159B/itoxe1-78_thumb.png" width=644 height=364 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/avatar01_1159B/itoxe1-78_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;H3&gt;アバターを使う上での注意点&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;GamerServiceComponentを追加するのを忘れないこと &lt;/LI&gt;
&lt;LI&gt;現状でアバターはXbox 360上でのみ動作するようになっています。ただし、アバター関連のコードをWindows上で走らせても例外が発生することなく動作します。 &lt;/LI&gt;
&lt;LI&gt;ゲーム内で使用するときには、背の高いのから低いのまで、痩せ型から太り気味といったさまざまなタイプのアバターが存在居るということに気をつける必要があります。例えば、アバターを矩形内に表示させたい時に身長の低いアバター向けに調整してしまうと、背の高いアバターを表示させると頭の上が途切れてしまうという問題があります。 &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;参考URL:&lt;/P&gt;
&lt;P&gt;&lt;A title=http://blogs.msdn.com/dejohn/archive/2009/05/08/avatar-api-preview-for-xna-game-studio-3-1.aspx href="http://blogs.msdn.com/dejohn/archive/2009/05/08/avatar-api-preview-for-xna-game-studio-3-1.aspx" mce_href="http://blogs.msdn.com/dejohn/archive/2009/05/08/avatar-api-preview-for-xna-game-studio-3-1.aspx"&gt;http://blogs.msdn.com/dejohn/archive/2009/05/08/avatar-api-preview-for-xna-game-studio-3-1.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title=http://blogs.msdn.com/dejohn/archive/2009/05/11/what-to-do-while-an-avatar-loads.aspx href="http://blogs.msdn.com/dejohn/archive/2009/05/11/what-to-do-while-an-avatar-loads.aspx" mce_href="http://blogs.msdn.com/dejohn/archive/2009/05/11/what-to-do-while-an-avatar-loads.aspx"&gt;http://blogs.msdn.com/dejohn/archive/2009/05/11/what-to-do-while-an-avatar-loads.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title=http://blogs.msdn.com/dejohn/archive/2009/05/18/lights-camera-avatar.aspx href="http://blogs.msdn.com/dejohn/archive/2009/05/18/lights-camera-avatar.aspx" mce_href="http://blogs.msdn.com/dejohn/archive/2009/05/18/lights-camera-avatar.aspx"&gt;http://blogs.msdn.com/dejohn/archive/2009/05/18/lights-camera-avatar.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title=http://blogs.msdn.com/dejohn/archive/2009/05/20/avatardescription-isvalid-when-why-the-description-returned-is-invalid.aspx href="http://blogs.msdn.com/dejohn/archive/2009/05/20/avatardescription-isvalid-when-why-the-description-returned-is-invalid.aspx" mce_href="http://blogs.msdn.com/dejohn/archive/2009/05/20/avatardescription-isvalid-when-why-the-description-returned-is-invalid.aspx"&gt;http://blogs.msdn.com/dejohn/archive/2009/05/20/avatardescription-isvalid-when-why-the-description-returned-is-invalid.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title=http://blogs.msdn.com/dejohn/archive/2009/05/28/avatardescription-description.aspx href="http://blogs.msdn.com/dejohn/archive/2009/05/28/avatardescription-description.aspx" mce_href="http://blogs.msdn.com/dejohn/archive/2009/05/28/avatardescription-description.aspx"&gt;http://blogs.msdn.com/dejohn/archive/2009/05/28/avatardescription-description.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9800657" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+_D530EC30FC30E030EF30FC30AF30_/default.aspx">XNA フレームワーク</category><category domain="http://blogs.msdn.com/ito/archive/tags/_B030E930D530A330AF30B930_/default.aspx">グラフィクス</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+3.1/default.aspx">XNA 3.1</category></item><item><title>自動XNBファイルシリアライズ</title><link>http://blogs.msdn.com/ito/archive/2009/06/15/automatic-xnb-serialization.aspx</link><pubDate>Tue, 16 Jun 2009 05:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9757683</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/ito/comments/9757683.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9757683</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;コンテントタイプライター/リーダーを書くのは面倒&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;XNA Game Studioのコンテント・パイプラインでのデータの流れは下図のようになっています。オフラインプロセスは開発しているVisual Studio上でビルドしたときにWindows上で処理されるプロセスで、オフラインプロセスはWindows、Xbox 360、Zune上でゲームを実行したときに処理されるプロセスです。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/automaticXNBserialization_D3C8/cp-001_1.png" target="_blank" mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/automaticXNBserialization_D3C8/cp-001_1.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="cp-001" border="0" alt="cp-001" src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/automaticXNBserialization_D3C8/cp-001_thumb_1.png" width="552" height="772" mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/automaticXNBserialization_D3C8/cp-001_thumb_1.png" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;元からサポートされているデータをそのまま扱う場合には良いのですが、カスタムデータを扱う場合に書かないといけないのが、ContentTypeWrite/ContentTypeReaderでした。特に面倒だったのが、読み込みと書き込みという対称的な処理をするのにContentTypeWriterはオフラインプロセス側、ContentTypeReaderはオンラインプロセス側と別々の場所で書かないといけないことでした。&lt;/p&gt;  &lt;p&gt;この面倒臭さを解決する為に、XNA GS 3.1では自動XNBシリアライズ機能が追加されました。この機能を使うことで、多くの場面でContentTypeWriter/ContentTypeReaderを書く必要がなくなりました。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;自動XNBシリアライズ機能の使い方&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;自動XNBシリアライズは.Netのリフレクション機能を使って実装されています。ContentTypeWriter/ContentTypeReaderが指定されていない場合、自動XNAシリアライズが発生し、以下のルールに沿って動作します。&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;公開(public)メンバー、プロパティがシリアライズの対象になる &lt;/li&gt;    &lt;li&gt;シリアライズしたくないメンバーがある場合は、&lt;strong&gt;[ContentSerializerIgnore]&lt;/strong&gt;属性を指定することで、シリアライズしないように指定できる &lt;/li&gt;    &lt;li&gt;private, protected, internalなどの非公開メンバーをシリアライズしたい場合は&lt;strong&gt;[ContentSerializer]&lt;/strong&gt;属性を指定する &lt;/li&gt;    &lt;li&gt;シリアライズしたいデータ構造が再帰的な参照を含む場合は&lt;strong&gt;[ContentSerializer(SharedResource = true)]&lt;/strong&gt;を指定する &lt;/li&gt;    &lt;li&gt;コンテント・パイプライン内とランタイム時の型が違う場合、&lt;strong&gt;[ContentSerializerRuntimeType(“タイプ名”)]&lt;/strong&gt;を指定する &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;シンプルな例&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;例えば以下のようなデータをゲームで扱うとします。ゲームとコンテント・パイプラインで共有するデータなので、ゲームプロジェクトの他に共有するデータを入れるためのプロジェクトを作る必要があります。例えばMyDataTypesという名前のプロジェクトです。&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: green"&gt;// ねこクラス
&lt;/span&gt;&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Neko
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;public string &lt;/span&gt;Name;     &lt;span style="color: green"&gt;// 名前
    &lt;/span&gt;&lt;span style="color: blue"&gt;public float &lt;/span&gt;Weight;    &lt;span style="color: green"&gt;// 体重
    &lt;/span&gt;&lt;span style="color: blue"&gt;public int &lt;/span&gt;Tails;       &lt;span style="color: green"&gt;// 尻尾の数
&lt;/span&gt;}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;このデータをコンテント・パイプライン内に読み込むために以下のようなXMLファイル、cats.xmlを書きます。&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #a31515"&gt;xml &lt;/span&gt;&lt;span style="color: red"&gt;version&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color: red"&gt;encoding&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;utf-8&lt;/span&gt;&amp;quot; &lt;span style="color: blue"&gt;?&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;XnaContent&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Asset &lt;/span&gt;&lt;span style="color: red"&gt;Type&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;MyDataTypes.Neko[]&lt;/span&gt;&amp;quot;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Item&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;たま&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Weight&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;8&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Weight&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Tails&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;1&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Tails&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Item&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Item&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;ねこまた&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Weight&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;12&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Weight&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Tails&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;2&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Tails&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Item&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Asset&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;XnaContent&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;

&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;作ったXMLファイルをコンテントとして追加した後に、そのデータを読み込むコードをゲーム側のコード(LoadContentメソッド内など)に以下のコードを追加します。&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: #2b91af"&gt;Neko&lt;/span&gt;[] cats = Content.Load&amp;lt;&lt;span style="color: #2b91af"&gt;Neko[]&lt;/span&gt;&amp;gt;(&lt;span style="color: #a31515"&gt;&amp;quot;cats&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;後は、F5を押すだけで変数catsには必要なデータが読み込まれます。3.0以前のようにContentTypeReader/ContentTypeReaderを書かなくても良いので、データ構造の宣言、データファイルの生成、読み込み部分のコードをゲーム内に追加という単純な作業でカスタムデータをゲーム内で読み込むことができます。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;オフラインとランタイムで型が違う場合&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/ito/archive/2009/06/12/content-pipeline-types-31.aspx" target="_blank" mce_href="http://blogs.msdn.com/ito/archive/2009/06/12/content-pipeline-types-31.aspx"&gt;XNA GS 3.1のコンテント・パイプライン内で使われる型&lt;/a&gt;の図を見ると、コンテント・パイプライン内ではTexture2DContentだけど、ゲーム内ではTexture2Dのように、オフライン時とランタイム時では型が異なるケースがあります。例えば、ゲーム内では以下のデータ構造にしたい場合があるとします。&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: green"&gt;// ねこクラス
&lt;/span&gt;&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Neko
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;public string &lt;/span&gt;Name;         &lt;span style="color: green"&gt;// 名前
    &lt;/span&gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Texture2D &lt;/span&gt;Texture;   &lt;span style="color: green"&gt;// テクスチャ
&lt;/span&gt;}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;この場合、Textureはコンテント・パイプライン内で使う型がTexture2DContentとなるので、以下のようにContentSerializerRuntimeType属性を使ってランタイム時の型を指定します。&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: green"&gt;// ねこコンテント
&lt;/span&gt;[&lt;span style="color: #2b91af"&gt;ContentSerializerRuntimeType&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;MyGame.Neko, MyGame&amp;quot;&lt;/span&gt;)]
&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;NekoContent
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;public string &lt;/span&gt;Name;         &lt;span style="color: green"&gt;// 名前
    &lt;/span&gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Texture2DContent &lt;/span&gt;Texture;   &lt;span style="color: green"&gt;// テクスチャ
&lt;/span&gt;}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;strong&gt;パフォーマンス&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;以上のように自動XNBシリアライズ機能は非常に便利な機能ですが、前述のようにデータの書き込みと読み込み時にリフレクション機能を使用するのでContentTypeWriter/ContentTypeReaderに比べると不必要なメモリ確保や、ボクシングなどが発生し、処理時間も多く掛かるので理論的にはロード時間が以前より長くなります。&lt;/p&gt;

&lt;p&gt;ですが、現実的にはカスタムデータの多くがゲーム内のパラメーターなど、他のコンテントに比べると数は少ないものなので、ロード時間が長くなるといっても無視できる範囲のことが多いと思われます。&lt;/p&gt;

&lt;p&gt;ただし、カスタムデータを数百、数千の配列で持つようなケースでは極端にロード時間が長くなる場合もあります。その場合は、今までどおりContentTypeWriter/ContentTypeReaderを使うことによってリフレクションによる速度低下を防ぐことができます。便利さを優先するには自動XNBシリアライズ、速度を優先するならContentTypeWriter/ContentTypeReaderといった感じに上手に使い分けましょう。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;サンプル・コード&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;自動XNBシリアライズ機能を使って&lt;a href="http://blogs.msdn.com/ito/archive/2007/05/02/content-pipeline-part3.aspx" target="_blank" mce_href="http://blogs.msdn.com/ito/archive/2007/05/02/content-pipeline-part3.aspx"&gt;コンテント・パイプラインの紹介の時&lt;/a&gt;に作った日本語表示のサンプルを3.1用に書き換えてみました。元のサンプルと比べると、共有するデータ型を記述するプロジェクト自体を書く必要がなくなり、ContentTypeWriter/ContentTypeReaderを書く必要が無くなったのでシンプルになっています。&lt;/p&gt;

&lt;p&gt;&lt;a title="http://higeneko.net/hinikeni/sample/TextMessageSample31.zip" href="http://higeneko.net/hinikeni/sample/TextMessageSample31.zip" mce_href="http://higeneko.net/hinikeni/sample/TextMessageSample31.zip"&gt;http://higeneko.net/hinikeni/sample/TextMessageSample31.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;元ネタ:&lt;a title="http://blogs.msdn.com/shawnhar/archive/2009/03/25/automatic-xnb-serialization-in-xna-game-studio-3-1.aspx" href="http://blogs.msdn.com/shawnhar/archive/2009/03/25/automatic-xnb-serialization-in-xna-game-studio-3-1.aspx" mce_href="http://blogs.msdn.com/shawnhar/archive/2009/03/25/automatic-xnb-serialization-in-xna-game-studio-3-1.aspx"&gt;http://blogs.msdn.com/shawnhar/archive/2009/03/25/automatic-xnb-serialization-in-xna-game-studio-3-1.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9757683" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+_D530EC30FC30E030EF30FC30AF30_/default.aspx">XNA フレームワーク</category><category domain="http://blogs.msdn.com/ito/archive/tags/_B330F330C630F330C830FB30D130A430D730E930A430F330_/default.aspx">コンテント・パイプライン</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+3.1/default.aspx">XNA 3.1</category></item><item><title>AppWeek</title><link>http://blogs.msdn.com/ito/archive/2009/06/15/appweek.aspx</link><pubDate>Tue, 16 Jun 2009 04:12:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9757359</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/ito/comments/9757359.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9757359</wfw:commentRss><description>&lt;p&gt; XNAプラットフォーム＆ツールチームの主な作業はXNA Game Studioを作ることですが、リリースの直前には、実際に作ったものに問題がないか、また使いやすいかを確認するために開発中のフレームワークを使って実際にゲームを作ってみるAppWeekというものがあります。&lt;/p&gt;  &lt;p&gt;XNA GSE 1.0の頃に作られた物の中には&lt;a href="http://creators.xna.com/en-US/minigame/catapult" target="_blank"&gt;Catapult&lt;/a&gt;、&lt;a href="http://creators.xna.com/en-US/minigame/minjie" target="_blank"&gt;Minji&lt;/a&gt;といったサンプルとして公開されているものもあります。XNA GS 3.0の時は忙しすぎてAppWeekをする暇がなかったのですが、今回のXNA GS 3.1ではAppWeekがありました。&lt;/p&gt;  &lt;p&gt;今回のAppWeekは４日間という短期間でしたが15個のゲームが作られました。特に3.1で追加された機能のテストを兼ねているので今回はアバターとビデオを使ったゲームが殆どでした。&lt;/p&gt;  &lt;p&gt;Shawn Hargreaves氏は&lt;a href="http://creators.xna.com/en-US" target="_blank"&gt;Creators Club Onlineサイト&lt;/a&gt;にあるサンプルコードを組み合わせて作った&lt;a href="http://blogs.msdn.com/shawnhar/archive/2009/06/12/appweek.aspx" target="_blank"&gt;「Super Avatar Sample Smashup EXTREME! ‘Capture the Cat’ edition」&lt;/a&gt;を作りました。このゲームではフィールド内の相手陣地のねこを自陣までつれてくるのが勝利の条件で、一匹のねこをめぐって宇宙船やら、戦車を使った争奪戦を繰り広げるネットワーク対応のゲームでした。&lt;/p&gt;  &lt;p&gt;Brandon Bloom氏の作った&lt;a href="http://blog.brandonbloom.name/2009/06/appweek.html" target="_blank"&gt;「Avatar Boxing」&lt;/a&gt;は、アバターを使ったボクシングゲームでした。アバターの各ボーンを自由に変更することで任意のアニメーションを設定で機能を使ったものでした。ちなみにこのゲームを作るときには&lt;strong&gt;BoundingSphere.Transform&lt;/strong&gt;がサポートするのは平行移動のみの行列でしたが、それでは不便ということで3.1では平行移動、回転、スケールの行列もサポートするようになりました。&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;私も３日間だけ時間が取れたので、アバターを使ったゲームを作ってみました。タイトルは「Columns Flash」、落ちものパズルゲームにアバターを組み合わせたものです。今回は贅沢にすべてのブロックを3Dにしてみました。&lt;/p&gt;  &lt;p&gt;ブロックを消すと、下のスクリーンショットのようにアバターが拍手するアニメーションしたり、&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-71_2.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="itoxe1-71" border="0" alt="itoxe1-71" src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-71_thumb.png" width="644" height="364" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;コンボゲージが溜まったときにYボタンを押すと、下のスクリーンショットのようにコンボアタックを発動して対戦相手に対していじわる攻撃を繰り出すことができます。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-69_2.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="itoxe1-69" border="0" alt="itoxe1-69" src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-69_thumb.png" width="644" height="364" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;こちらはLv1コンボアタックの「ゆさぶり」で、相手のボード全体がふらふらと揺れてプレイししづらくなります。もちろん、アバターも困った顔をしています。3Dで描画しているので、コンボアタックも3Dならではの攻撃になっています。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-70_2.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="itoxe1-70" border="0" alt="itoxe1-70" src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-70_thumb.png" width="644" height="364" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;こちらは、Lv2コンボアタックの「ちぢこまり」です。ボードが小さくなるだけなのですが、この攻撃をされた対戦相手は画面が良く見えなくなるので、モニタの前に張り付く姿が笑えます。&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-73_2.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="itoxe1-73" border="0" alt="itoxe1-73" src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-73_thumb.png" width="644" height="364" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;で、こちらはLv3コンボアタックの「ひっくりがえし」です。ボードが180度回転して、ブロックの上下が逆さまになります。この手のゲームでは連鎖のタネをばら撒くのが勝つコツですが、そういった計画を文字通りひっくりがえしてしまう攻撃です。アバターも驚いた表情をします。 &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-76_2.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="itoxe1-76" border="0" alt="itoxe1-76" src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-76_thumb.png" width="644" height="364" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;対戦が白熱してくると、やられたらやり返すという場面が増えてくるので、二人同時にコンボアタック発動して下のように派手な画面になることもしばしばあります。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-74_2.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="itoxe1-74" border="0" alt="itoxe1-74" src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-74_thumb.png" width="644" height="364" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;そして、ゲームオーバーになると、下の画面のように負けたほうのブロックが飛び散り、勝ったプレイヤーのアバターは喜びのアニメーション、負けた方はうなだれたアニメーションをするようになっています。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-75_2.png" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="itoxe1-75" border="0" alt="itoxe1-75" src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/appweek_DC24/itoxe1-75_thumb.png" width="644" height="364" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;このゲームではアバターの基本描画と、基本アニメーションセットしか使っていませんが、それでも自分のアバターがそのままゲーム内でさまざまなリアクションをするというのは楽しいものでした。また、今回のゲームは絵も含めてフルスクラッチ(背景の写真はハイキングへ行ったときに撮った写真)で制作しましたが、３日間という短期間でここまでのゲームを作ることができるという、C#を使った開発効率の高さにはいまだに感心させられます。&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9757359" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/_397DCB4E_/default.aspx">紹介</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+_D530EC30FC30E030EF30FC30AF30_/default.aspx">XNA フレームワーク</category><category domain="http://blogs.msdn.com/ito/archive/tags/_B230FC30E0308B957A76_/default.aspx">ゲーム開発</category></item><item><title>XNA GS 3.1のコンテント・パイプラインで使われる型</title><link>http://blogs.msdn.com/ito/archive/2009/06/12/content-pipeline-types-31.aspx</link><pubDate>Sat, 13 Jun 2009 05:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9741379</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/ito/comments/9741379.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9741379</wfw:commentRss><description>&lt;P&gt;以前、&lt;A href="http://blogs.msdn.com/shawnhar/default.aspx" target=_blank mce_href="http://blogs.msdn.com/shawnhar/default.aspx"&gt;Shawn Hargreaves氏のブログ&lt;/A&gt;でXNA GS 2.0のコンテント・パイプライン内でデータが変換される過程図が紹介されました。&lt;/P&gt;
&lt;P&gt;&lt;A title=http://blogs.msdn.com/shawnhar/archive/2007/10/10/content-pipeline-types.aspx href="http://blogs.msdn.com/shawnhar/archive/2007/10/10/content-pipeline-types.aspx" mce_href="http://blogs.msdn.com/shawnhar/archive/2007/10/10/content-pipeline-types.aspx"&gt;http://blogs.msdn.com/shawnhar/archive/2007/10/10/content-pipeline-types.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;XNA GS 3.1がリリースされたので、それに合わせて元の図を翻訳し、SoundEffect、Video等の新しい型を追加した図を作ってみました。アセットファイルがどのようにインポートされ、プロセッサで処理され、ContentTypeWriterからXNBファイルとして書き出されるまに使われる型情報を網羅しているので、カスタムインポータや、カスタムプロセッサを作るときに役立つと思います。&lt;/P&gt;
&lt;P&gt;左側の水色の部分はコンテント・パイプライン内で処理される部分で、右側の黄色い部分はゲーム実行時に処理される部分です。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/contentpipelinetypes31_1120B/ContentPipelineTypes_4.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/contentpipelinetypes31_1120B/ContentPipelineTypes_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=ContentPipelineTypes border=0 alt=ContentPipelineTypes src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/contentpipelinetypes31_1120B/ContentPipelineTypes_thumb_1.png" width=1247 height=1288 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/contentpipelinetypes31_1120B/ContentPipelineTypes_thumb_1.png"&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9741379" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+_D530EC30FC30E030EF30FC30AF30_/default.aspx">XNA フレームワーク</category><category domain="http://blogs.msdn.com/ito/archive/tags/_B330F330C630F330C830FB30D130A430D730E930A430F330_/default.aspx">コンテント・パイプライン</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+3.1/default.aspx">XNA 3.1</category></item><item><title>動画再生</title><link>http://blogs.msdn.com/ito/archive/2009/06/11/video-playback.aspx</link><pubDate>Thu, 11 Jun 2009 23:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9727601</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/ito/comments/9727601.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9727601</wfw:commentRss><description>&lt;P&gt;&lt;STRONG&gt;かんたん動画再生機能&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;XNA GS 3.1で動画を再生するには以下のステップを踏みます。 &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;再生したい動画をコンテントとして追加する &lt;/LI&gt;
&lt;LI&gt;Video情報をContent.Load&amp;lt;Video&amp;gt;で読み込む &lt;/LI&gt;
&lt;LI&gt;VideoPlayerクラスを使って再生 &lt;/LI&gt;
&lt;LI&gt;VideoPlayer.GetTexture()メソッドを使って現在のフレームのテクスチャを取得し描画する &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;変数宣言&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;動画再生するには、Videoクラスと、VideoPlayerクラスを使います。Videoクラスには再生する動画ファイル情報、動画のサイズやフレームレートなどの情報を含んでいます。VidoPlayerクラスは実際に動画再生するためのクラスで、このクラスを介して動画の再生、停止、一時停止、ループ再生の設定、現フレームをテクスチャとして取得することができます。&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN style="COLOR: green"&gt;// 再生する動画
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Video &lt;/SPAN&gt;video;

&lt;SPAN style="COLOR: green"&gt;// 動画再生用のプレイヤーインスタンス
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;VideoPlayer &lt;/SPAN&gt;videoPlayer = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;VideoPlayer&lt;/SPAN&gt;();&lt;/PRE&gt;
&lt;P&gt;&lt;STRONG&gt;動画情報の読み込みと再生&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;動画情報の読み込みは他のアセットと同様、コンテントマネージャーを介して行います。読み込んだ動画情報をビデオプレーヤーに渡すことで動画再生をすることができます。&lt;/P&gt;
&lt;P&gt;Xbox 360の上で、デコーディングなどの動画再生処理は別スレッドで行われているのでゲームのメインスレッドへの影響は最小限になっています。&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN style="COLOR: green"&gt;// 動画情報の読み込み
&lt;/SPAN&gt;video = Content.Load&amp;lt;&lt;SPAN style="COLOR: #2b91af"&gt;Video&lt;/SPAN&gt;&amp;gt;(&lt;SPAN style="COLOR: #a31515"&gt;"bear"&lt;/SPAN&gt;);

&lt;SPAN style="COLOR: green"&gt;// ループ再生の設定
&lt;/SPAN&gt;videoPlayer.IsLooped = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;

&lt;SPAN style="COLOR: green"&gt;// 指定のビデオを再生する
&lt;/SPAN&gt;videoPlayer.Play(video);&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;P&gt;&lt;A href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;再生フレームの取得&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;動画の音声部分は自動的に再生されますが、画像部分を表示するにはビデオプレイヤーから現在のフレームをテクスチャとして取得し、SpriteBatch等を使って描画します。GetTextureを呼ぶタイミングは動画のfpsに関係なくいつでも取得することができます。&lt;/P&gt;
&lt;P&gt;XNA GS 3.1の動画再生では常に実時間に合わせて動画再生を行うように実装されています。例えば高解像度の動画を性能の低いPC上で再生した場合は動画のフレームレートは落ちるけど、時間的には正しい動画再生をするようになっています。&lt;/P&gt;
&lt;P&gt;取得するテクスチャは別スレッドでデコードされた時間的に最も近い動画フレームです。ですから、30fpsの動画を60fpsで動作しているゲーム内で取得した場合は、2フレームが同じ動画フレームを取得することになり、逆に60fpsの動画があった場合、30fpsで動作しているゲーム内で動画フレームを取得した場合は動画データのフレームがスキップすることになります。&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN style="COLOR: green"&gt;// 現在の再生フレームをテクスチャとして取得
&lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Texture2D &lt;/SPAN&gt;texture = videoPlayer.GetTexture();

&lt;SPAN style="COLOR: green"&gt;// 取得したテクスチャを使って描画
&lt;/SPAN&gt;spriteBatch.Begin();
spriteBatch.Draw( texture, pos, &lt;SPAN style="COLOR: #2b91af"&gt;Color&lt;/SPAN&gt;.White);
spriteBatch.End();&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;
&lt;P&gt;以下は、Windowsについてくるbear動画をXNA GS 3.1上で再生したものです。10行以下のコードで簡単に動画を再生できるようになっています。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/videoplayback_FD61/itoxe1-59_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/videoplayback_FD61/itoxe1-59_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=itoxe1-59 border=0 alt=itoxe1-59 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/videoplayback_FD61/itoxe1-59_thumb.png" width=644 height=364 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/videoplayback_FD61/itoxe1-59_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;また、再生フレームはテクスチャとして使えるので、取得したテクスチャを3Dモデルに適応することもできます。下の図を見て複数の動画が再生していると気づいた人もいると思いますが、VideoPlayerのインスタンスは複数作ることができ、それぞれに別々の動画を再生することもできます。ただし、それぞれの動画をデコード処理するのに時間が掛かるので、複数のHD動画再生するにはかなりのCPUパワーを必要とすることに注意してください。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/videoplayback_FD61/itoxe1-60_2.png" target=_blank mce_href="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/videoplayback_FD61/itoxe1-60_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-TOP: 0px; MARGIN-RIGHT: auto; BORDER-RIGHT: 0px" title=itoxe1-60 border=0 alt=itoxe1-60 src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/videoplayback_FD61/itoxe1-60_thumb.png" width=644 height=364 mce_src="http://blogs.msdn.com/blogfiles/ito/WindowsLiveWriter/videoplayback_FD61/itoxe1-60_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;STRONG&gt;再生フォーマット&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;XNA GS 3.1で再生できる動画の条件として以下があります。&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;DRM(デジタル著作権管理)が施された動画は再生できない &lt;/LI&gt;
&lt;LI&gt;WMV-9 “Main”プロファイル、VC-1エンコードされたもの &lt;/LI&gt;
&lt;LI&gt;CBR(固定ビットレート) &lt;/LI&gt;
&lt;LI&gt;音声トラックがあること &lt;/LI&gt;
&lt;LI&gt;音声トラックはWMAエンコード、1パスCBR &lt;/LI&gt;
&lt;LI&gt;XNA GSがサポートする最大ビットレートは以下の通り &lt;/LI&gt;&lt;/OL&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=573&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=102&gt;プロファイル&lt;/TD&gt;
&lt;TD vAlign=top width=103&gt;レベル&lt;/TD&gt;
&lt;TD vAlign=top width=130&gt;最大ビットレート&lt;/TD&gt;
&lt;TD vAlign=top width=236&gt;解像度とフレームレート&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;Main&lt;/TD&gt;
&lt;TD vAlign=top width=105&gt;Low&lt;/TD&gt;
&lt;TD vAlign=top width=130&gt;2 Mbps&lt;/TD&gt;
&lt;TD vAlign=top width=234&gt;320 x 240 @ 24Hz (QVGA)&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top width=107&gt;Medium&lt;/TD&gt;
&lt;TD vAlign=top width=129&gt;10 Mbps&lt;/TD&gt;
&lt;TD vAlign=top width=233&gt;720 x 480 @ 30Hz (480p) &lt;BR&gt;720 x 576 @ 25Hz (576p)&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=103&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top width=108&gt;High&lt;/TD&gt;
&lt;TD vAlign=top width=129&gt;20 Mbps&lt;/TD&gt;
&lt;TD vAlign=top width=233&gt;1280 x 720 @ 30Hz (720p)&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9727601" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+_D530EC30FC30E030EF30FC30AF30_/default.aspx">XNA フレームワーク</category><category domain="http://blogs.msdn.com/ito/archive/tags/_B030E930D530A330AF30B930_/default.aspx">グラフィクス</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+3.1/default.aspx">XNA 3.1</category></item><item><title>XNA Game Studio 3.1がリリース</title><link>http://blogs.msdn.com/ito/archive/2009/06/11/xnags-3-1-released.aspx</link><pubDate>Thu, 11 Jun 2009 20:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9727245</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/ito/comments/9727245.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9727245</wfw:commentRss><description>&lt;P&gt;XNA Game Studio 3.1がリリースされました。&lt;/P&gt;
&lt;P&gt;&lt;A title=http://www.microsoft.com/downloads/details.aspx?FamilyID=80782277-d584-42d2-8024-893fcd9d3e82&amp;amp;displaylang=en href="http://www.microsoft.com/downloads/details.aspx?FamilyID=80782277-d584-42d2-8024-893fcd9d3e82&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=80782277-d584-42d2-8024-893fcd9d3e82&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=80782277-d584-42d2-8024-893fcd9d3e82&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;インストール時の注意点&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;インストールするときの注意として、3.0をアンインストールしてから3.1をインストール必要があります。XNA GS 3.1では3.0、3.1の両方をサポートしているので、3.0で作ったゲームがそのまま遊べますし、3.0で作ったプロジェクトもそのまま読み込むことができます。また、プロジェクトメニューから3.1用のプロジェクトへの更新もできるようになっています。&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;新機能&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;XNA GS 3.1では以下の新機能が追加されました。&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;アバター(Xbox 360のみ) &lt;/LI&gt;
&lt;LI&gt;動画再生 &lt;/LI&gt;
&lt;LI&gt;XNBファイルの自動シリアライズ &lt;/LI&gt;
&lt;LI&gt;Xbox Live Party (Xbox 360のみ) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;アバターAPIではゲーマープロフィールのアバター情報から、アバターを描画することができ、いくつかの基本的なアニメーションを再生することができます。また、任意のボーンデータを設定することで自分のアバターをゲーム内でキャラクターとして使用することもできます。&lt;/P&gt;
&lt;P&gt;動画再生ではWMVファイルをコンテントとして追加することで、ゲーム内で動画再生することが可能となりました。2Dの動画再生にも使えますが、動画フレームはテクスチャデータとして取得できるので3Dモデルに貼り付けて再生することもできます。&lt;/P&gt;
&lt;P&gt;今まではXNBファイルに独自のデータ形式を格納するにはそれぞれの型に対応するTypeWriter/TypeReaderを作る必要がありましたが、XNBファイル自動シリアライズ機能を使うことで、TypeWriter/TypeReaderを書かなくても独自のデータ形式を簡単に使えるようになりました。&lt;/P&gt;
&lt;P&gt;Xbox Live Party機能、今までは複数の友人をプレイしているゲームに招待する場合に、ユーザーがひとりひとり手動で招待する必要がありましたが、&lt;STRONG&gt;LocalNetworkGamer.SendPartyInvites&lt;/STRONG&gt;メソッドを使うことでプログラム側から複数のパーティーメンバーを一気に招待することができるようになりました。ユーザーがパーティーメンバーであるかどうかを調べるには&lt;STRONG&gt;SignedInGamer.PartySize&lt;/STRONG&gt;プロパティの内容で判断できます。&lt;/P&gt;
&lt;P&gt;次回からは、これらの新機能の詳しく紹介していきます。&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9727245" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/_397DCB4E_/default.aspx">紹介</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA/default.aspx">XNA</category><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+3.1/default.aspx">XNA 3.1</category></item><item><title>vFetchでスキンアニメーション</title><link>http://blogs.msdn.com/ito/archive/2009/05/10/more-bones-10.aspx</link><pubDate>Mon, 11 May 2009 05:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9601289</guid><dc:creator>Yuichi Ito</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/ito/comments/9601289.aspx</comments><wfw:commentRss>http://blogs.msdn.com/ito/commentrss.aspx?PostID=9601289</wfw:commentRss><description>&lt;p&gt;2009/06/25 追記: XNA GS 3.1用のサンプルを &lt;a href="http://higeneko.net/hinikeni/sample/xna31/vFetchSkinningSample.zip"&gt;http://higeneko.net/hinikeni/sample/xna31/vFetchSkinningSample.zip&lt;/a&gt;にアップしました。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;vFetchでスキンアニメーション&lt;/strong&gt;&lt;strong&gt;、その3:&lt;strong&gt;vFetchでスキンアニメーション&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;スキンアニメーションで使えるボーン数を増やそうシリーズの記事も１０回目となる今回で終わりです。今回はvFetchを使ったスキンアニメーションの実装例を紹介します。&lt;/p&gt;  &lt;p&gt;XNA Game Studio 3.0で動作するサンプルを用意しました。基本的に&lt;a href="http://creators.xna.com/en-US/sample/skinnedmodel" mce_href="http://creators.xna.com/en-US/sample/skinnedmodel"&gt;Skinned Model&lt;/a&gt;サンプルと同じ使い方ですが、今回のサンプルはXbox 360上でのみ動作することに注意してください。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://higeneko.net/hinikeni/sample/vFetchSkinningSample.zip" mce_href="http://higeneko.net/hinikeni/sample/vFetchSkinningSample.zip"&gt;http://higeneko.net/hinikeni/sample/vFetchSkinningSample.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160; また、今回のサンプルは&lt;a href="http://blogs.msdn.com/ito/archive/2009/05/05/more-bones-05.aspx" target="_blank" mce_href="http://blogs.msdn.com/ito/archive/2009/05/05/more-bones-05.aspx"&gt;クォータニオンでスキンアニメーションサンプル&lt;/a&gt;に以下の変更を加えたものになっています。 &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;BoneVertexの実装 &lt;/li&gt;    &lt;li&gt;AnimationPlayerの変更 &lt;/li&gt;    &lt;li&gt;モデルの頂点宣言の変更 &lt;/li&gt;    &lt;li&gt;ボーン格納用頂点バッファの生成 &lt;/li&gt;    &lt;li&gt;シェーダーの変更 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;BoneVertexの実装&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;ボーン情報を頂点バッファへ格納するためのBoneVertex構造体を作ります。この構造体には実際のデータの他に頂点要素宣言と、ストライド情報が含まれています。&lt;/p&gt;  &lt;p&gt;この宣言の仕方は独自の頂点データを宣言する基本的な手法です。StructLayoutアトリビュートを使って構造体のメンバーがコンパイラーによって並び替えが起こらないようにし、静的なVertexElements配列と、構造体のバイトサイズを返すSizeInBytesを宣言します。&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
/// &lt;/span&gt;&lt;span style="color: green"&gt;ボーン格納用の頂点構造体
&lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
&lt;/span&gt;[&lt;span style="color: #2b91af"&gt;StructLayout&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;LayoutKind&lt;/span&gt;.Sequential)]
&lt;span style="color: blue"&gt;public struct &lt;/span&gt;&lt;span style="color: #2b91af"&gt;BoneVertex
&lt;/span&gt;{
    &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="color: green"&gt;回転部分(クォータニオン) 
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
    &lt;/span&gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Quaternion &lt;/span&gt;Rotation;

    &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="color: green"&gt;平行移動部分
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
    &lt;/span&gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Vector3 &lt;/span&gt;Translation;

    &lt;span style="color: blue"&gt;public &lt;/span&gt;BoneVertex( &lt;span style="color: #2b91af"&gt;Quaternion &lt;/span&gt;rotation, &lt;span style="color: #2b91af"&gt;Vector3 &lt;/span&gt;translation )
    {
        Rotation = rotation;
        Translation = translation;
    }

    &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="color: green"&gt;頂点宣言
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
    &lt;/span&gt;&lt;span style="color: blue"&gt;public static &lt;/span&gt;&lt;span style="color: #2b91af"&gt;VertexElement&lt;/span&gt;[] VertexElements = {
        &lt;span style="color: green"&gt;// Rotation (16バイト)
        &lt;/span&gt;&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;VertexElement&lt;/span&gt;(1, 0, &lt;span style="color: #2b91af"&gt;VertexElementFormat&lt;/span&gt;.Vector4,
                                &lt;span style="color: #2b91af"&gt;VertexElementMethod&lt;/span&gt;.Default,
                                &lt;span style="color: #2b91af"&gt;VertexElementUsage&lt;/span&gt;.TextureCoordinate, 1),
        &lt;span style="color: green"&gt;// Traslation (12バイト)
        &lt;/span&gt;&lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;VertexElement&lt;/span&gt;(1,16, &lt;span style="color: #2b91af"&gt;VertexElementFormat&lt;/span&gt;.Vector3,
                                &lt;span style="color: #2b91af"&gt;VertexElementMethod&lt;/span&gt;.Default,
                                &lt;span style="color: #2b91af"&gt;VertexElementUsage&lt;/span&gt;.TextureCoordinate, 2),
    };

    &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="color: green"&gt;ストライドの取得
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
    &lt;/span&gt;&lt;span style="color: blue"&gt;public static int &lt;/span&gt;SizeInBytes
    {
        &lt;span style="color: blue"&gt;get &lt;/span&gt;{ &lt;span style="color: blue"&gt;return &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Marshal&lt;/span&gt;.SizeOf( &lt;span style="color: blue"&gt;typeof&lt;/span&gt;( &lt;span style="color: #2b91af"&gt;BoneVertex &lt;/span&gt;) ); }
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;strong&gt;AnimationPlayerの変更&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;クォータニオンによるスキンアニメーションサンプルからの変更点としては、SkinRoataions、SkinTranslationsをSkinTransformsに変換、GetSkinTransformsメソッドはBoneVertex配列を返すように変更します。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;モデルの頂点宣言の変更&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ボーン情報を頂点ストリームに格納するので、頂点宣言を変更する必要があります。元となる頂点宣言に指定した頂点要素を追加するExtendVertexDeclarationメソッドを持つRenderHelperクラスを作ります。&lt;/p&gt;

&lt;p&gt;ModelMeshPart.VertexDecralationは読み込み専用のプロパティなので、変更した頂点宣言はModelMeshPart.Tagプロパティに格納します。 &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: green"&gt;// モデルのMeshPartのVertexDeclarationにvFetch用の頂点宣言を
// 追加してMeshPart.Tagに格納する
&lt;/span&gt;&lt;span style="color: blue"&gt;foreach &lt;/span&gt;( &lt;span style="color: #2b91af"&gt;ModelMesh &lt;/span&gt;mesh &lt;span style="color: blue"&gt;in &lt;/span&gt;currentModel.Meshes )
{
    &lt;span style="color: blue"&gt;foreach &lt;/span&gt;( &lt;span style="color: #2b91af"&gt;ModelMeshPart &lt;/span&gt;meshPart &lt;span style="color: blue"&gt;in &lt;/span&gt;mesh.MeshParts )
    {
        meshPart.Tag = &lt;span style="color: #2b91af"&gt;RenderHelper&lt;/span&gt;.ExtendVertexDeclaration(
                meshPart.VertexDeclaration, &lt;span style="color: #2b91af"&gt;BoneVertex&lt;/span&gt;.VertexElements );
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;strong&gt;ボーン格納用頂点バッファの生成&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;続いてボーン情報を格納するための頂点バッファを生成します。これも&lt;a href="http://blogs.msdn.com/ito/archive/2009/05/07/more-bones-07.aspx" target="_blank" mce_href="http://blogs.msdn.com/ito/archive/2009/05/07/more-bones-07.aspx"&gt;「頂点テクスチャでスキンアニメーション」&lt;/a&gt;の時と同じように、連続してデータを書き込むためのWritableVertexBufferというクラスを作って使用します。&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: green"&gt;// ボーン情報を書き込むための頂点バッファの生成
&lt;/span&gt;boneVB = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;WritableVertexBuffer&lt;/span&gt;( GraphicsDevice,
        animationPlayer.GetSkinTransforms().Length * &lt;span style="color: #2b91af"&gt;BoneVertex&lt;/span&gt;.SizeInBytes, 2 );&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;こうして生成した頂点バッファに以下のようにしてボーン情報を書き込み、ストリーム1として設定します。&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: green"&gt;// ボーンの情報を頂点ストリームに書き込む
&lt;/span&gt;boneVB.Flip();
&lt;span style="color: blue"&gt;int &lt;/span&gt;offset = boneVB.SetData&amp;lt;&lt;span style="color: #2b91af"&gt;BoneVertex&lt;/span&gt;&amp;gt;( animationPlayer.GetSkinTransforms() );

gd.Vertices[1].SetSource( boneVB.VertexBuffer, offset, &lt;span style="color: #2b91af"&gt;BoneVertex&lt;/span&gt;.SizeInBytes );&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;実際の描画ですが、ModelMeshPart.Tagに格納した頂点データを使うので、単純にModelMesh.Drawメソッドを呼ばずに、個々のModelMeshPartを描画する必要があります。 &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;foreach &lt;/span&gt;( &lt;span style="color: #2b91af"&gt;ModelMesh &lt;/span&gt;mesh &lt;span style="color: blue"&gt;in &lt;/span&gt;currentModel.Meshes )
{
    &lt;span style="color: blue"&gt;foreach &lt;/span&gt;( &lt;span style="color: #2b91af"&gt;Effect &lt;/span&gt;effect &lt;span style="color: blue"&gt;in &lt;/span&gt;mesh.Effects )
    {
        effect.Parameters[&lt;span style="color: #a31515"&gt;&amp;quot;World&amp;quot;&lt;/span&gt;].SetValue( world );
        effect.Parameters[&lt;span style="color: #a31515"&gt;&amp;quot;View&amp;quot;&lt;/span&gt;].SetValue( view );
        effect.Parameters[&lt;span style="color: #a31515"&gt;&amp;quot;Projection&amp;quot;&lt;/span&gt;].SetValue( projection );
    }

    &lt;span style="color: green"&gt;// 
    &lt;/span&gt;gd.Indices = mesh.IndexBuffer;
    &lt;span style="color: blue"&gt;foreach &lt;/span&gt;( &lt;span style="color: #2b91af"&gt;ModelMeshPart &lt;/span&gt;meshPart &lt;span style="color: blue"&gt;in &lt;/span&gt;mesh.MeshParts )
    {
        &lt;span style="color: green"&gt;// ボーン情報の頂点要素を追加した頂点宣言を使う
        &lt;/span&gt;gd.VertexDeclaration = meshPart.Tag &lt;span style="color: blue"&gt;as &lt;/span&gt;&lt;span style="color: #2b91af"&gt;VertexDeclaration&lt;/span&gt;;

        gd.Vertices[0].SetSource( mesh.VertexBuffer,
                            meshPart.StreamOffset, meshPart.VertexStride );

        &lt;span style="color: #2b91af"&gt;Effect &lt;/span&gt;effect = meshPart.Effect;
        effect.Begin();
        effect.CurrentTechnique.Passes[0].Begin();

        gd.DrawIndexedPrimitives( &lt;span style="color: #2b91af"&gt;PrimitiveType&lt;/span&gt;.TriangleList, meshPart.BaseVertex,
                                0, meshPart.NumVertices, meshPart.StartIndex,
                                meshPart.PrimitiveCount );

        effect.CurrentTechnique.Passes[0].End();
        effect.End();
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;シェーダーの変更 &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;シェーダーの変更点は、vfetch命令を使って自前で頂点データをフェッチし、boneIndicesを使ってボーン情報をフェッチするだけです。後はクォータニオンを使ったスキンアニメーションと同じ処理をします。&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: green"&gt;//-----------------------------------------------------------------------------
// 頂点シェーダー
//=============================================================================
&lt;/span&gt;&lt;span style="color: blue"&gt;VS_OUTPUT &lt;/span&gt;&lt;span style="color: maroon"&gt;VertexShader&lt;/span&gt;(&lt;span style="color: blue"&gt;int &lt;/span&gt;index : INDEX)
{
    &lt;span style="color: blue"&gt;float4 &lt;/span&gt;position;
    &lt;span style="color: blue"&gt;float4 &lt;/span&gt;normal;
    &lt;span style="color: blue"&gt;float4 &lt;/span&gt;texCoord;
    &lt;span style="color: blue"&gt;float4 &lt;/span&gt;boneIndices;
    &lt;span style="color: blue"&gt;float4 &lt;/span&gt;boneWeights;

    &lt;span style="color: green"&gt;// vfetchはアセンブリ命令なのでasmブロックを使う必要がある
    &lt;/span&gt;asm
    {
        &lt;span style="color: green"&gt;// 頂点データのフェッチ
        &lt;/span&gt;vfetch position,        index, position0
        vfetch normal,            index, normal0
        vfetch texCoord,        index, texcoord0
        vfetch boneIndices,        index, blendindices
        vfetch boneWeights,        index, blendweight
    };
    
    &lt;span style="color: green"&gt;// ボーン情報のフェッチ
    &lt;/span&gt;&lt;span style="color: blue"&gt;float4 &lt;/span&gt;q1, q2, q3, q4;
    &lt;span style="color: blue"&gt;float4 &lt;/span&gt;t1, t2, t3, t4;
    
    asm
    {
        vfetch q1,    boneIndices.x, texcoord1
        vfetch q2,    boneIndices.y, texcoord1
        vfetch q3,    boneIndices.z, texcoord1
        vfetch q4,    boneIndices.w, texcoord1
        
        vfetch t1,    boneIndices.x, texcoord2
        vfetch t2,    boneIndices.y, texcoord2
        vfetch t3,    boneIndices.z, texcoord2
        vfetch t4,    boneIndices.w, texcoord2
    };&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;strong&gt;vfetchを使った開発&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;vfetch命令はXbox 360上でしか使うことができないので、いきなりシェーダー全体をvfetchを使って書いてしまうと、うまく動作しなかったときにvfetchの仕方が悪いのか、シェーダー内の処理自体にバグがあるのかを特定するのが難しくなります。&lt;/p&gt;

&lt;p&gt;ですから、vfetchを使ったシェーダーコードを書く場合、実際にvfetch命令を使ったシェーダーを書く前にWindows上で動作するシェーダーを書き、シェーダーが問題無く動作するのを確認してから、vfetchを使ったものに書き換えるようにすると良いでしょう。ここで問題が起きた場合はvfetch部分が原因だと特定できるので、時間の節約になります。&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9601289" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/ito/archive/tags/XNA+_D530EC30FC30E030EF30FC30AF30_/default.aspx">XNA フレームワーク</category><category domain="http://blogs.msdn.com/ito/archive/tags/Xbox360/default.aspx">Xbox360</category><category domain="http://blogs.msdn.com/ito/archive/tags/_B030E930D530A330AF30B930_/default.aspx">グラフィクス</category></item></channel></rss>