Jan 24, 2010

How It Started

A Technique for Producing Ideas (アイデアのつくり方) のメモ。
日本語版の「この考察をはじめたいきさつ」。とある質問に答えられなかったのがきっかけだったそうで。
以下は単語のメモ:
  • dandy

    • 極上の、最高級の、飛び切り素晴らしい
  • rueful

    • 痛ましい、悲しそうな、後悔している
  • flattered

    • 《be ~》うれしく思う
    • flatter

      • vi.お世辞を言う, vt.ご機嫌を取る、こびを売る、取り入ろうとする、お世辞を言う
  • hearty

    • 心のこもった;元気な;豊富な、たっぷりの
  • fit

    • (感情・行動などの)一時的激発、ひきつけ、発作
    • fit of rage

      • 発作的激怒
  • on and off

    • 断続的に、間欠的に

Prefatory Note

A Technique for Producing Ideas (アイデアのつくり方) のメモ。
日本語版の「まえがき」です。この文書が書かれて今年で半世紀なんですね。
最後の地名、カタカナだと謎ですが、 "Rancho de la Cañada, Peña Blanca, New Mexico" と書きます。
以下は単語のメモ:
  • prefatory
    • 序文の、前口上の
  • allege
    • (~が事実だと)主張する
  • alleged to be ~
    • (聞くところ)~だ[する]といわれている
  • recollection
    • 記憶(力)、回想
  • call attention to
    • ~に注意を促す、~に注意するよう呼び掛ける

Jan 10, 2010

Foreword William Bernbach

A Technique for Producing Ideas (アイデアのつくり方) のメモ。
日本語訳はこの節から始まっています。ウィリアム・バーンバック氏フォルクスワーゲン・ビートルの "Think Small." という広告を考案するなど、アメリカの広告業界で有名な方だそうです。
以下は単語のメモ:
  • convey
    • (意思・情報を)伝達する、伝える、告げる
  • practice

    • 実務、(医者・弁護士の)業務
  • craft

    • (特殊な)技術、手技
  • tribute

    • 賛辞
  • lucid

    • 明快な、正気の、透明な
  • be indebted to

    • ~の恩恵を受けている

Jan 6, 2010

Foreword Keith Reinhard

A Technique for Producing Ideas (アイデアのつくり方) を最後に読んでから間が開いたので読み直してます。

手元の原著には Keith Reinhard さんという広告業の偉い方が序文を寄せています。これは日本語版にはない節で、原著を新装したときに追加されたものではないかと。

以下は単語のメモ:
  • intimidate

    • 怖がらせる; 脅迫する、威圧する

  • lay down

    • 書き記す; 貯蔵する; 
    • …などなど、相当意味の広い句動詞です

  • illuminating

    • adj. 啓発する、啓もう的な、明らかにする

Dec 26, 2009

PhysicsEffects メモ


masafumi さん情報に感謝です。

入手とビルド
> svn co http://bullet.googlecode.com/svn/branches/PhysicsEffects .
Bullet本体も src/ 以下にダウンロードされます。PhysicsEffects は

  • PhysicsEffects/Physics
  • PhysicsEffects/Util

が本体。

ビルドスクリプトは cmake で生成。Visual Studio 2008 Express Edition を利用したいので:
> cmake -G "Visual Studio 9 2008"
> start PHYSICS_EFFECTS.sln
OpenGLのセットアップが済んでいるなら問題なくビルドは通るはず。

AppHelloWorld が利用方法を示す最低限のサンプルです。で、絵の出るデモはどこにあるんでしょう? AppBasicDemo は Bullet のデモですし。

PfxViewer

独自のシーンフォーマットを持っていて、そのビューアーがこれ。
Havok にもそんなアプリケーションがあったような。

includeパスが SCE_PS3_ROOT という環境変数を利用しているのであらかじめ定義しておきます。
内容は PhysicsEffects のルートでOK。このような感じで:
> set SCE_PS3_ROOT=d:/tmp/PhysicsEffects
> start Plugins/PfxViewer/PfxViewer.sln
ビルド時に app.rc の "afxres.h" が無い、と言われたら…

  * #include "afxres.h"
  ↓
  * // #include "afxres.h"
    #include <windows.h>
    #define IDC_STATIC -1

に書き換えることで切り抜けられます(Ref.: http://ameblo.jp/oregano-blog/day-20090720.html)。

シーンファイルのサンプルが PhysicsEffects/Plugins/Sample/*.txt に配置されています。
サンプルと同じ場所に置いてある *.mb は Maya のデータです。*.txtの元データなのでしょうが…エクスポーターは?

「File -> Open Pfx File」と進んで TestScene2.txt を読み込ませた結果がこちら:



」というアイコンのあたりに日本製の香りを感じます。

Dec 20, 2009

Qt 4.6 と qt4-qtruby の自前ビルド版 で遊んでいるところ。



  • OpenGLの描画後にQtの2D描画を重ねることができる(今回はQPainter::drawText)。
  • RubyからOpenGLを利用したい場合はこちら(ruby-opengl)を。
  • 数学関数はこちら(RMath)。
GLUTにできてQtにできないことは…あとはパッド入力くらいでしょうか。

Dec 13, 2009

Game Engine Architecture : 目次の翻訳

(2010-11-16 追記) 日本語訳が出版されます。こちらからどうぞ:

Jason Gregory, Game Engine Architecture (2009) の目次を訳したものです。
  • 目次 (Table of Contents)
  • はじめに (INTRODUCTION)
    • 1.1   ゲーム製作チームの典型的な構造 (Structure Of A Typical Game Team)
    • 1.2   ゲームとは? (What Is A Game?)
    • 1.3   ゲームエンジンとは? (What Is A Game Engine?)
    • 1.4   ジャンルの比較で見るエンジンの差 (Engine Differences Across Genres)
    • 1.5   ゲームエンジンについての調査 (Game Engine Survey)
    • 1.6   ランタイムシステムの構成 (Runtime Engine Architecture)
    • 1.7   ツールとアセットパイプライン (Tools And The Asset Pipeline)
  • 商売道具 (TOOLS OF THE TRADE)
    • 2.1   バージョン管理 (Version Control)
    • 2.2   Microsoft Visual Studio
    • 2.3   プロファイリングツール (Profiling Tools)
    • 2.4   メモリリークとメモリ破壊の検出 (Memory Leak And Corruption Detection)
    • 2.5   その他のツール (Other Tools)
  • ゲームのためのソフトウェア工学基礎 (FUNDAMENTALS OF SOFTWARE ENGINEERING FOR GAMES)
    • 3.1   C++の概要とベストプラクティス (C++ Review And Best Practices)
    • 3.2   C/C++におけるデータ、コード、メモリ (Data, Code And Memory In C/C++)
    • 3.3   エラーの補足と取り扱い (Catching And Handling Errors)
  • ゲームのための3D数学 (3D MATH FOR GAMES)
    • 4.1   3Dの問題を2Dで解く (Solving 3D Problems In 2D)
    • 4.2   点とベクトル (Points And Vectors)
    • 4.3   行列 (Matrices)
    • 4.4   クォータニオン (Quaternions)
    • 4.5   各種回転表現の比較 (Comparison Of Rotational Representations)
    • 4.6   その他の役立つ道具 (Other Useful Mathematical Objects)
    • 4.7   SIMDハードウェアによる数学演算 (Hardware-Accelerated SIMD Math)
    • 4.8   乱数の生成 (Random Number Generation)
  • 基礎システム (ENGINE SUPPORT SYSTEMS)
    • 5.1   サブシステムの起動と終了 (Subsystem Start-Up And Shut-Down)
    • 5.2   メモリ管理 (Memory Management)
    • 5.3   コンテナー (Containers)
    • 5.4   文字列 (Strings)
    • 5.5   エンジンの設定 (Engine Configuration)
  • リソースとファイルシステム (RESOURCES AND THE FILE SYSTEM)
    • 6.1   ファイルシステム (File System)
    • 6.2   リソースマネージャー (The Resource Manager)
  • ゲームループとリアルタイムシミュレーション (THE GAME LOOP AND REAL-TIME SIMULATION)
    • 7.1   描画ループ (The Rendering Loop)
    • 7.2   ゲームループ (The Game Loop)
    • 7.3   ループ構造のスタイル (Game Loop Architectural Styles)
    • 7.4   時間軸の抽象化 (Abstract Time Lines)
    • 7.5   時間の計測と取り扱い (Measuring And Dealing With Time)
    • 7.6   マルチプロセッサ環境でのゲームループ (Multiprocessor Game Loops)
    • 7.7   多人数参加型ネットワークゲームのループ (Networked Multiplayer Game Loops)
  • ヒューマンインターフェースデバイス (HUMAN INTERFACE DEVICES (HID))
    • 8.1   ヒューマンインターフェースデバイスの種類 (Types Of Human Interface Devices)
    • 8.2   HIDとのインタラクション (Interfacing With A HID)
    • 8.3   入力の種類 (Types Of Inputs)
    • 8.4   出力の種類 (Types Of Outputs)
    • 8.5   ゲームエンジンのHIDシステム (Game Engine HID Systems)
    • 8.6   HIDの実際 (Human Interface Devices In Practice)
  • デバッグと開発のための道具 (TOOLS FOR DEBUGGING AND DEVELOPMENT)
    • 9.1   ロギングと追跡 (Logging And Tracing)
    • 9.2   デバッグ描画機能 (Debug Drawing Facilities)
    • 9.3   ゲーム内メニュー (In-Game Menus)
    • 9.4   ゲーム内コンソール (In-Game Console)
    • 9.5   デバッグ用カメラ、ゲームのポーズ (Debug Cameras And Pausing The Game)
    • 9.6   チート (Cheats)
    • 9.7   スクリーンショットとムービーの取得 (Screen Shots And Movie Capture)
    • 9.8   ゲーム内プロファイリング機能 (In-Game Profiling)
    • 9.9   ゲームに組み込みのメモリ利用統計とリーク検出機能 (In-Game Memory Stats And Leak Detection)
  • 描画エンジン (THE RENDERING ENGINE)
    • 10.1   3D描画の基礎 : 深度バッファを利用した三角形のラスタライズ (Foundations Of Depth-Buffered Triangle Rasterization)
    • 10.2   描画のパイプライン (The Rendering Pipeline)
    • 10.3   高度なライティング処理とグローバルイルミネーション (Advanced Lighting And Global Illumination)
    • 10.4   各種視覚効果とオーバーレイ (Visual Effects And Overlays)
  • アニメーションシステム (ANIMATION SYSTEMS)
    • 11.1   キャラクターアニメーションの種類 (Types Of Character Animation)
    • 11.2   スケルトン (Skeletons)
    • 11.3   ポーズ (Poses)
    • 11.4   クリップ (Clips)
    • 11.5   スキニングとその行列パレットの生成 (Skinning And Matrix Palette Generation)
    • 11.6   アニメーションのブレンド処理 (Animation Blending)
    • 11.7   ポストプロセス (Post-Processing)
    • 11.8   圧縮のテクニック (Compression Techniques)
    • 11.9   アニメーションシステムの構造 (Animation System Architecture)
    • 11.10   アニメーションのパイプライン (The Animation Pipeline)
    • 11.11   行動の状態遷移機械 (Action State Machines)
    • 11.12   アニメーションコントローラー (Animation Controllers)
  • 衝突と剛体の動力学 (COLLISION AND RIGID BODY DYNAMICS)
    • 12.1   物理は必要? (Do You Want Physics In Your Game?)
    • 12.2   衝突処理/物理演算のためのミドルウェア (Collision/Physics Middleware)
    • 12.3   衝突検出システム (The Collision Detection System)
    • 12.4   剛体の動力学 (Rigid Body Dynamics)
    • 12.5   物理エンジンをゲームに組み込む (Integrating A Physics Engine Into Your Game)
    • 12.6   さらに先へ : 高度な物理演算処理 (A Look Ahead: Advanced Physics Features)
  • ゲーム本編のシステムとは (INTRODUCTION TO GAMEPLAY SYSTEMS)
    • 13.1   ゲーム内ワールドの解剖 (Anatomy Of A Game World)
    • 13.2   動的な要素の実装 : ゲームオブジェクト (Implementing Dynamic Elements: Game Objects)
    • 13.3   データ駆動型ゲームエンジン (Data-Driven Game Engines)
    • 13.4   ゲームワールドエディター (The Game World Editor)
  • ゲーム本編を支える基本システム (RUNTIME GAMEPLAY FOUNDATION SYSTEMS)
    • 14.1   基本システムの要素 (Components Of The Gameplay Foundation System)
    • 14.2   実行時オブジェクトモデルの構造 (Runtime Object Model Architectures)
    • 14.3   区画データのフォーマット (World Chunk Data Formats)
    • 14.4   ゲームワールドのロードとストリーミング (Loading And Streaming Game Worlds)
    • 14.5   オブジェクトの参照方法と検索方法 (Object References And World Queries)
    • 14.6   ゲーム内オブジェクトのリアルタイム更新 (Updating Game Objects In Real Time)
    • 14.7   イベントとメッセージ通信 (Events And Message-Passing)
    • 14.8   スクリプトによる記述 (Scripting)
    • 14.9   高レベルなゲーム内状態遷移 (High-Level Game Flow)
  • 「まだまだあるだろ」って? (YOU MEAN THERE’S MORE?)
    • 15.1   本書で触れなかったシステム (Some Engine Systems We Didn’t Cover)
    • 15.2   ゲーム本編のシステム (Gameplay Systems)
  • 索引 (INDEX)
  • 参考文献 (REFERENCES)