<?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%9d%e3%83%aa%e3%82%b4%e3%83%b3/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>Direct3D パフォーマンスの最適化</title>
		<link>http://www.game-create.com/archives/2612</link>
		<comments>http://www.game-create.com/archives/2612#comments</comments>
		<pubDate>Sun, 20 Dec 2009 10:33:04 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ウェブログ]]></category>
		<category><![CDATA[Direct3D]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[テクスチャ]]></category>
		<category><![CDATA[ポリゴン]]></category>
		<category><![CDATA[最適化]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2612</guid>
		<description><![CDATA[「～するためには～します」と書かれてわかったような気になるのですが、「それはどれくらいやっていいの？」という疑問が残ります。新しい技術を学ぶ際はなおさら。もし、 DirectX でこういった疑問に遭遇したら次のページがヒ [...]]]></description>
			<content:encoded><![CDATA[<p>「～するためには～します」と書かれてわかったような気になるのですが、「それはどれくらいやっていいの？」という疑問が残ります。新しい技術を学ぶ際はなおさら。もし、 DirectX でこういった疑問に遭遇したら次のページがヒントになるかもしれません。</p>
<p><a href="http://msdn.microsoft.com/ja-jp/library/bb147263%28VS.85%29.aspx" class="external">パフォーマンスの最適化 (Direct3D 9)</a></p>
<p><span id="more-2612"></span></p>
<p>ただ、こういった情報は計算量が多い 3D のようなゲームを想定してのものかと思われます。１フレーム（ 1/30 くらい）中に描画するポリゴン数が 30 で 256&#215;256 程度のテクスチャ数が５枚くらいだったら、必要になったタイミングでステートやテクスチャを切り替えて差し支えないかと思います（どうやら今のゲームがそれくらいになりそうで…）。</p>
<p>これを確かめるためにはページ中にある「アプリケーションのパフォーマンスを絶えずテストする」が重要だと考えているのですが、解説の途中に結論みたいなお話が出てきてちょっと面白く感じました。</p>
<p>一応、制作中のクラス設計に反映しております。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2612/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ロジックの視点、こういうのなんていうでしょう？</title>
		<link>http://www.game-create.com/archives/2157</link>
		<comments>http://www.game-create.com/archives/2157#comments</comments>
		<pubDate>Fri, 04 Sep 2009 18:42:17 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[MONSTER HUNTER]]></category>
		<category><![CDATA[コード]]></category>
		<category><![CDATA[ポリゴン]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2157</guid>
		<description><![CDATA[ゲームプログラミングの解説記事を執筆するに当たり、過去の経験から使えそうな出来事を探しているのですが、ひとつ思い出しました。

ちょっと、初心者向けの記事には向かないかもしれないのですが、以前、モンスターハンターのキャラ [...]]]></description>
			<content:encoded><![CDATA[<p>ゲームプログラミングの解説記事を執筆するに当たり、過去の経験から使えそうな出来事を探しているのですが、ひとつ思い出しました。</p>
<p><span id="more-2157"></span></p>
<p>ちょっと、初心者向けの記事には向かないかもしれないのですが、以前、モンスターハンターのキャラクターが起伏のある地面を歩いている映像を同僚と見ていたときに、「こういうの作るの結構大変なんだよね」みたいな話をしたら「そうなの？」という反応をいただきました。</p>
<p>普段、 WEB システムしか作らないので、ポリゴンがめりこむというのを知らなかったとのことですが、ポリゴンのめりこみについて説明すると、「なるほど、進入先が上り坂だったらキャラクターの座標を上に移動させないといけないんだ」と言っていました。</p>
<p>間違ってないです、むしろ正解なのですが、自分の感覚からするとちょっと実装案にたどり着きづらい見方のような気がしました。</p>
<p>というのも…</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-mlcomment">/* 進入先が上り坂 */</span><span class="hl-brackets">) {
  </span><span class="hl-comment">// キャラクターを上に移動
</span><span class="hl-brackets">}</span></pre></div></div>
<p>こうやってコードを書いたときのコメントに入る内容が思いつけるかどうかなのですが、自分の場合はうまい方法が思いつきませんでした。 if 文による分岐ではなく、常にキャラクターの縦軸と地面との交点を求めて、キャラクターがその上を歩いている風に見えるように、座標を上下するのがいいのかなと思います。実際にはそこまで単純にはいかないかと思いますが、コードは想像しやすいです。</p>
<p>このあたりの難しさの本質を見つけたいところなのですが、なかなかうまくいきません。躓くところのような気がするだけになんとかしたいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2157/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3D のカメラワークは実際に作ってみないと問題を共有できないかもしれない</title>
		<link>http://www.game-create.com/archives/2039</link>
		<comments>http://www.game-create.com/archives/2039#comments</comments>
		<pubDate>Wed, 05 Aug 2009 21:29:12 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[INFINITE UNDISCOVERY]]></category>
		<category><![CDATA[カメラ]]></category>
		<category><![CDATA[ポリゴン]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=2039</guid>
		<description><![CDATA[3D のゲームではカメラワークによって遊びづらさが大きく左右されるかと思いますが、今、一番気になっているのが、「キャラクターの移動範囲を決めるポリゴンと、カメラの移動範囲を決めるポリゴンは同じデータを使わないとまずいのか [...]]]></description>
			<content:encoded><![CDATA[<p>3D のゲームではカメラワークによって遊びづらさが大きく左右されるかと思いますが、今、一番気になっているのが、「キャラクターの移動範囲を決めるポリゴンと、カメラの移動範囲を決めるポリゴンは同じデータを使わないとまずいのか？」という点です。</p>
<p><span id="more-2039"></span></p>
<p>どんなにリアルになってもゲームが絵を描画して動いているように見せています。「壁にぶつかったのでこれ以上進めない」などは計算によってシミュレーションするわけですが、これを移動範囲を決めるための見えないポリゴンで計算することがあります。つまり、「このポリゴンの上ならキャラクターが移動できる。ポリゴン外には出られない」という作りにするのです。</p>
<p>疑問に思っているのは、「”カメラがそこに移動できるか？”を判定する際にも同じデータを使わなければならないのか？」という点です。建物内など、壁が多いところでは同じで良いかもしれません。…が、屋外などですと「そこはカメラが入っても良いだろう？」というところも避けたりして、結果、カメラが急にキャラクターに接近して見づらくなることが良くあります（インフィニットアンディスカバリーを例にすると、モンタナ村のルカとロカの家付近の丘など。あそこはカメラが空中を飛んでも問題ないように思います）。</p>
<p>もはやこれは実際に作ってみないと問題を共有できないと思いますので、なんとか一回やってみたいです。</p>
<p>まったくの想像で思い当たるのは、カメラの移動判定をする際、地面との距離を考慮しているような仕様になっている可能性です。カメラを実際にカメラマンが持って撮影しているイメージとでも申しましょうか。たとえば、坂を上ったりするときは、カメラはキャラクターの後ろをついていきますので、自動的に見上げるようなアングルになります（下る場合は見下ろすアングル）。これをやるためには地面との距離を見なければなりません。地面との距離を見なければならないということは、キャラクターの移動範囲と同じデータを参照しなければなりません。「同じじゃなくても良いだろう？」と思われるかもしれませんが、カメラが踏み外しても良い足場とだめな足場を効率よく区別する方法が思いつきませんでした。カメラの動きがカメラマンによる撮影のイメージで計算し、かつ、空も飛べるようにするとなると、踏み外して良い足場というのが必要です（「どうせ見えないポリゴンなんだから、キャラクターにとっては空中でも、カメラにとってはそこが地面であるかのようにすれば良いのでは？」というのは問題があります。そうすると空中であるにもかかわらず、カメラが下に移動できなくなります）。</p>
<p>もうひとつ考えられるのが、「移動範囲のポリゴンを作ってもらう人にカメラの移動範囲を考慮してもらうのは酷かもしれない」という可能性です。…が、これはちょっと他人を馬鹿にしすぎのような気もします。</p>
<p>「楽しさを発信するのって基本にしてかなり重要ですよ」と教えられたので、がんばってみましたが、あんまり楽しくなくなってきました。難しい…</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/2039/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL の空間情報関数が熱すぎる件</title>
		<link>http://www.game-create.com/archives/1735</link>
		<comments>http://www.game-create.com/archives/1735#comments</comments>
		<pubDate>Mon, 25 May 2009 14:00:29 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[ベクトル]]></category>
		<category><![CDATA[ポリゴン]]></category>
		<category><![CDATA[数学]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1735</guid>
		<description><![CDATA[MySQL の空間情報関数が便利すぎます。ゲームで使いたいです。

たとえばポリゴン内判定などは、本当ならポリゴンを三角形に分割して、外積で判定する必要があるような気がするのですが、 MySQL なら関数が用意されている [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dev.mysql.com/doc/refman/4.1/ja/spatial-extensions.html" class="external">MySQL の空間情報関数</a>が便利すぎます。ゲームで使いたいです。</p>
<p><span id="more-1735"></span></p>
<p>たとえばポリゴン内判定などは、本当ならポリゴンを三角形に分割して、外積で判定する必要があるような気がするのですが、 MySQL なら関数が用意されているとのことです。</p>
<p>しかしながら、 MySQL を使うようなゲームを作る予定がありません。オンラインゲームなら利用用途はあるでしょうか。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1735/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3D ゲームプログラミング突貫入門</title>
		<link>http://www.game-create.com/archives/1520</link>
		<comments>http://www.game-create.com/archives/1520#comments</comments>
		<pubDate>Sat, 18 Apr 2009 12:15:59 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[2D]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[Win32API]]></category>
		<category><![CDATA[ポリゴン]]></category>
		<category><![CDATA[数学]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=1520</guid>
		<description><![CDATA[この間、リンク元をチェックしていたら「 3D ゲームプログラミングを勉強したい」というページがありました。なんと、「できればこういうサイトで」としてここへのリンクがあったりなかったり。嬉しいことですね。

3D の難しい [...]]]></description>
			<content:encoded><![CDATA[<p>この間、リンク元をチェックしていたら「 3D ゲームプログラミングを勉強したい」というページがありました。なんと、「できればこういうサイトで」としてここへのリンクがあったりなかったり。嬉しいことですね。</p>
<p><span id="more-1520"></span></p>
<p>3D の難しいところは 2D よりも基礎知識が必要なことでしょうか。更に言うと、解説サイトや解説本などは、その「基礎知識が必要なこと」を「知っている」ことが前提で書かれているという点です。</p>
<p>「基礎知識があること」ではなく、「基礎知識の必要性を知っている」という意味です。難しいですね。ですから、「基礎知識」は「今現在持っていない」状態でも良いのです。ただ、「基礎知識が必要」ということを「認識」していればいいのです。ですが、本当の入門者はそれすらわからない状態から始めないといけないのです。これは入門者が途中で挫折してしまっても無理ありません。ほとんど勝ち目のない試合をしています。</p>
<p>メルマガでは 2D であれば、「点を描画する」というところから開始しています。それは、「あらゆるゲーム画面は点の集まりでできている」からであり、点の描き方さえわかってしまえば、理論上、どんなゲーム画面でも作れるからです。</p>
<p>でも、実は 3D も同じなのです。 3D の最小単位はポリゴンですが、１ポリゴンの描き方さえわかってしまえば、理論上、どんなゲーム画面でも作れるはずです。ただ、解説書などでは１ポリゴンの描き方を説明するのにとんでもない紙面を割きます。これは仕方ないことで、それだけ解説しないと「実用に耐えない」という理由があります。しかしながら、「俺にもがんばればできそうだ」と感じていただくために、１ポリゴンだけ手っ取り早く表示する方法があれば、それをお伝えした方が絶対良いと思います。ポリゴンは三角形ですが、その３頂点の座標さえあれば描けるはずなのです（事実、 Win32API にもポリゴンを描画する関数がありますが、その関数で必要なのは頂点の座標だけです）。</p>
<p>これは DirectX であれば簡単にできます。 DirectX でポリゴンを頂点座標だけで描くためには、<a href="http://www.game-create.com/archives/166">頂点フォーマットを「座標変換しない」モードで作ります</a>。とりあえず、これにて解説書の内容を無視してポリゴンを簡単に描くことができますので、まずはそれでゲームを作ってみることをおすすめします。もし、作っていく中で暗礁に乗り上げるようなことがありましたら、それを解決する方法が、「 3D の基礎知識」の可能性が高いです。</p>
<p>若い頃は「急がば回れ」という言葉に嫌悪感を持っていましたが、年を取ってその意味がわかるようになりました。もう、若くありません。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/1520/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3D のパイプラインは一般的な概念らしい</title>
		<link>http://www.game-create.com/archives/882</link>
		<comments>http://www.game-create.com/archives/882#comments</comments>
		<pubDate>Thu, 23 Oct 2008 12:46:24 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[パイプライン]]></category>
		<category><![CDATA[ポリゴン]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=882</guid>
		<description><![CDATA[DirectX などからゲーム開発に入ってしまうと迷うのが「この技術は DirectX 固有なのだろうか？」という点です。パイプラインもそのひとつだったのですが、リアルタイムレンダリングをはじめ多くの書籍で取り上げられて [...]]]></description>
			<content:encoded><![CDATA[<p>DirectX などからゲーム開発に入ってしまうと迷うのが「この技術は DirectX 固有なのだろうか？」という点です。パイプラインもそのひとつだったのですが、リアルタイムレンダリングをはじめ多くの書籍で取り上げられていました。どうやら一般的な概念のようです。</p>
<p><span id="more-882"></span></p>
<p>パイプラインとは、ジオメトリ情報（ポリゴン）を座標変換し、材質やライト（光源）やテクスチャといった要素を反映して画面にラスタライズ（表示）する一連の機能のことです。ジオメトリがベルトコンベアーに乗せられて入り口から入り、さまざまな加工を経て出口から出てくる様からパイプラインと呼ばれます。</p>
<p>ちなみに CPU 周辺にもパイプラインという用語があるので注意です。 DirectX の場合はレンダリングパイプラインと呼んで区別した方が間違いが少なくなります。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/882/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>頂点バッファを使わないでポリゴンを表示する</title>
		<link>http://www.game-create.com/archives/184</link>
		<comments>http://www.game-create.com/archives/184#comments</comments>
		<pubDate>Thu, 13 Dec 2007 08:44:33 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[ポリゴン]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=184</guid>
		<description><![CDATA[最近の DirectX は頂点バッファから解説が始まるのですが、最初から 2D のゲームを作るとわかっている場合は頂点バッファを使わない方法もあります。

頂点バッファを使わないでポリゴンを表示するためには IDirec [...]]]></description>
			<content:encoded><![CDATA[<p>最近の DirectX は頂点バッファから解説が始まるのですが、最初から 2D のゲームを作るとわかっている場合は頂点バッファを使わない方法もあります。</p>
<p><span id="more-184"></span></p>
<p>頂点バッファを使わないでポリゴンを表示するためには IDirect3DDevice9::DrawPrimitiveUP() メソッドを使います。</p>
<p>引数は頂点ポイントの描画方法と頂点数、頂点情報を格納した配列へのポインタ、１頂点あたりのバイト数などを渡します。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/184/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

