タグ

ブックマーク / marupeke296.com (24)

  • その1 Unityのサウンドの根っこ

    ホーム < ゲームつくろー! < Unity/サウンド編 サウンド編 その1 Unityのサウンドの根っこ ゲーム制作をしているといつも「音が入ると途端にゲームらしくになる!」と感動します。音はゲームを印象付ける極めて大切な要素だと再認識させられる瞬間です。 そんな大切な要素「音」、Unityは簡単に鳴らす事が出来る仕組みが整っています。簡単なのですが、それ以上の所が無いのもまたUnity。そこで編ではゲームで使えるサウンドシステムを考えてみます。 何はともあれ、Unityでどうやって音を鳴らすかをざっと見て行く事にしましょう。 ① まずは音を用意 音の素となるのはもちろんサウンドファイルです。UnityがサポートしているサウンドファイルのフォーマットはOggVorbisと非圧縮のwavです。mp3などもリソースとしてインポートできますが、時間かかるは劣化するはなので、なるべく対象フォー

  • その18 ステンシルバッファって何?

    ホーム < ゲームつくろー! < DirectX技術編 < ステンシルバッファって何? その18 ステンシルバッファって何? ステンシル(stencil)というのは「型板(かたいた)」「型抜き染め」という意味です。blow a pigment over the stencil(型紙を置いた上から染料を吹き付ける)などの例文にあるように、下にある絵を覆う紙や板をステンシルと言います。Direct3Dでのステンシルバッファというのも正にそれでして、描画の際に点を塗るか塗らないかを決めてくれます。ステンシルバッファをどうやって設定するのか?この章ではそういうステンシルバッファの基を見ていくことにします。 ① ステンシルバッファで出来る事 ステンシルバッファは描画の際に色を画面に表示するかしないかを決める「マスク」の役目を成します。これはポリゴンの前後関係を保持するZバッファよりももっと直接的な

    goinger
    goinger 2011/04/10
  • その30 気になる頂点インデックスの意義

    ホーム < ゲームつくろー! < DirectX技術編 < 気になる頂点インデックスの意義 その30 気になる頂点インデックスの意義 Direct3Dのチュートリアルで、私たちは頂点を定義して描画する基を学びます。しかし、複雑な図形になると面倒なので、今度はXファイルを使うようになります。Xファイルの扱いも来は面倒なものですが、ありがたいことにDirect3DExtention(Direct3DX)にあるD3DXLoadMeshFromX関数等によってXファイルを読み込んでID3DXMeshインターフェイスを取得し、ID3DXMesh::DrawSubset関数であっさり描画ができてしまいます。 ところが、Direct3Dには「頂点インデックス」なるものがあり、どうやらこれでも描画が出来るらしい。そんなことにそのうち気が付きます。気が付くんですけど、色々疑問が出るんです。「頂点インデッ

  • プログラマブルシェーダー編

    ホーム < ゲームつくろー! < プログラマブルシェーダ編 プログラマブルシェーダ編 プログラマブルシェーダーというのはDirectX8から使われるようになった、頂点情報やピクセル描画方法をプログラマが独自にカスタマイズできる技術です。昨今の素晴らしいエフェクトや画面効果の殆どはプログラマブルシェーダーを用いて作られており、今や必須の技術となってきています。とは言うものの、何だか良くわからない。「しぇーだーって何」というのも心だったりします。そこで節では、プログラマブルシェーダーについてじっくりと検討していきたいと思います。

  • その2 座標変換済み頂点で2D板ポリゴンを描画

    ホーム < ゲームつくろー! < DirectX技術編 < 座標変換済み頂点で2D板ポリゴンを描画 その2 座標変換済み頂点で2D板ポリゴンを描画 Direct3Dで2Dを作成する事に意味はあるのか?といわれるとはっきりと「はい!あります!」と答える事が出来ます。3Dゲームの中にもスコア、タイム、ネームエントリーなど、奥行きを必要としない表示はいくらでも出てきますね。これらの表示にはやはり2D描画の技術が必要になってきます。もちろん2Dゲームを作る場合は、その技術自体が主流となるはずです。 Direct3Dで2D描画を行う方法は幾つかあります。D3DX(Direct3D eXtention)のID3DXSpriteインターフェイスなどはその方法の1つです。しかし、このスプライトは簡単なぶん回転や拡大縮小、透過処理など思った事がなかなか出来なかったりします。現在のビデオカードでは、そういうエ

  • その3 テクスチャ作成あれこれ

    WidthとHrightは作成するテクスチャのサイズを指定します。 Levelsは「ミップマップレベル」を設定します。ミップマップとは連続したテクスチャで、同じ画像を徐々に低解像度にしたものです。具体的には、100×80という画像を用意した(Level 1)とすると、次のレベル2は50×40と縦横とも半分の大きさになります。Level3は25×20、Level4は12×10、Level5は6×5、Level7は3×2、Level8は1×1となります。つまり、この大きさの画像を用意した場合、Levelは0~8まで設定できます。0を設定すると1×1になるまでミップマップを全部生成してくれます。 Usageはテクスチャの性質や確保するメモリの場所を指定するオプションです。マニュアルの「D3DUSAGE」に設定できるフラグの一覧があります。D3DUSAGE_DYNAMICを指定すると動的テクスチャ

  • その4 もう悩まないテクスチャブレンディング

    ホーム < ゲームつくろー! < DirectX技術編 < もう悩まないテクスチャブレンディング その4 もう悩まないテクスチャブレンディング 私がDirectXを触り出して、大きくつまづいたのが「テクスチャステージ」と「テクスチャブレンディング」でした。テクスチャステージとは、テクスチャをブレンドする順番の事です。テクスチャステージごとにテクスチャを割り当てて、それを合成していく。それが「テクスチャブレンディング」です。しかし、これが何だかややこしい。そこでここでは、テクスチャブレンディングを取り上げてみました。 まず、テクスチャステージについてです。以下の図をご覧下さい。 私がテクスチャブレンディングで混乱してしまったのは、テクスチャブレンディングというのが「テクスチャ同士の合成なんだ」と考えてしまったからです。違うんですよね。上の図のように、最下段に「テクスチャStage 0」があり

  • charとUnicodeとワイド文字をごっちゃにしないために

    ホーム < ゲームつくろー! < C++踏み込み編 < charとUnicodeとワイド文字をごっちゃにしないために その4 charとUnicodeとワイド文字をごっちゃにしないために Visual Studio 2003あたりになってから、ちらほらと出てきたのが「Unicode」や「ワイド文字」という言葉。DirectXでもたびたびこれに苦しめられたりします。どうも世の中従来の1バイト文字からUnicodeへ過渡しそうな気配です。これらの文字の仕様については色々なサイトや辞書に詳しく説明されています。しかし、しっかりまとめないとやっぱり混乱してしまうもんなんです。「バイト文字をUnicodeに変換するのと、マルチバイト文字をワイド文字に変換するのは何が違うのか?」と聞かれたときに、すっと回答できますでしょうか?できる方はすばらしい。迷った方も大丈夫。世の中そんなもんです。 ここでは、c

  • マルペケつくろーどっとコム

    <BODY> <P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P> </BODY>

  • その6 HLSLの根っこ:最初の最初からやってみる

    ホーム < ゲームつくろー! < プログラマブルシェーダ編 < HLSLの根っこ:最初の最初からやってみる その6 HLSLの根っこ:最初の最初からやってみる HLSL(High-Level Shader Language:上位レベルシェーダ言語)は頂点シェーダ及びピクセルシェーダを記述できる言語です。前章までのアセンブリによるプログラムは仕組みとしては単純なのですが、やはりアルゴリズムの構築がパズルのようで、可読性の点からも厳しいものがあります。一方でHLSLはC言語風の表記方法で、はるかに読みやすいシェーダプログラムを書くことができます。これはちょうどアセンブラとC言語の関係と同じです。そう考えると世の中がHLSLに移行するのは目に見えています。 HLSLについて書かれたは沢山あります。ただ、私がアホなだけかもしれませんが、なぜだかを見てもすっと理解できないんですよ(^-^;。それ

    goinger
    goinger 2008/07/28
  • その3 デバッグウィンドウを知らないと大変です

    ホーム < ゲームつくろー! < デバッグ技術編 その3 デバッグウィンドウを知らないと大変です その1でブレークポイントを設定してプログラムを一時的に止めてステップ実行するデバッグの基を紹介しました。このデバッグはプログラムが一時停止するので「静的なデバッグ」です。でも、例えばゲームのキーが正しく入力されているかを調べるには、プログラムが動き続けてくれないといけません。また状態遷移などが上手く動いているかをチェックする時にステップ数が膨大になるとデバッグに時間がかかってしまいます。 静的なデバッグが厳しい状況ではステップ実行は非効率です。そういう時は動かしながらリアルタイムで数値の変化を見るのが得策です。しかし、自動変数ウィンドウなどはステップ実行時以外は見ることができませんので、別の出力を設ける必要があります。その候補の1つがデバッグウィンドウ(出力ウィンドウ)です。 この章ではデバ

  • その25 アニメーションの根っこ:オブジェクトを読み込む

  • その24 アニメーションの根っこ:フレームって何だ?

  • DirectX技術編

    ホーム < ゲームつくろー! < DirectX9技術編 DirectX9技術編 Direct Graphics その1 初期化なんて怖くないぜ! 2013. 1. 11 改正 サンプルプログラム その2 座標変換済み頂点で2D板ポリゴンを描画 2006. 5. 15 加筆改正 サンプルプログラム その3 テクスチャ作成あれこれ 2005. 12. 3 改正 サンプルプログラム その4 もう悩まないテクスチャブレンディング 2005. 12. 3 改正 その5 高速フォント表示 2006. 5. 12 加筆改正 サンプルプログラム その6 板ポリゴンに写る3Dオブジェクト 2005. 12. 3 改正 その7 3Dオブジェクト描画のおさらい 2006. 7. 11 加筆改正 サンプルプログラム その8 キーフレームアニメーションで動きを制御 2005. 12. 3 改正 その9 Xファイル

  • http://marupeke296.com/images/DXG_No38_GameObjectRelation.gif

  • その27 アニメーションの根っこ:スキンメッシュアニメーション(ボーン操作)

    ホーム < ゲームつくろー! < DirectX技術編 < アニメーションの根っこ:スキンメッシュアニメーション(ボーン操作) その27 アニメーションの根っこ:スキンメッシュアニメーション(ボーン操作) RPGで主人公が走り、飛び、勝利のポーズを決める。かっこいいですよねぇ~。そういう軟質系の動きは「スキンメッシュアニメーション」と呼ばれています。これをDirect3Dで実現するために、その23あたりから地道な下積みをしてきています。この章では、いよいよアニメーションの根をなす「ボーン操作」について説明します。この章、はっきり言って試行錯誤と調査と努力の結晶です(T_T) ① ボーン登場! ○×にもちらちらと出てくる「ボーン(骨)」。スキンメッシュアニメーションの中核をなす重要な概念でして、ようやくここで堂々の登場となります。ボーンとはスキンメッシュに埋め込まれた骨のことで、この骨をぐ

  • その23 xファイルによるポリゴンメッシュのアニメーション(取っ掛かり編)

    ホーム < ゲームつくろー! < DirectX技術編 < xファイルによるポリゴンメッシュのアニメーション(取っ掛かり編) その23 xファイルによるポリゴンメッシュのアニメーション(取っ掛かり編) Direct3Dをある程度使えるようになると、どうしてもやりたくなってくるのが「アニメーション」です。もちろん、オブジェクトを移動させたり、回転させたりするのもアニメーションですが、多くの人が「やりたい!」っと熱望するのが「歩く」「走る」「飛ぶ」といったもっとダイナミックなアニメーションではないでしょうか? ところが、DirectX9のマニュアルを見ても、そのチュートリアルは皆無です。表示の方法は手取り足取り教えてくれているのに、動きに関してはつっけんどん・・・。このように、ことアニメーションとなると、突然冷たくなるDirect3D。この章では、そんな情報不足の「アニメーション」を行う方法を

    goinger
    goinger 2008/06/09
    アニメーションメッシュ
  • その10 クォータニオンを学んでみよう!

    ホーム < ゲームつくろー! < DirectX技術編 < クォータニオンを学んでみよう! その10 クォータニオンを学んでみよう! ① What is Quaternion ? クォータニオン(Quaternion)とは日語で「4元数」と訳します(アルク:http://www.alc.co.jp/)。数字が4つ集まったもので、言ってみれば4次元ベクトルです。3次元ベクトルであれば縦横高さで何となく想像ができますが、4次元となるともうドラえもんしかわかりません(笑)。この原稿を書いている私も、実は何のことやらさっぱり。そこで、私と同じような境遇にいる皆さんにも理解できるように、このクォータニオンを1から学んでみようと思います。 クォータニオンについてマイクロソフトのHPに一通りの説明がありました(http://www.microsoft.com/japan/msdn/academic/A

    goinger
    goinger 2008/06/09
    クォータニオン
  • 参照文献

    基礎からピクセルシェーダーまでを幅広く扱っています。昨今のゲームで使われている表現技法がしっかりと詰っていて、これ1冊で相当な技術が間違いなく身に付きます。キーフレームアニメーションの話は他のにあまり掲載されていない部分で必読です。サイトでもこのから多数のヒントを頂いております。技術に視点を置いているので、ライブラリ化の方法は述べられていませんが、大変にすばらしい1冊です。 (DirectX9 SDK Update(Summer 2004)対応)

  • 実装編その1 DirectXとの親和性を意識しよう

    goinger
    goinger 2008/06/08
    衝突判定