<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>いちばんやさしいゲームの作り方 &#187; XML</title>
	<atom:link href="http://www.game-create.com/archives/tag/xml/feed" rel="self" type="application/rss+xml" />
	<link>http://www.game-create.com</link>
	<description>文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ</description>
	<lastBuildDate>Tue, 08 Jun 2010 01:28:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>モーションデータの持ち方に YAML を検討中</title>
		<link>http://www.game-create.com/archives/1986</link>
		<comments>http://www.game-create.com/archives/1986#comments</comments>
		<pubDate>Tue, 21 Jul 2009 15:29:50 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オリジナルゲーム制作]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[YAML]]></category>
		<category><![CDATA[アニメーション]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1986</guid>
		<description><![CDATA[モーションデータは Flash を参考に XML で持つことを考えていたのですが、もっと軽いフォーマットがあると教えていただきました。その名も YAML 。

ぱっと見、 JavaScript の JSON みたいな感じ [...]]]></description>
			<content:encoded><![CDATA[<p>モーションデータは Flash を参考に <a href="http://www.game-create.com/archives/1514">XML で持つ</a>ことを考えていたのですが、もっと軽いフォーマットがあると教えていただきました。その名も <a href="http://ja.wikipedia.org/wiki/YAML" class="external">YAML</a> 。</p>
<p><span id="more-1986"></span></p>
<p>ぱっと見、 JavaScript の JSON みたいな感じです。ちょっとモーションデータをイメージしてみました。</p>
<div class="hl-surround" ><div class="hl-main"><pre>- frame: 10
  viewpoint: [0, 0, 32, 32]
  position: [0, 0, 0]
  alpha: 0.75
  easing:
    - type: custom_ease
    - rate:
        - 0.1
        - 0.2
        - 0.3
        - 0.6
        - 0.9
- frame: 15
  position: [100, 100, 0]
  easing:
    - type: simple_ease
- frame: 50
  rotate: [0.0, 0.0, 90.0]
  scale: [2.0, 1.5, 1.0]</pre></div></div>
<p>あと、ラベルとループ指定も必要か…</p>
<p>ちなみに C++ だと &gt;&gt; をオーバーロードして、取り込み先のオブジェクトとして最適な型を選ぶことができるようです。まぁ、当たり前と言えば当たり前。それなくして C++ で使う意味はないかもしれません。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1986/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>仕事で Flash のことを訊かれたので答えてみました</title>
		<link>http://www.game-create.com/archives/1835</link>
		<comments>http://www.game-create.com/archives/1835#comments</comments>
		<pubDate>Fri, 19 Jun 2009 09:25:34 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オーサリングツール]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[VC++ 2008 EE]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[アニメーション]]></category>
		<category><![CDATA[コンパイラ]]></category>
		<category><![CDATA[デバッガ]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1835</guid>
		<description><![CDATA[同じ疑問をお持ちの方がいらっしゃいましたら参考にしてみて下さい。

Flash が無いと SWF は作れないの？
いいえ、 Flex SDK があれば無償で SWF を作ることができます。
Flash と Flex SD [...]]]></description>
			<content:encoded><![CDATA[<p>同じ疑問をお持ちの方がいらっしゃいましたら参考にしてみて下さい。</p>
<p><span id="more-1835"></span></p>
<h4>Flash が無いと SWF は作れないの？</h4>
<p>いいえ、 Flex SDK があれば無償で SWF を作ることができます。</p>
<h4>Flash と Flex SDK はどう違うの？</h4>
<p>Flash を Visual C++ のような IDE と考えると、 Flex SDK は cl.exe とか link.exe とか nmake.exe みたいなものです。ただし、 Flex SDK にて SWF を作るためには JRE （ Java のランタイム）が必要です。</p>
<h4>Flash を買う意味あるの？</h4>
<p>アニメーション要素のあるムービーを低コストで作りたい場合は大いにあります。 Flash があればモーションをマウスでつけることができますし、モーションの惰性も二次元のグラフで簡単に指定できます。描画ツールもありますので、単純な図形をマウスやペンタブレットで描くこともできます。</p>
<p>もし、 Flash を使わない場合は、座標や回転値などのモーションデータをオブジェクトと数値で指定するか、 XML で指定なければなりません。</p>
<h4>あなたはアニメーションを作れないのに、なぜ Flash を持ってるの？</h4>
<p>デバッガが便利なのと、 Creative Suite にバンドルされていたからです。仕事で作った SWF は Stage のタイムラインの１フレームに起動コードがあるだけで、あとは ActionScript で構築しました。ここだけ見ると無駄なんですが、それを無駄と思わせないのはデバッガの存在が大きいと思います。</p>
<h4>簡単に覚えられる？</h4>
<p>なんらかのプログラミング言語の経験がある方にとっては、携帯 Flash や昔の Flash に比べたら遙かに難度は低いと思います。 Flash は Macromedia 時代からそうだったのですが、マニュアルが非常に良くできていて、情報源に不足がありません（トピック毎にコピペで動くサンプルがあるのが嬉しいです）。ただ、全く初めての場合は、入門書に頼った方が良いと思います（少なくともタイムラインが問題なく使えるようになるまでは）。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1835/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>サンプルコードを入手したらわざとエラーを起こしてみる</title>
		<link>http://www.game-create.com/archives/1611</link>
		<comments>http://www.game-create.com/archives/1611#comments</comments>
		<pubDate>Tue, 28 Apr 2009 16:41:48 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[ソースコード]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1611</guid>
		<description><![CDATA[ゲームに限らずプログラミングを勉強する上でサンプルコードのありがたみは大きいですよね。これ、単純に動いたことに満足しないでエラーを起こしてみるのも良い勉強になります。

実は、この考えは私の恩師流なのですが、自分も昔から [...]]]></description>
			<content:encoded><![CDATA[<p>ゲームに限らずプログラミングを勉強する上でサンプルコードのありがたみは大きいですよね。これ、単純に動いたことに満足しないでエラーを起こしてみるのも良い勉強になります。</p>
<p><span id="more-1611"></span></p>
<p>実は、この考えは私の恩師流なのですが、自分も昔から自分の想像が正しいかどうかを確かめるためにわざどエラーを起こすようにして確かめてきました。ただ単にエラーを起こすだけではいけません。「こう変えたら、こうエラーになるはずだ」と予想してからエラーを組み込むことが重要です。</p>
<p>先日も XML にて xmlns:alias=&#8221;http://～&#8221; の alias の部分は何でも良いのかと疑問に思って、試しに unko とかに変えてエラーを確かめました。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1611/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash のモーション XML エレメントを自作してみた</title>
		<link>http://www.game-create.com/archives/1514</link>
		<comments>http://www.game-create.com/archives/1514#comments</comments>
		<pubDate>Wed, 15 Apr 2009 15:30:24 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オーサリングツール]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[インスタンス]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1514</guid>
		<description><![CDATA[話題のモーション XML エレメントですが、奇跡的に仕事で使うタイミングがあったので自作してみました。
本当はこれを他のプログラムで利用する方法が一番知りたかったのですが、まぁ、それをやるにもフォーマットを知る必要があり [...]]]></description>
			<content:encoded><![CDATA[<p>話題の<a href="http://www.game-create.com/archives/1308">モーション XML エレメント</a>ですが、奇跡的に仕事で使うタイミングがあったので自作してみました。</p>
<p>本当はこれを他のプログラムで利用する方法が一番知りたかったのですが、まぁ、それをやるにもフォーマットを知る必要がありますので、わかったことを残しておきます。</p>
<p><span id="more-1514"></span></p>
<p>まず、モーション XML エレメントというのは、 IDE から使う場合は必要な項目をガッチガチに固めてやらないとまずいっぽいのですが、以下のように ActionScript から使う場合は必要な項目だけ設定してやれば良さそうです（とりあえず動きました）。</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-reserved">import </span><span class="hl-identifier">fl</span><span class="hl-default">.</span><span class="hl-identifier">motion</span><span class="hl-default">.</span><span class="hl-identifier">Animator</span><span class="hl-default">;

</span><span class="hl-identifier">var theShape</span><span class="hl-default">:</span><span class="hl-identifier">Shape</span><span class="hl-default"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">Shape</span><span class="hl-brackets">()</span><span class="hl-default">;
</span><span class="hl-identifier">theShape</span><span class="hl-default">.</span><span class="hl-identifier">graphics</span><span class="hl-default">.</span><span class="hl-identifier">beginFill</span><span class="hl-brackets">(</span><span class="hl-number">0x0000FF</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-identifier">theShape</span><span class="hl-default">.</span><span class="hl-identifier">graphics</span><span class="hl-default">.</span><span class="hl-identifier">drawRect</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-identifier">theShape</span><span class="hl-default">.</span><span class="hl-identifier">graphics</span><span class="hl-default">.</span><span class="hl-identifier">endFill</span><span class="hl-brackets">()</span><span class="hl-default">;

</span><span class="hl-identifier">addChild</span><span class="hl-brackets">(</span><span class="hl-identifier">theShape</span><span class="hl-brackets">)</span><span class="hl-default">;

</span><span class="hl-identifier">var theMotion</span><span class="hl-default">:</span><span class="hl-identifier">XML</span><span class="hl-default"> =
  &lt;</span><span class="hl-identifier">Motion duration</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">10</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">xmlns</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">fl.motion.*</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">xmlns</span><span class="hl-default">:</span><span class="hl-identifier">geom</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">flash.geom.*</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">xmlns</span><span class="hl-default">:</span><span class="hl-identifier">filters</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">flash.filters.*</span><span class="hl-quotes">&quot;</span><span class="hl-default">&gt;
    &lt;</span><span class="hl-identifier">Keyframe index</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">x</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">100</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">y</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">100</span><span class="hl-quotes">&quot;</span><span class="hl-default">&gt;
      &lt;</span><span class="hl-identifier">color</span><span class="hl-default">&gt;
        &lt;</span><span class="hl-identifier">Color alphaMultiplier</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0</span><span class="hl-quotes">&quot;</span><span class="hl-default"> /&gt;
      &lt;/</span><span class="hl-identifier">color</span><span class="hl-default">&gt;
      &lt;</span><span class="hl-identifier">tweens</span><span class="hl-default">&gt;
        &lt;</span><span class="hl-identifier">CustomEase target</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">position</span><span class="hl-quotes">&quot;</span><span class="hl-default">&gt;
          &lt;</span><span class="hl-identifier">geom</span><span class="hl-default">:</span><span class="hl-identifier">Point x</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.1</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">y</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.1</span><span class="hl-quotes">&quot;</span><span class="hl-default"> /&gt;
          &lt;</span><span class="hl-identifier">geom</span><span class="hl-default">:</span><span class="hl-identifier">Point x</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.2</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">y</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.15</span><span class="hl-quotes">&quot;</span><span class="hl-default"> /&gt;
          &lt;</span><span class="hl-identifier">geom</span><span class="hl-default">:</span><span class="hl-identifier">Point x</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.3</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">y</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.2</span><span class="hl-quotes">&quot;</span><span class="hl-default"> /&gt;
          &lt;</span><span class="hl-identifier">geom</span><span class="hl-default">:</span><span class="hl-identifier">Point x</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.4</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">y</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.25</span><span class="hl-quotes">&quot;</span><span class="hl-default"> /&gt;
          &lt;</span><span class="hl-identifier">geom</span><span class="hl-default">:</span><span class="hl-identifier">Point x</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.5</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">y</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.3</span><span class="hl-quotes">&quot;</span><span class="hl-default"> /&gt;
          &lt;</span><span class="hl-identifier">geom</span><span class="hl-default">:</span><span class="hl-identifier">Point x</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.6</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">y</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.35</span><span class="hl-quotes">&quot;</span><span class="hl-default"> /&gt;
          &lt;</span><span class="hl-identifier">geom</span><span class="hl-default">:</span><span class="hl-identifier">Point x</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.7</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">y</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.4</span><span class="hl-quotes">&quot;</span><span class="hl-default"> /&gt;
          &lt;</span><span class="hl-identifier">geom</span><span class="hl-default">:</span><span class="hl-identifier">Point x</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.8</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">y</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.45</span><span class="hl-quotes">&quot;</span><span class="hl-default"> /&gt;
          &lt;</span><span class="hl-identifier">geom</span><span class="hl-default">:</span><span class="hl-identifier">Point x</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.9</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">y</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.75</span><span class="hl-quotes">&quot;</span><span class="hl-default"> /&gt;
        &lt;/</span><span class="hl-identifier">CustomEase</span><span class="hl-default">&gt;
        &lt;</span><span class="hl-identifier">SimpleEase target</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">color</span><span class="hl-quotes">&quot;</span><span class="hl-default"> /&gt;
      &lt;/</span><span class="hl-identifier">tweens</span><span class="hl-default">&gt;
    &lt;/</span><span class="hl-identifier">Keyframe</span><span class="hl-default">&gt;
    &lt;</span><span class="hl-identifier">Keyframe index</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">9</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">x</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">400</span><span class="hl-quotes">&quot; </span><span class="hl-identifier">y</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">200</span><span class="hl-quotes">&quot;</span><span class="hl-default">&gt;
      &lt;</span><span class="hl-identifier">color</span><span class="hl-default">&gt;
        &lt;</span><span class="hl-identifier">Color alphaMultiplier</span><span class="hl-default">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">1.0</span><span class="hl-quotes">&quot;</span><span class="hl-default"> /&gt;
      &lt;/</span><span class="hl-identifier">color</span><span class="hl-default">&gt;
    &lt;/</span><span class="hl-identifier">Keyframe</span><span class="hl-default">&gt;
  &lt;/</span><span class="hl-identifier">Motion</span><span class="hl-default">&gt;;

</span><span class="hl-identifier">var theAnimator</span><span class="hl-default">:</span><span class="hl-identifier">Animator</span><span class="hl-default"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">Animator</span><span class="hl-brackets">(</span><span class="hl-identifier">theMotion</span><span class="hl-code">, </span><span class="hl-identifier">theShape</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-identifier">theAnimator</span><span class="hl-default">.</span><span class="hl-identifier">play</span><span class="hl-brackets">()</span><span class="hl-default">;</span></pre></div></div>
<p>初めて見る方は驚かれるかもしれません。なんと ActionScript は XML をソースコード中に組み込むことができるんですね（ PHP などでは文字列として用意してパースしなければなりません）。</p>
<p>以下、ポイントです。</p>
<ul>
<li>この XML で動かしたい表示オブジェクトを最初に構築しておく（上記コード中の theShape オブジェクト）</li>
<li>Motion 要素の duration 属性に総フレーム数を指定する（上記コードは 10 フレームとなる）</li>
<li>キーフレームの数だけ Keyframe 要素を追加する（上記コードは２つのキーフレームがある）</li>
<li>Keyframe 要素の index 属性にフレーム番号を指定する（０から始まる点に注意）</li>
<li>Keyframe 要素に x, y, scaleX, scaleY, skewX, skewY, rotation といった、対象表示オブジェクトの位置や大きさ、回転に関する情報を指定する</li>
<li>トゥイーンを使いたい場合は Keyframe 要素内に tweens 要素を追加する</li>
<li>SimpleEase 要素はキーフレームとキーフレームの中間のアニメーションを中割で自動作成する</li>
<li>CustomEase 要素はキーフレームとキーフレームの中間のアニメーションをどういった割合で作成するか指定する（単純なトゥイーンデータでも感性がついているように動かすこともできる）</li>
</ul>
<p>XML が用意できたら Animator クラスを使ってアニメーションを開始します（最後の２行）。 Animator クラスのインスタンスは参照が０にならないように注意してください。アニメーションが止まってしまいます。</p>
<p>ちなみに、「モーション XML エレメントのデータを動的に変更できないのか？」と疑問に思われるかもしれませんが、 theMotion が XML オブジェクトになっていますので、後からノードの編集は可能です。また、ソースコードに書いた XML 中で以下のようにすると変数を展開することができます。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-comment">&lt;!-- variable が Flash の変数 --&gt;
</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">Element </span><span class="hl-var">attribute</span><span class="hl-code">={</span><span class="hl-var">variable</span><span class="hl-code">} </span><span class="hl-brackets">/&gt;
</span><span class="hl-comment">&lt;!-- ↓ variable の中身が value の場合は以下のように展開される --&gt;
</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">Element </span><span class="hl-var">attribute</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">value</span><span class="hl-quotes">&quot; </span><span class="hl-brackets">/&gt;</span></pre></div></div>
<p>もう、簡単な動きに IDE は要らなくなるかもしれません。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1514/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Excel 2007 が読み仮名まで認識している件</title>
		<link>http://www.game-create.com/archives/1409</link>
		<comments>http://www.game-create.com/archives/1409#comments</comments>
		<pubDate>Thu, 12 Mar 2009 10:53:52 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[MS Office]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1409</guid>
		<description><![CDATA[Excel 2007 は Office の表計算ソフトの最新版ですが、これが結構変わっておりまして、なんと漢字の読み仮名までデータとして持っているようです。

今日、仕事をしていて漢字が含まれているセルをソートしてみたの [...]]]></description>
			<content:encoded><![CDATA[<p>Excel 2007 は Office の表計算ソフトの最新版ですが、これが結構変わっておりまして、なんと漢字の読み仮名までデータとして持っているようです。</p>
<p><span id="more-1409"></span></p>
<p>今日、仕事をしていて漢字が含まれているセルをソートしてみたのですが、うまくソートされませんでした。気になって調べてみましたところ、なんと読み仮名の情報までセルに入っていました。ソートがうまくいかなかったのは漢字ではなく読み仮名でソートされていたからでした。</p>
<p>たとえば「日本」などは、「にっぽん」と入力したか「にほん」と入力したによって、同じ「日本」という漢字でもどちらが上に来るのか変わってくるのです。気になる人は実際に試してみてください。本当に読み仮名が入っているか確かめたい場合は、拡張子を *.zip に変換して XML データを解析してみましょう。</p>
<p>私は今まで、 IME は OS の前に立って漢字を確定するまでを全ての入力と反応を担当し、確定後にデータを OS へ渡すという門番的な振る舞いをするのかと思っていたのですが、どうやら違うようですね。もう一歩 OS に食い込んで、読み仮名もなんらかの方法で渡しているようです。</p>
<p>う～ん、奥が深いですな。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1409/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>libxml2 の Windows バイナリ</title>
		<link>http://www.game-create.com/archives/1347</link>
		<comments>http://www.game-create.com/archives/1347#comments</comments>
		<pubDate>Sat, 21 Feb 2009 12:04:23 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[libxml]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XPath]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1347</guid>
		<description><![CDATA[libxml2 に Windows のバイナリがあることがわかりました。いえ、あるだろうなぁとは思っていたのですが、実物を初めて目にしたのです。
SourceForge.net: GnuWin
（↑ダウンロードのページか [...]]]></description>
			<content:encoded><![CDATA[<p>libxml2 に Windows のバイナリがあることがわかりました。いえ、あるだろうなぁとは思っていたのですが、実物を初めて目にしたのです。</p>
<p><a href="http://sourceforge.net/projects/gnuwin32" class="external">SourceForge.net: GnuWin</a><br />
（↑ダウンロードのページから libxml を見つけることができます）</p>
<p><span id="more-1347"></span></p>
<p>libxml2 は XML を読んだり書いたりラジバンダリできるライブラリです。書くくらいなら自分でコーディングしても惜しくないでしょうが、読んだり XPath で収集したりするとなるとこういったライブラリを使った方が楽にできます。</p>
<p>ゲームに XPath を応用しようという試みが吉と出るか凶と出るか大変心配ではありますが、がんばりたいと思います。前人未踏か前代未聞かの瀬戸際かもしれません。やはりパフォーマンスがネックでしょうなぁ…。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1347/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel 2007 を fiber すると中身の XML が取り出せる件</title>
		<link>http://www.game-create.com/archives/1313</link>
		<comments>http://www.game-create.com/archives/1313#comments</comments>
		<pubDate>Wed, 11 Feb 2009 15:51:03 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[ZIP]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1313</guid>
		<description><![CDATA[Excel 2007 というか Office 2007 はデータの形式が XML とは聞いていたのですが、どうやら ZIP 圧縮されているようで、拡張子を *.zip にして開くと中身の XML が取り出せました。

中 [...]]]></description>
			<content:encoded><![CDATA[<p>Excel 2007 というか Office 2007 はデータの形式が XML とは聞いていたのですが、どうやら ZIP 圧縮されているようで、拡張子を *.zip にして開くと中身の XML が取り出せました。</p>
<p><span id="more-1313"></span></p>
<p>中身はこのようになっておりました。ファイルや構成はワークシートの内容によって変わります。</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre>C:.
│  [Content_Types].xml
│  
├─docProps
│      app.xml
│      core.xml
│      
├─xl
│  │  calcChain.xml
│  │  sharedStrings.xml
│  │  styles.xml
│  │  workbook.xml
│  │  
│  ├─printerSettings
│  │      printerSettings1.bin
│  │      printerSettings2.bin
│  │      printerSettings3.bin
│  │      
│  ├─theme
│  │      theme1.xml
│  │      
│  ├─worksheets
│  │  │  sheet1.xml
│  │  │  sheet2.xml
│  │  │  sheet3.xml
│  │  │  sheet4.xml
│  │  │  sheet5.xml
│  │  │  
│  │  └─_rels
│  │          sheet1.xml.rels
│  │          sheet2.xml.rels
│  │          sheet5.xml.rels
│  │          
│  └─_rels
│          workbook.xml.rels
│          
└─_rels
        .rels</pre></div></div>
<p>XML ですので人間にも読める形式となっておりました。大量のデータを保存すると当然ファイルサイズも大きくなりますが、最後に ZIP 圧縮しますのでタグなんかは辞書行きになるようです。</p>
<p>ちなみに fiber とは、「関連づけられたプログラムでファイルを開く」コマンドです。今回の一件から拡張子ではなくファイルの内容で判別していることがわかりました。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1313/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash のモーション XML のリファレンスを発見</title>
		<link>http://www.game-create.com/archives/1308</link>
		<comments>http://www.game-create.com/archives/1308#comments</comments>
		<pubDate>Mon, 09 Feb 2009 15:32:38 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オーサリングツール]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1308</guid>
		<description><![CDATA[Flash のモーションデータが出力できることはすでにわかりましたが、これのリファレンスを見つけました。 Flash の製品版をお持ちの方は「モーション XML エレメント」で検索、お持ちでない方は下記 URL へアクセ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.game-create.com/archives/1256">Flash のモーションデータが出力できる</a>ことはすでにわかりましたが、これのリファレンスを見つけました。 Flash の製品版をお持ちの方は「モーション XML エレメント」で検索、お持ちでない方は下記 URL へアクセスください。</p>
<p><a href="http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/motionXSD.html" class="external">モーション XML エレメント</a></p>
<p><span id="more-1308"></span></p>
<p>アニメーションする対象は MovieClip だけではなく、四角形などのジオメトリ情報でも問題ないようです。これはいろいろと使えそうですね。いえ、かなり嬉しいですよ。 2D のゲームを作る人は Flash の製品版を持っておくとデータ入力とか楽になるかもしれません。これは研究の余地有りかと思われます。</p>
<p>問題は階層構造の表現方法ですよね。今の段階だとひとつひとつタイムラインを選択して出力するしか方法がありません。うーむ、なんとかしたいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1308/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash のモーションデータがエクスポートできる件</title>
		<link>http://www.game-create.com/archives/1256</link>
		<comments>http://www.game-create.com/archives/1256#comments</comments>
		<pubDate>Mon, 26 Jan 2009 23:44:35 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オーサリングツール]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1256</guid>
		<description><![CDATA[おお、すごいですね。

Flash のタイムラインを選択したらモーションをエクスポートするメニューが使えるようになりました。
&#60;Motion duration=&#34;24&#34; xmlns=&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>おお、すごいですね。</p>
<p><span id="more-1256"></span></p>
<p>Flash のタイムラインを選択したらモーションをエクスポートするメニューが使えるようになりました。</p>
<div class="hl-surround" style="height:280px;"><div class="hl-main"><pre><span class="hl-brackets">&lt;</span><span class="hl-reserved">Motion </span><span class="hl-var">duration</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">24</span><span class="hl-quotes">&quot; </span><span class="hl-var">xmlns</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">fl.motion.*</span><span class="hl-quotes">&quot; </span><span class="hl-var">xmlns:geom</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">flash.geom.*</span><span class="hl-quotes">&quot; </span><span class="hl-var">xmlns:filters</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">flash.filters.*</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;
	&lt;</span><span class="hl-reserved">source</span><span class="hl-brackets">&gt;
		&lt;</span><span class="hl-reserved">Source </span><span class="hl-var">frameRate</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">12</span><span class="hl-quotes">&quot; </span><span class="hl-var">x</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">254</span><span class="hl-quotes">&quot; </span><span class="hl-var">y</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">204.35</span><span class="hl-quotes">&quot; </span><span class="hl-var">scaleX</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">1</span><span class="hl-quotes">&quot; </span><span class="hl-var">scaleY</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">1</span><span class="hl-quotes">&quot; </span><span class="hl-var">rotation</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0</span><span class="hl-quotes">&quot; </span><span class="hl-var">elementType</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">movie clip</span><span class="hl-quotes">&quot; </span><span class="hl-var">symbolName</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">Unko</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;
			&lt;</span><span class="hl-reserved">dimensions</span><span class="hl-brackets">&gt;
				&lt;</span><span class="hl-reserved">geom:Rectangle </span><span class="hl-var">left</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">-134</span><span class="hl-quotes">&quot; </span><span class="hl-var">top</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">-116</span><span class="hl-quotes">&quot; </span><span class="hl-var">width</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">295.85</span><span class="hl-quotes">&quot; </span><span class="hl-var">height</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">236</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">/&gt;
			&lt;/</span><span class="hl-reserved">dimensions</span><span class="hl-brackets">&gt;
			&lt;</span><span class="hl-reserved">transformationPoint</span><span class="hl-brackets">&gt;
				&lt;</span><span class="hl-reserved">geom:Point </span><span class="hl-var">x</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.4999154977184384</span><span class="hl-quotes">&quot; </span><span class="hl-var">y</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0.5</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">/&gt;
			&lt;/</span><span class="hl-reserved">transformationPoint</span><span class="hl-brackets">&gt;
		&lt;/</span><span class="hl-reserved">Source</span><span class="hl-brackets">&gt;
	&lt;/</span><span class="hl-reserved">source</span><span class="hl-brackets">&gt;

	&lt;</span><span class="hl-reserved">Keyframe </span><span class="hl-var">index</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0</span><span class="hl-quotes">&quot; </span><span class="hl-var">tweenSnap</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">true</span><span class="hl-quotes">&quot; </span><span class="hl-var">tweenSync</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">true</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;
		&lt;</span><span class="hl-reserved">tweens</span><span class="hl-brackets">&gt;
			&lt;</span><span class="hl-reserved">SimpleEase </span><span class="hl-var">ease</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">/&gt;
		&lt;/</span><span class="hl-reserved">tweens</span><span class="hl-brackets">&gt;
	&lt;/</span><span class="hl-reserved">Keyframe</span><span class="hl-brackets">&gt;

	&lt;</span><span class="hl-reserved">Keyframe </span><span class="hl-var">index</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">5</span><span class="hl-quotes">&quot; </span><span class="hl-var">tweenSnap</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">true</span><span class="hl-quotes">&quot; </span><span class="hl-var">tweenSync</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">true</span><span class="hl-quotes">&quot; </span><span class="hl-var">x</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">130.10000000000002</span><span class="hl-quotes">&quot; </span><span class="hl-var">y</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">-74.94999999999999</span><span class="hl-quotes">&quot; </span><span class="hl-var">rotation</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">-60</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;
		&lt;</span><span class="hl-reserved">tweens</span><span class="hl-brackets">&gt;
			&lt;</span><span class="hl-reserved">SimpleEase </span><span class="hl-var">ease</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">/&gt;
		&lt;/</span><span class="hl-reserved">tweens</span><span class="hl-brackets">&gt;
	&lt;/</span><span class="hl-reserved">Keyframe</span><span class="hl-brackets">&gt;

	&lt;</span><span class="hl-reserved">Keyframe </span><span class="hl-var">index</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">11</span><span class="hl-quotes">&quot; </span><span class="hl-var">tweenSnap</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">true</span><span class="hl-quotes">&quot; </span><span class="hl-var">tweenSync</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">true</span><span class="hl-quotes">&quot; </span><span class="hl-var">x</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">-52.900000000000006</span><span class="hl-quotes">&quot; </span><span class="hl-var">y</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">-58</span><span class="hl-quotes">&quot; </span><span class="hl-var">scaleX</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">1.831</span><span class="hl-quotes">&quot; </span><span class="hl-var">scaleY</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">1.805</span><span class="hl-quotes">&quot; </span><span class="hl-var">rotation</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;
		&lt;</span><span class="hl-reserved">tweens</span><span class="hl-brackets">&gt;
			&lt;</span><span class="hl-reserved">SimpleEase </span><span class="hl-var">ease</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">/&gt;
		&lt;/</span><span class="hl-reserved">tweens</span><span class="hl-brackets">&gt;
	&lt;/</span><span class="hl-reserved">Keyframe</span><span class="hl-brackets">&gt;

	&lt;</span><span class="hl-reserved">Keyframe </span><span class="hl-var">index</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">17</span><span class="hl-quotes">&quot; </span><span class="hl-var">tweenSnap</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">true</span><span class="hl-quotes">&quot; </span><span class="hl-var">tweenSync</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">true</span><span class="hl-quotes">&quot; </span><span class="hl-var">x</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">136.05</span><span class="hl-quotes">&quot; </span><span class="hl-var">y</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">48</span><span class="hl-quotes">&quot; </span><span class="hl-var">scaleX</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">1.354</span><span class="hl-quotes">&quot; </span><span class="hl-var">scaleY</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">1</span><span class="hl-quotes">&quot; </span><span class="hl-var">skewY</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">42.4</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;
		&lt;</span><span class="hl-reserved">tweens</span><span class="hl-brackets">&gt;
			&lt;</span><span class="hl-reserved">SimpleEase </span><span class="hl-var">ease</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">0</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">/&gt;
		&lt;/</span><span class="hl-reserved">tweens</span><span class="hl-brackets">&gt;
	&lt;/</span><span class="hl-reserved">Keyframe</span><span class="hl-brackets">&gt;
&lt;/</span><span class="hl-reserved">Motion</span><span class="hl-brackets">&gt;</span></pre></div></div>
<p>これはゲーム作るのに応用できるかもしれません。もちろん Flash で作れば一番早いんでしょうけど、こういうツール的な使い方も良いですね。子階層も一緒に出力できればスパロボアニメーションみたいなデータを作ることもできそうです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1256/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>知らなきゃ幸せだった、でも知ってしまった XPath</title>
		<link>http://www.game-create.com/archives/1181</link>
		<comments>http://www.game-create.com/archives/1181#comments</comments>
		<pubDate>Wed, 07 Jan 2009 23:48:13 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[STL]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XPath]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1181</guid>
		<description><![CDATA[C++ のコレクションと言えば STL ですが、種類や機能やアクセス方法など他の言語と比較しても遜色ないラインナップのため魅力に不足など考えたこともありませんでした。しかし、世の中にはもっと面白い集合操作技術があるもので [...]]]></description>
			<content:encoded><![CDATA[<p>C++ のコレクションと言えば STL ですが、種類や機能やアクセス方法など他の言語と比較しても遜色ないラインナップのため魅力に不足など考えたこともありませんでした。しかし、世の中にはもっと面白い集合操作技術があるものです。</p>
<p><span id="more-1181"></span></p>
<p>XPath は XML のノードを特定するための技術です。 XML はツリー構造のため C++ の STL のようなコレクションとは毛色が異なりますが、要素の特定方法が魅力的すぎて頭から離れません。</p>
<p><a href="http://ja.wikipedia.org/wiki/XML_Path_Language" class="external">XPath</a></p>
<p>私は最初、「これはゲームには応用できないな」と思ってしまったのですが、 <a href="http://api.cakephp.org/1.2/class_set.html" class="external">CakePHP で普通の配列を XPath でアクセスする実装</a>を目にしてから考え方が変わりました。これは便利すぎて吐血します。</p>
<p>現在、 C++ での XPath の実装を探しています。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1181/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

