murakoshiA218のBlog

Blenderと3DCGの話題で暇をつぶすBlog

v2.25用 公式Demoをウォークスルーアプリに改造する方法

を見つけた。

情報元:
 Blender Part8
 http://pc8.2ch.net/test/read.cgi/cg/1110984457/514


514 名前:513[sage] 投稿日:2005/04/25(月) 21:08:42 ID:wsx2WIG+
> 風景の中ドライブできるようなGameBlenderのサンプル探して
> データ突っ込むとか。 (どっちもやったこと無いけど)
やってみた。

ここのGameBlenderのサンプルをDL。(11MBくらい)
ttp://download.blender.org/demo/test/225_game_demos.zip

これを解凍して、skategirl.blendを開く。
床のオブジェクト"floor"を削除。
[Shift F1]で取り込みたいオブジェクトをインポート。
(対象ファイル→Scene(種類)→シーン名(デフォルトはScene))
床に当たるオブジェクトが女の子より下にくるように移動。
[P]で実行、A,S,Dキーで移動操作。


515 名前:513[sage] 投稿日:2005/04/25(月) 21:12:38 ID:wsx2WIG+
訂正スマソ。

「床に当たるオブジェクトが女の子より下にくるように移動。」
の前に手順追加。

「オリジナルのシーンを開いて、地面に使いたいオブジェクトを選択し、
 MakeLinks[Ctrl L]→Scene→"after"を選択。
 その後シーン"after"に戻る」 ことが必要だった。


ってこの投稿オレが書いたんだった・・・完全に忘れてた。

Blender.jpに最近投稿されてる「Blender.jp美術館」も、この中のファイル "walkthrough_demo.blend" が元になっている気がする。
skategirlはスケボですべる感じ。walkthrough_demoはゆっくり歩く感じ。

余談だけど、skategirlは今まで見たGame Engineプログラムの中で一番複雑。
スケボ(エアボード)が動くと女の子が腰ひねったりカメラが追随したりする。その動きは、Logic BrickとPythonスクリプトとIPOを非常に複雑に(3段以上・・・へたすりゃ6段位?)重ねて実現してる。超絶技巧。
Girl.RootのLogic Brick見て、心の中でウオォー!と思った。(リンク先が30位有る)
スポンサーサイト
  1. 2006/03/28(火) 00:48:35|
  2. Blender::Game Engine
  3. | トラックバック:0
  4. | コメント:0

GLSLシェーダ試行錯誤

 GLSL入門見ながら一から書いたGLSLシェーダを自作オブジェクトに対して割り当て、Blenderで動作確認している。
トラブル起きまくり・・・基本的に知識不足、経験不足が原因なんだけど。
Phongシェーダはなんとか動いたけれど、まだ光源の向きが怪しい。
テクスチャを適用できるようになるのはいつの日だろうか・・・

GLSLシェーダ/OpenGLの問題
 座標変換用のビルトインMatrixがいろいろ有ってどれを使ってよいのかわからない。 つまり各種処理で変換前座標系、○○用変換済み座標系、○○用変換×透視変換済み座標系、の3種類有ってどれを使えばいいのかが判らない。
 さらにそれぞれビルトインの変換行列があるけれど、それぞれ数種類有るのでさらによくわからない。
(「○○用」には、モデル用、法線用、光源用、テクスチャ用などが有る。)

GLSL設定用スクリプトの問題
 それでなんとか設定した後実行してみると訳がわからないエラーが出る。文字列にそんなattributeは無いとか、オブジェクトがNoneであるとか。
 Shader設定しているPythonスクリプトは、まず公式サイトにあるマニュアルから持ってきたけど、このテンプレートShaderTemplate.pyが何箇所か間違っている。

(間違っているのはマニュアルの方で、リリースログのスクリプトは修正されているようだ。 しかしリリースログはインデントが崩れていてそのままでは使えない・・・)

シェーダ移植の問題
それで他所から拾ったスクリプトに差し替えるとなぜか動く!?
けど、その場合Uniform変数の設定が違うので、そのままでは動かない。 その辺を修正しているとまた動かなくなる。

あと、Uniform変数・Sampler2D()に渡すテクスチャ名がよくわからない・・・名前は自由でいいんだけど、そのテクスチャ名と実際の画像ファイルを対応付ける方法がソフト毎に違う。(当然だけど)
シェーダだけでも動作確認しようとShader Designerに持っていくと、テクスチャの再割り当てがかなり面倒。

Shaderプログラムは外部ソフトで開発するべき。 ただし、Blenderの要件にあった形に事前に直しておく必要がある。(Shaderの外(C言語プログラムなど)で処理してShaderに渡す事はしない≒attribute変数は使わず、Pythonの%演算子による文字列整形代入に置き換える。テクスチャは3つまで。変なマッピングを使わない、など)

それからShader開発には、OpenGL 2.0より前のOpenGLの知識がいるようだ。 GLSLの公式ドキュメント見ると、ビルトイン変数については、以前のSpecificationの○○ページを参照せよ、みたいなことしか書いていない。



Game EngineといいGLSLといい、どちらも{一般的な3DCG・プログラム開発・(Game Engine以外の)Blenderの流儀}が通用しない。なかなか大変だ・・・
  1. 2006/03/28(火) 00:27:40|
  2. Blender::Game Engine
  3. | トラックバック:0
  4. | コメント:0

Game Engine関連資料

公式サイトのドキュメント
"Game Logic Python API for Blender 2.34"がある。
ちなみにCVSから生成するとver.2.36対応。APIが2,3個拡張されているみたいだ。この変更についてはBlender.jpのリリースログに日本語解説が有ったと思う。

"Ketsji" - 2003-01-09 @Radium Software Development
【日本語】Game Engineの概要とアーキテクチャについて


以下は上記の記事より。

"Ketsji game engine intro"
設計者によるアーキテクチャ解説。

"A GUI for designing interactivity in game creation" (PDF)
Blender Conference 2002" のページにアップロードされていた設計者の卒論?
概要としてRadium Software Developmentでのコメントを引用。
これは,オランダはデルフト工科大学の Jonathan van Wunnik 氏が,卒業研究のレポートとして作成したものらしい。研究の要旨は,題名が表しているように,インタラクティブなゲーム制作環境の可能性について調査するというものだ。
昨今のゲーム制作方式についての分析を交えつつ, Blender のゲームエンジンに対する評価や改善案などを提示している。


  1. 2006/03/27(月) 23:51:55|
  2. Blender::Game Engine
  3. | トラックバック:0
  4. | コメント:0

Game Engine初心者向けリンク?

Game Engine初めてなので色々なお約束がわからない・・・
という訳でいろいろ調べた。

Game EngineとGLSLの関連リンク。

GLSL サンプルファイル集。
http://www.continuousphysics.com/ftp/pub/test/index.php?dir=blender/&file=blender-241-demos.zip
Blender 2.41のGame Engine新機能 用。
ほとんどのサンプルがのGLSLシェーダを呼び出している。 Displacement Mappingのサンプルもあり!

Game Blender Note @「旧名Yamyam's field
yamyamさんのGame Engine解説。
動作確認したバージョンがかなり古い(Ver.2.23用)し、内容はほとんどリファレンスだけれど、ざっとながめて感じが判った。役に立った。

Game Engineの新しい公式マニュアル?
GameEngine, GLSL Shader Document.
http://download.blender.org/documentation/GE/Blender.htm
かなりわかりにくい。 Emptyにスクリプトを割り当てろと書いてあるのにその手順がないとか、Logicボタンウィンドウの話が抜けてるとか。
多分暫定版だと思う。


Logicウィンドウの使い方はyamyamさんの資料とサンプルでわかった。
公式マニュアル(3番目)に有るShaderTemplate.pyの誤字や、本文の説明漏れもだいたいわかった。
サンプルファイルは読めるようになった。改造もできるようになった。
(この辺はいずれまとめようと思う)


けど、自作オブジェクトにシェーダーを割り当てても動作しない・・・エラーは出ないのに。

という訳で、シェーダプログラム(GLSL)が悪いのか、それともPython/Blenderの設定が悪いのか、切り分けが必要。
とりあえず簡単なシェーダをShader Designerでチェック→Blenderに移植してみるつもり。
  1. 2006/03/25(土) 04:20:34|
  2. Blender::Game Engine
  3. | トラックバック:0
  4. | コメント:0

GLSLサポート (リンク集)

Blender 2.41からGame EngineがGLSLシェーダに対応。
なんかすごいことができるらしい・・・ので勉強中。

GLSLとは何か?(適当)

GLSL入門リンク

GLSL入門  @床井研究室.和歌山大学
http://marina.sys.wakayama-u.ac.jp/~tokoi/?date=20051006
GLSLで書いたシェーダを段階的に拡張していく講座。
GLSL全般に言えるけれど、次の知識が前提。
- 3DCGの基礎・ベクトル幾何学(ベクトルの内積/外積、接線、法線 程度)
- OpenGLがどんなものか
 (自分は2D三角形描画の入門記事を読んだ程度だけどセーフ) 
最初の3回分くらい(Bumpマップより前)を読めばGLSLの基本はわかる。

GLSL関連フリーウェア
シェーダ開発ツールを使うとこんなことができる。
  • GLSLシェーダのサンプル(ソースプログラム)を入手
  • テキストエディタでシェーダ言語の構文を色分け表示
  • シェーダ コンパイルエラーからソースプログラムにジャンプ
  • Uniform変数のスライダ入力
  • Uniformテクスチャの管理
  • 以上のパッケージ化
  • プレビュー表示
機能的には、Shader DesignerがあればRenderMonkeyはいらないと思う。
ただしRenderMonkeyはサンプルの数が多い、DirectXにも対応している。
それからどちらもサンプルの2次利用ライセンスについては未確認。

Shader Designer
http://www.typhoonlabs.com/index.php?action=developer.htm
GLSL用のシェーダ開発ツール。

RenderMonky 1.5  @3DLabs
http://developer.3dlabs.com/openGL2/rendermonkey/
3D開発者向けツール?
  1. 2006/03/25(土) 02:42:26|
  2. Blender::Game Engine
  3. | トラックバック:0
  4. | コメント:0

プロフィール

murakoshiA218

Author:murakoshiA218

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

counter