タグ

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

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

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

  • OpenGL ES 2.0技術編

  • データビルド編

    ホーム < ゲームつくろー! < データビルド編 データビルド編 皆さん「データビルド」をご存知でしょうか?私は、業に就くまで全く知りませんでした(^-^;。しかし、多分殆どの商用ゲームの製作現場において「必須」とも言える作業。それがデータビルドです。 データビルドとは、「ゲームで使用するリソースを作る作業」です。ピンと来ない方もいらっしゃるかもしれませんので、リソースの暗号化作業で例えてみます。 商用ゲームのリソースは大抵暗号化されています。これはもちろん、リソースを保護するためです。では、この暗号化の作業はどの段階で行うのでしょう。商用ゲームでは沢山の人がリソースを作ってくれます。でも、そのすべての人に「暗号化したファイルを作って渡して下さい」と言うのはNG。絶対に酷く見つかりにくいヒューマンエラーが発生します。そのため、リソースを作成する人には「元のデータを○○というフォルダに入れ

  • ゲーム製作技術編

    ホーム < ゲームつくろー! < ゲーム製作技術ゲーム製作技術気で中規模以上のゲームを作りたい。でも巷に溢れるプログラムの入門書には触りしか書いてくれていない。これじゃプロとアマとで差が開くばかりです。ゲーム製作技術編では、入門書の先の先にあるもっと濃ゆいゲームプログラムの製作方法について、あれこれ試行錯誤していこうと思います。目指すは脱「入門○○」です!

  • その14 ドキドキしないプリコンパイル済みヘッダ

    ホーム < ゲームつくろー! < C++踏み込み編 その14 ドキドキしないプリコンパイル済みヘッダー ちょっとしたテストやサンプルの為に書き捨てるプログラムではなく、大規模なプログラムを作成するとコンパイル時間が馬鹿にならなくなってきます。商用ゲームだと、規模は様々ですが、コンシューマ機で販売するような規模のプログラムになるとフルビルドで数時間からヘタをすると1日近くかかる場合もあります。ゲームプログラマになって初めて超絶に大規模なコードに触れ、さらにそれをフルビルドした時には、それはそれは延々と続くビルドにただただ驚いたのを覚えています。 そこまで大規模とは言わないまでも、ある程度規模が大きくなるとビルド時間を短縮したくなってくるものです。そういう時、割とお手軽で効果的にビルド時間を短くしてくれる仕組みが「プリコンパイル済みヘッダー」です。 C++はコードをコンパイルしリンクすることで

  • その3 拡張できて修正不要の原則 : OCP

    ホーム < ゲームつくろー! < オブジェクト指向設計編 < 拡張できて修正不要の原則 : OCP その3 拡張できて修正不要の原則 : OCP オブジェクト指向には幾つか「原則」と呼ばれるものが存在しています。原則(Principle)というのは約束(Promise)や指針(Guideline)よりもはるかに強い戒めです。オブジェクト指向における原則は、よっぽどの理由が無い限り破る事は許されないものばかりです。沢山ある原則の中で、ここではオブジェクト指向の基原則である「Open-Closed Principle : OCP」について見ていくことにします。尚、今回の話は「まさーるのページ」(石井様作成)にあるオブジェクト指向に関する素晴らしいお話の影響を多大に受けております。このページをご覧になりますと、オブジェクト指向のが読みたいと熱望してしまうこと間違いなしです。私も思わず関連

  • その5 CS2:自機から弾を発射する(1)

    ホーム < ゲームつくろー! < オブジェクト指向設計編 <CS2:自機から弾を発射する(1) その5 CS2:自機から弾を発射する(1) STGで自機から弾を発射する。この短い時間で終わる単純な振る舞いの中には、実は細かなオブジェクトの制御が隠されています。今回はオブジェクト指向で自機から弾を発射する実装をしてみましょう。あ、今から宣言しておきます。これ、大変な仕事です。 ① 問題意識(問題領域) 今回の解決すべき問題は、 ボタンが押されたら、自機から弾が発射される。 という単純なものです。しかし、これが実に奥深いんです。うん…当に奥深いんです(-_-;; ② 仕様作成 細かな仕様を固めていきましょう。まず、問題意識にある言葉の定義からです。 ボタンというのは、仮想的なものに過ぎません。キーボードのキーかもしれませんし、マウスのクリックに化けるかもしれません。すべてに共通することは「押

  • オブジェクト指向設計編

    ホーム < ゲームつくろー! < オブジェクト指向設計編 オブジェクト指向設計編 昨今のプログラム製作において「オブジェクト指向」はもう当然の如く使われるようになりました。しかし、オブジェクト指向に基づいた設計というのはいつの世にも難しいものです。そもそも、オブジェクト指向って何というところからして微妙。私もそれを捉えきれていない一人であります。そこでオブジェクト指向設計編では、オブジェクト指向に則った設計手法についてまとめてきます。また、沢山の例題を示す予定でいます。多くのケーススタディを練習することで、再利用性と独立性の高いクラス設計や柔軟性のあるシステム設計ができるようになるはずです。…は、はずです(^-^;

  • OpenGL技術編

    ホーム < ゲームつくろー! OpenGL技術編 OpenGLはプラットフォーム依存性の低い3D描画ライブラリです。DirectXとはまた方向性の異なるライブラリスタイルですが、ゲームはもちろん科学研究でも沢山使用されています。マルペケはDirectXが主軸ですが、ど~してもOpenGLをやらなければならない時期に(私が(^-^;)なってきました。OpenGLについては私はド素人で御座いますが、DirectXと考え方の互換性が高いライブラリでるため、比較しながら学んで行けそうに思います。…なので、質問はしばらく無しの方向で(^-^;

  • クラス構築編

    ホーム < ゲームつくろー! < クラス構築編 クラス構築編 ここでは、何かと役に立つクラス、及びクラスライブラリを構築する方法などをご紹介します。知っているとお得な情報が散りばめられていますので、文量に負けずにご覧頂きたく思います(^-^;

  • constのあれこれ

    ホーム < ゲームつくろー! < C++踏み込み編 < constのあれこれ その2 constのあれこれ ① 一般変数に対する振る舞い 「const」は「キーワード」という部類の1つだそうで、変数のアクセスに対して付加的な機能を提供してくれます。基的な使い方は次のようです。

  • その7 メモリリークの検出方法

    ホーム < ゲームつくろー! < Programming TIPs編 < メモリリークの検出方法 その7 メモリリークの検出方法 C言語で泣かされるのがメモリリークです。メモリリークはnew演算子などでヒープメモリを動的確保した後にdelete演算子などでそれを解放し忘れた時に発生します。プログラムが込み入ってきたり、複雑にヒープメモリを確保した場合など、うっかりdeleteし忘れる事があります。これはプログラムが複雑になってくるほど探すのが困難になります。 Visual C++にはデバッグ時にメモリリークを自動検出する機能が備わっています。この章ではその方法を紹介します。 ① メモリリーク検出方法 Visual C++のランタイムライブラリには「デバッグルーチン」と呼ばれるデバッグ専用の関数が沢山用意されています。その中でメモリリークを検出してくれるのは_CrtSetDbgFlag関数で

  • ここまでできる超極短DirectX基盤プログラム

    ホーム < ゲームつくろー! < Programming TIPs編 < ここまでできる超極短DirectX基盤プログラム ここまでできる超極短DirectX基盤プログラム DirectXに手を出し始めた頃、まずDirectXを体験できる状態までプログラムを作るのに一苦労しました。C言語やりたての時には1行でHello Worldを出せたんですが、DirectXはまずウィンドウプログラムを自作できないとだめでして、Hello Worldを出すというのは結構レベルの高い作業だったりしました。そこまで気楽にとはいかないまでも、とにかくDirectXにすぐに触れられる環境があると何かとありがたいものです。テストプログラムを作って効果をテストするのにも役に立ちます。そこで、手っ取り早くDirectXをテストできるように、メイン関数だけですべてを終えられる極短のDirectX基盤プログラムを作成して

  • WinMain関数からメインウィンドウハンドルを手に入れるまでのおさらい

    cbSizeはこの構造体の大きさです。 styleはウィンドウの基性質を設定します。例えばCS_HREDRAWを設定すると、ウィンドウの幅を変えたりした時にウィンドウ全体を再描画するようにします。CS_DBLCLKSを設定するとダブルクリックに対するメッセージを出力するようになります。他にも色々ありますが、基的にはCS_HREDRAW | CS_VREDRAWを設定します。 lpfnWndProcはメッセージを受け取るWndProc関数へのポインタを渡します。WndProc関数は、ウィンドウに1つ存在するグローバルなコールバック関数で、メッセージキューから送出されたメッセージの唯一の受け口です。わかりやすい機構なのですが、この関数がグローバルであるおかげで面倒になっているのです。 cbClsExtraに0以上の値を入れると、登録時に渡されるWNDCLASSEX構造体の後ろにメモリが動的

  • ここまでできる超極短Windows基盤プログラム

    <戻る ここまでできる超極短Windows基盤プログラム MS-DOSからWindowsにプログラムが移行した時、その余りの変わりように、当時ど素人であった私などは愕然としました。たかがウィンドウを表示するだけなのに、なんでこんな面倒なんだと思ったものです。でも実は、全然面倒ではなかったんです。ごちゃごちゃと色々書かれている余分な部分、またオブジェクト化によるプログラムの分断化で、その流れが見えていないだけでした。 では、ウィンドウを表示させるだけの目的でプログラムを書くと、その面倒はどれほど短くなるのか?この章ではその限界を極めてみます。 ① ソース公開 手っ取り早く出来上がりソースを見ていただきます。考え抜いた結果次のようになりました。尚、プラットフォームはVisual Studio 2005のウィンドウズアプリケーションです。 // 極短Windows基盤プログラム #include

  • その2 Luaスクリプト事始め

    ホーム < ゲームつくろー! < Lua組み込み編 その2 Luaスクリプト事始め Luaが出たての頃、とにかく情報が少なくてどうして良いやらさっぱりわからなかった時がありました。しかし昨今ではネット上に非常に沢山のLuaの情報が置かれるようになりました。なので、いわゆるLuaなプログラム(if文とかループ文とか)についてはそういうサイトを参考にして頂ければと思います。その気になれば基文法は2時間もあれば終わります。 Lua組み込み編で注目したいのは、LuaのC言語とのやりとりの部分です。ここが出来て初めてゲームプログラムとの連携が取れるようになります。とは言え、何にも知らない状態からだと大変なのも確かなので、この章では簡単なプログラムを色々と作ってLuaに慣れて見ることにしましょう。 ① lua_Stateがすべての始まり Luaはテキストでプログラムを作成します。テキストはそのままで

  • Lua組み込み編

    ホーム < ゲームつくろー! < Lua組み込み編 Lua組み込み編 昨今のゲーム製作では「スクリプト」がすっかりお馴染みとなりました。スクリプト導入の理由は単純で、プログラムを再コンパイルする事無しにゲームを組み立てたりバランスを調整したいからです。新しいステージやキャラクタを、既存のプログラムを一切変更せずに追加できれば、それはもうとてつもない自由度とスピードを持った製作環境を得たことになります。また、ゲームを配布した後の有力なコンテンツ追加方法を得た事にもなります。昨今の超ボリュームなゲームが短期間で作れるようになったのは、スクリプトの力が認められて多くのゲーム制作に採用されたためでもあります。 スクリプトは自作ももちろん出来ますが、昨今はいわゆる「スクリプト言語」と言う専門の言語も多数登場しています。その中でC言語とのやり取りが簡単で高速に動くLuaは、ゲーム用スクリプトとして非常

  • DirectX10技術編

    ホーム < ゲームつくろー! < DirectX10技術編 DirectX10技術編 DirectX9から大幅に仕様とアーキテクチャが変更拡張されたDirectX10。魅力たっぷりですが、知らなくてはならない事もまたたっぷり。焦らずゆったりスタートです。

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

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

  • その1 Doxygenの導入

    ホーム < ゲームつくろー! < Doxygen編 その1 Doxygenの導入 では、さっそくDoxygenを導入してみましょう。導入自体はとても簡単です。 ① ダウンロードと導入 Doxygenは以下のオフィシャルサイトにあります: Doxygen (http://www.stack.nl/~dimitri/doxygen/index.html) Doxygen:Download (http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc) サイトから最新のDoxygenをダウンロードしますが、今回はソースファイルは必要ないので「A binary distribution for Windows 95/98/ME/NT/2000/XP/Vista」を選択して下さい。 ダウンロードした実行ファイル(例:doxygen-1.5