<?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; ラスターイメージ</title>
	<atom:link href="http://www.game-create.com/archives/tag/%e3%83%a9%e3%82%b9%e3%82%bf%e3%83%bc%e3%82%a4%e3%83%a1%e3%83%bc%e3%82%b8/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>Flash で 3D っぽいプログラムを組んでみました</title>
		<link>http://www.game-create.com/archives/1425</link>
		<comments>http://www.game-create.com/archives/1425#comments</comments>
		<pubDate>Tue, 17 Mar 2009 11:39:07 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[ラスターイメージ]]></category>
		<category><![CDATA[ラスタライズ]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1425</guid>
		<description><![CDATA[いつかは手を出すことになるだろうなぁと思っていたのですが、今月から仕事で手をつけています。 ActionScript 3.0 には Matrix3D クラスがなかったので自作するハメになりました（それほどの手間ではありま [...]]]></description>
			<content:encoded><![CDATA[<p>いつかは手を出すことになるだろうなぁと思っていたのですが、今月から仕事で手をつけています。 ActionScript 3.0 には Matrix3D クラスがなかったので自作するハメになりました（それほどの手間ではありませんでしたが）。</p>
<p><span id="more-1425"></span></p>
<p>ActionScript 3.0 にはラスターイメージを自由変形する機能がありませんので、 Graphics クラスと行列を組み合わせてラスタライザっぽい機能を自作します（<a href="http://www.d-project.com/flex/009_FreeTransform/" class="external">こういうやつです</a>）。しかしながら、自作したラスタライザ（っぽい機能）で普通にアニメーションさせようとすると、チラつきやポリゴン割れ（みたいな現象）に悩まされます。そういう場合はタイムラインに載せて Event.ENTER_FRAME のタイミングで描画します。 Event.ENTER_FRAME の中は垂直同期みたいな空間ですので綺麗にアニメーションが作れます。</p>
<p>面倒な人は 3D のライブラリを使うか Flex SDK を使いましょう。お金があれば CS4 を購入するのも楽です。ただ、 Flex SDK や CS4 の 3D 機能を使った場合は Flash Player 10 での動作になります。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1425/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Loader と URLLoader の違い</title>
		<link>http://www.game-create.com/archives/1395</link>
		<comments>http://www.game-create.com/archives/1395#comments</comments>
		<pubDate>Sat, 07 Mar 2009 12:41:11 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[オーサリングツール]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[BitmapData]]></category>
		<category><![CDATA[DisplayObject]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Loader]]></category>
		<category><![CDATA[PNG]]></category>
		<category><![CDATA[URLLoader]]></category>
		<category><![CDATA[ラスターイメージ]]></category>
		<category><![CDATA[画像]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1395</guid>
		<description><![CDATA[Loader と URLLoader の使い方を間違えました。

マニュアルと読むと「バイナリデータの読み込みには URLLoader を」とあったので PNG 画像を読み込んだのですが、なんとも取り回しの悪いデータ（生 [...]]]></description>
			<content:encoded><![CDATA[<p>Loader と URLLoader の使い方を間違えました。</p>
<p><span id="more-1395"></span></p>
<p>マニュアルと読むと「バイナリデータの読み込みには URLLoader を」とあったので PNG 画像を読み込んだのですが、なんとも取り回しの悪いデータ（生データ）が返ってきてしまったのです。中身が画像とわかっていて画像として扱いたい（ DisplayObject にしたい）場合は Loader を使うべきなんですね。逆にバイトストリームが欲しいときは URLLoader です。ちなみに ARGB の画素情報だけで良ければ Loader で読み込んで BitmapData にしてデータにアクセスすることもできます。</p>
<p>Loader と URLLoader は過度の抽象化が抑制されている辺り Flash らしいですね。領分というものを正しく認識しているのだと思います。 Flex とかだとどうなんでしょう？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1395/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Study::Bitmap で透過色を指定する</title>
		<link>http://www.game-create.com/archives/886</link>
		<comments>http://www.game-create.com/archives/886#comments</comments>
		<pubDate>Fri, 24 Oct 2008 05:34:12 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[GDI]]></category>
		<category><![CDATA[Study::Bitmap]]></category>
		<category><![CDATA[デバイスコンテキスト]]></category>
		<category><![CDATA[ラスターイメージ]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=886</guid>
		<description><![CDATA[Study::Bitmap で透過色を指定するためには Study::Bitmap::load() メソッドの第３引数に色情報を渡します。

たとえば赤を透過色にしたい場合は次のように書きます。
Study::Bitma [...]]]></description>
			<content:encoded><![CDATA[<p>Study::Bitmap で透過色を指定するためには Study::Bitmap::load() メソッドの第３引数に色情報を渡します。</p>
<p><span id="more-886"></span></p>
<p>たとえば赤を透過色にしたい場合は次のように書きます。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-identifier">Study</span><span class="hl-default">::</span><span class="hl-identifier">Bitmap graphics</span><span class="hl-default">;
</span><span class="hl-identifier">graphics</span><span class="hl-default">.</span><span class="hl-identifier">load</span><span class="hl-brackets">(</span><span class="hl-identifier">hdc</span><span class="hl-code">, </span><span class="hl-identifier">TEXT</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">graphics.bmp</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">RGB</span><span class="hl-brackets">(</span><span class="hl-number">255</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">))</span><span class="hl-default">; </span><span class="hl-comment">// RGB の順で輝度を指定する</span></pre></div></div>
<p>この指定によって自動的にマスク画像が作られるようになります。マスク画像のデバイスコンテキストハンドルは Study::Bitmap::getMask() メソッドによって取得できます。</p>
<p>これで Study::Bitmap::load() 時にデバイスコンテキストハンドルを渡さなくても済むようになればいいのですが、今のところ良い方法が思いつきません。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/886/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PNG ファイルからラスターデータを取得するライブラリ &#8211; libpng</title>
		<link>http://www.game-create.com/archives/811</link>
		<comments>http://www.game-create.com/archives/811#comments</comments>
		<pubDate>Mon, 06 Oct 2008 09:23:49 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[PNG]]></category>
		<category><![CDATA[ラスターイメージ]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=811</guid>
		<description><![CDATA[PNG ファイルから画像データを読み込むためには libpng を使います。
libpng.org

PNG 画像は圧縮されているためファイルサイズを抑えることができ、アルファチャンネルを持つことができるなどの特徴から、 [...]]]></description>
			<content:encoded><![CDATA[<p>PNG ファイルから画像データを読み込むためには libpng を使います。</p>
<p><a href="http://www.libpng.org/" class="external">libpng.org</a></p>
<p><span id="more-811"></span></p>
<p>PNG 画像は圧縮されているためファイルサイズを抑えることができ、アルファチャンネルを持つことができるなどの特徴から、近年ゲームでよく使われるようになりました。可逆圧縮ですので JPEG のようにブロックノイズが乗りません。 Photoshop や Fireworks といった本格的なアプリケーションから Edge のようなオンラインソフトでも作成することができる点も見逃せません。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/811/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Study::Bitmap でマスク画像を取得する</title>
		<link>http://www.game-create.com/archives/779</link>
		<comments>http://www.game-create.com/archives/779#comments</comments>
		<pubDate>Mon, 29 Sep 2008 14:58:26 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[Study::Bitmap]]></category>
		<category><![CDATA[ラスターイメージ]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=779</guid>
		<description><![CDATA[Study::Bitmap でマスク画像を取得するためには Study::Bitmap::getMask() メソッドを使います。

ラスターイメージを透過転送するためにはマスク画像が必要ですが、 Study::Bitm [...]]]></description>
			<content:encoded><![CDATA[<p>Study::Bitmap でマスク画像を取得するためには Study::Bitmap::getMask() メソッドを使います。</p>
<p><span id="more-779"></span></p>
<p><a href="http://www.game-create.com/archives/735">ラスターイメージを透過転送する</a>ためにはマスク画像が必要ですが、 Study::Bitmap を使うとビットマップ画像からマスク画像を自動的に作ることができます。やり方は簡単、次のように読み込んで Study::Bitmap::getMask() メソッドを呼ぶだけです。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-identifier">Study</span><span class="hl-default">::</span><span class="hl-identifier">Bitmap player</span><span class="hl-default">;

</span><span class="hl-comment">// hBackBuffer と互換性のあるビットマップイメージを player.bmp から作る
// このとき緑色 (255, 0, 255) を背景色とする
</span><span class="hl-identifier">player</span><span class="hl-default">.</span><span class="hl-identifier">load</span><span class="hl-brackets">(</span><span class="hl-identifier">hBackBuffer</span><span class="hl-code">, </span><span class="hl-identifier">TEXT</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">player.bmp</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">RGB</span><span class="hl-brackets">(</span><span class="hl-number">255</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">255</span><span class="hl-brackets">))</span><span class="hl-default">;

</span><span class="hl-comment">// ビットマップイメージのデバイスコンテキストハンドルを取得する
</span><span class="hl-identifier">HDC bitmap</span><span class="hl-default"> = </span><span class="hl-identifier">player</span><span class="hl-default">.</span><span class="hl-identifier">getBitmap</span><span class="hl-brackets">()</span><span class="hl-default">; </span><span class="hl-comment">// player.bmp を取得する
</span><span class="hl-identifier">HDC mask</span><span class="hl-default">   = </span><span class="hl-identifier">player</span><span class="hl-default">.</span><span class="hl-identifier">getMask</span><span class="hl-brackets">()</span><span class="hl-default">;   </span><span class="hl-comment">// player.bmp のマスク画像を取得する

// player のイメージを hBackBuffer へ透過転送する
</span><span class="hl-identifier">BitBlt</span><span class="hl-brackets">(</span><span class="hl-identifier">hBackBuffer</span><span class="hl-code">, </span><span class="hl-identifier">x</span><span class="hl-code">, </span><span class="hl-identifier">y</span><span class="hl-code">, </span><span class="hl-identifier">width</span><span class="hl-code">, </span><span class="hl-identifier">height</span><span class="hl-code">, </span><span class="hl-identifier">mask</span><span class="hl-code">, </span><span class="hl-identifier">u</span><span class="hl-code">, </span><span class="hl-identifier">v</span><span class="hl-code">, </span><span class="hl-identifier">SRCAND</span><span class="hl-brackets">)</span><span class="hl-default">;
</span><span class="hl-identifier">BitBlt</span><span class="hl-brackets">(</span><span class="hl-identifier">hBackBuffer</span><span class="hl-code">, </span><span class="hl-identifier">x</span><span class="hl-code">, </span><span class="hl-identifier">y</span><span class="hl-code">, </span><span class="hl-identifier">width</span><span class="hl-code">, </span><span class="hl-identifier">height</span><span class="hl-code">, </span><span class="hl-identifier">bitmap</span><span class="hl-code">, </span><span class="hl-identifier">u</span><span class="hl-code">, </span><span class="hl-identifier">v</span><span class="hl-code">, </span><span class="hl-identifier">SRCPAINT</span><span class="hl-brackets">)</span><span class="hl-default">;</span></pre></div></div>
<p>マスク画像を自分で作るよりだいぶ楽ですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/779/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>背景色を透過して画像をブロック転送する</title>
		<link>http://www.game-create.com/archives/735</link>
		<comments>http://www.game-create.com/archives/735#comments</comments>
		<pubDate>Sat, 20 Sep 2008 09:40:47 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[GDI]]></category>
		<category><![CDATA[Study::Bitmap]]></category>
		<category><![CDATA[ラスターイメージ]]></category>
		<category><![CDATA[ラスターオペレーション]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=735</guid>
		<description><![CDATA[背景色を透過して画像をブロック転送するためには、ラスターオペレーションを使います。

まず、普通に画像をブロック転送すると次のようになります。

背景色であるピンク色までもがコピーされているのがわかります。これは多くの場 [...]]]></description>
			<content:encoded><![CDATA[<p>背景色を透過して画像をブロック転送するためには、ラスターオペレーションを使います。</p>
<p><span id="more-735"></span></p>
<p>まず、普通に画像をブロック転送すると次のようになります。</p>
<p><img src="http://www.game-create.com/wp-content/uploads/2008/09/normal_blt.gif" alt="" title="通常のブロック転送" width="192" height="64" class="alignnone size-full wp-image-736" /></p>
<p>背景色であるピンク色までもがコピーされているのがわかります。これは多くの場合、意図した結果ではないはずです。背景色のピンクを除外してコピーするためには次の手順を踏みます。</p>
<p>まず、背景を白、本体を黒とする画像を作ります。これをマスク画像と呼びます。マスク画像が用意できたらラスターオペレーションを使って背景へ AND 転送し、本体の形に背景をくりぬきます。 AND 転送すると黒に近い色が採用されます。この特性を利用して本体の形に穴を開けるというわけです。</p>
<p><img src="http://www.game-create.com/wp-content/uploads/2008/09/trans_blt_1.gif" alt="" title="背景色を透過するための手順１" width="192" height="64" class="alignnone size-full wp-image-737" /></p>
<p>背景がくりぬけたら、今度は、そのくりぬいた穴に本体を流し込みます。くりぬいた穴に本体を流し込むためには、背景を黒とする画像と背景とを OR 転送します。 OR 転送すると双方の黒ではない色が採用されます。</p>
<p><img src="http://www.game-create.com/wp-content/uploads/2008/09/trans_blt_2.gif" alt="" title="背景色を透過するための手順２" width="192" height="64" class="alignnone size-full wp-image-738" /></p>
<p>見事、目的を達成することができました。</p>
<p>なお、 Study::Bitmap ではこのマスク画像を自動的に生成する機能があります。便利ですね。今後も使っていきましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/735/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ビットマップはラスターイメージの代表的な実装らしい</title>
		<link>http://www.game-create.com/archives/387</link>
		<comments>http://www.game-create.com/archives/387#comments</comments>
		<pubDate>Mon, 09 Jun 2008 09:11:04 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[Fireworks]]></category>
		<category><![CDATA[ビットマップ]]></category>
		<category><![CDATA[ベクターイメージ]]></category>
		<category><![CDATA[ラスターイメージ]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=387</guid>
		<description><![CDATA[よく、「 Fireworks はベクターとビットマップの融合が美しい」とか言ってしまうのですが、厳密にはビットマップというのはラスターイメージの実装技術の名前だったんですね。

まぁ、いまさら誤用したところで誰も混乱しな [...]]]></description>
			<content:encoded><![CDATA[<p>よく、「 Fireworks はベクターとビットマップの融合が美しい」とか言ってしまうのですが、厳密にはビットマップというのはラスターイメージの実装技術の名前だったんですね。</p>
<p><span id="more-387"></span></p>
<p>まぁ、いまさら誤用したところで誰も混乱しないとは思うのですが、確かにある時期から Fireworks は「ビットマップ」という言葉を避けていますよね。おそらくこのあたりの事情も一因になっているのかと思っております。</p>
<p>実はライスタライザの実装方法を調べているのですが、Ｚバッファというのは DirectX だけの仕様なんでしょうか。ゲーム会社で働いているうちに PS2 の仕様書を読んでおけばよかったです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/387/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

