2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

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
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★