Blenderで3Dゲーム作ろうぜ
- 1 :名前は開発中のものです。:2007/04/06(金) 15:06:31 ID:sxRNfl4U.net
- ないようなので立てました。
おまえらオープンソースの3Dソフト「Blender」のゲームエンジンで遊びませんか。
マルチテクスチャからGLSL、Bulletライブラリによる物理演算、けっこう何でもできますよ。
作ったゲームはBlender同梱のPlayerでWin/Mac/Linux対応品として配付できまっせ。
.exe/.appも吐けます。
スクリプト言語はPython。マイナー気味ではありますが、何気に小粋な言語ですよ。
関連スレとかは2以降で。
- 261 :名前は開発中のものです。:2009/11/22(日) 01:27:28 ID:jnZKivr0.net
- >>259
BGEのAPIはここ
http://www.blender.org/documentation/249PythonDoc/GE/index.html
オブジェクト.worldPosition で list[X,Y,Z]
オブジェクト.worldOrientation で 3x3 Matrix [[float]]で返ってくると思う
X座標がほしい場合は
position = オブジェクト.worldPosition
position[0]で取得できるはず
>>260
boneを物理エンジンで揺らすことは現状できないっぽいです
2.5ではできるとかできないとか・・・
- 262 :名前は開発中のものです。:2009/11/22(日) 08:43:03 ID:+Nczfygx.net
- >>261
>>>260
>boneを物理エンジンで揺らすことは現状できないっぽいです
>2.5ではできるとかできないとか・・・
>
>
ええ!!2.5ではできる予定なのか!?
こりゃたのしみだ(^^)
- 263 :名前は開発中のものです。:2009/11/22(日) 20:51:05 ID:WOE6gsr5.net
- >>261
ありがとうございます
- 264 :名前は開発中のものです。:2009/11/22(日) 21:28:49 ID:WOE6gsr5.net
- 263ですが、
もう少し例を書いていただけますか?
未だにpythonの使い方がよくわかりませんw
APIも読んだのですが、いまいち・・・
- 265 :名前は開発中のものです。:2009/11/22(日) 22:17:17 ID:w7CQFRV/.net
- >>264
俺は >>261 じゃないけど、
>オブジェクト.worldPosition で list[X,Y,Z]
>オブジェクト.worldOrientation で 3x3 Matrix [[float]]で返ってくると思う
これが元質問に対する例というか答えそのものだと思う。 と言うか、
>未だにpythonの使い方がよくわかりませんw
>APIも読んだのですが、いまいち・・・
そういう種類の話となると、最早スレチかもしれない。Python 自体は別にBlenderとなんの関係もない
純粋にプログラミングの為の言語なので、「使い方」 じゃなくて、コーディングそのものを勉強
(と言ってもそんなに大変じゃないが) しないと、多分入門者がわかるような説明も例も解説も出来ないかも
詳細に書いたら、丸々スレチなまま、結構なレス数を消費してしまうぜ?
- 266 :名前は開発中のものです。:2009/11/23(月) 02:15:33 ID:BqKVlTVX.net
- とりあえずBGE用に書かれたスクリプトを読んで参考にするのが近道かも。
Cとかの基礎をなぞったことがないと難しいとは思うけど・・・
- 267 :名前は開発中のものです。:2009/11/23(月) 14:49:07 ID:534aitT5.net
- >>265 >>266
他人にたより過ぎるのはよくないので、
勉強してみます。
いろいろとありがとうございました。
- 268 :265:2009/11/23(月) 18:04:42 ID:72hHgzdF.net
- >>267 あんまり突き放すのもアレだから、簡単にだけ書いとく。
入門サイト読む前の、基本的なポイントだけな。 ただし Python 限定。 目的が Blender/Python だろうからそれでいいよね?
さらに箇条書きで、ノイズカットして要点だけに絞る。 詳細はググるなりして追いかけて調べてくれ
1.ソース中にある # で始まる行はコメントと呼ばれる。 Pythonエンジンは # で始まる行の右以降を全て無視する
2.ただし Blender/Python の Script 中、冒頭の数行のコメントは特別扱いされている。
… これは 「Python さんには関係ないけど、僕(Blender)には用がある」 ということで、コメントの機能を利用しているってこと
例)
#!BPY ← Blender/Python のお約束
# coding: utf-8 ← 「この *.py ソースは日本語を含む多国語で書かれてます」 という文字コードの指定。省略した場合、多分 iso-8859-1 (ラテン英数文字) として認識される
#""" ← 続く文字列の開始。下の ※ まで
#Name: 'This is my test' ← Python には関係無いが、Blenderが読み取る要素その1 「このスクリプトの表記名」
#Blender: 249 ← その2 「対象Blenderのバージョン名」
#Group: 'Object' ← その3 「Blender内での機能区分」 BlenderUI上で、どこの scripts に登場させるか
#ToolTip: 'Test Script' ← その4 見たまんまツールチップへの表示文字列
#Version: v0.1 ← その5 この自作スクリプトのバージョン名
#Author: foobar ← その6 この自作スクリプトの作者名。 例は俺
#""" ← ※ 文字列の終了。ここまで
import re ← ここから Python の世界。 Pythonが持っているライブラリ、あるいは自作のライブラリなどを輸入する
import os
import math
from Blender import * ← この1行も import。 意味は 「Blenderという名前のライブラリの中から、* = 全部 を輸入する」
:
- 269 :265:2009/11/23(月) 18:12:37 ID:72hHgzdF.net
- 3.変数の考え方として、C言語系(C、C++、Java、C# などなど)の場合、大抵そこには 型が必要。
例) int abc; // abc という名前を付けたこの変数は int 型(整数型)です。
しかしPython の場合は、意識的にこれを記述する必要が無い。(abc に整数が放り込まれたら、abc は以降整数を持っている人として振舞う、みたいな)
なので、「知らない内に想定外の内容が放り込まれたりしないように」 注意すること
4.Pythonのプログラムはとても独特。 特に目立つ部分としては、「インデントの数で、処理の塊を表現してる」 って部分。
例)
for ob in object_list:
if ob.getType() == "Mesh":
print "メッシュきたこれww"
上の例は、「for で繰り返す処理、の中に if で判断する処理があり、if の結果が "その通り!" ならば、print を実行している、って事。
C系言語の場合、{ } で囲んで現すが、Python はこれをインデントで現す
- 270 :265:2009/11/23(月) 18:17:09 ID:72hHgzdF.net
- 5.さりげなく4で登場した、for や if や プログラムの動きを制御する為の制御構文。 繰り返したり、条件判断したりする。
他、print とか書いたのは、Python が内部で持ってる組み込み関数。 他にも Python自体が判断している予約語などもある。
それら以外の import されて始めて使えるものは、ざっくりと ライブラリとか呼んだりする。 ちょうど、図書館から必要なものを借りてくるようなイメージだ
6.処理の単位には、単純に上から下へと流れて実行される本線と、他に 「何かを受け取って、何かして、何かを返す」 処理を一塊にした 『関数』 と言う単位のほか、
その関数をまとめた クラス という単位もある。 詳細は切りが無いのでググって
とりあえず俺の長文鬱陶しいので、この辺で。スレチスマソ
192 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★