- 編集:2013/2
内容
立方体のオブジェクトをキーボード操作で自由に動かすまで。
Sensor、Controller、Actuatorの使い方.Python Scriptの書き方.Propertyの設定.・・・
※スクリプトのソースコードが小さく、見難くなっています。ファイルをダウンロードするなど
して対応してください。Capter2以降は改善します。
間違い・補足
再生時間 | 内容 |
---|---|
6:00 | 多くのコメントにもあるように「Lock Rotation」にチェックが入っているため 挙動が変です。 |
11:26 |
「Blenderゲームエンジンとは言えどプログラミングは必要」といってますが、
現実的にちゃんとしたゲームを作ろうとしたときにプログラミングは必須だろう
という一個人の意見です。 コメントにもあるように、ある程度は(少なくとも今回のシリーズの内容程度なら) プログラミング無しでも制作することが可能です。 |
12:15 |
「プログラミングで何から書いていくかというと、2つのことから始める」と言って
いますが、2つとは、 ・モジュールのインポート(import bge) ・コントローラの取得(bge.logic.getCurrentController()) のことです。注意事項をはさむので分かりににくくなってますね。。。 |
13:34 | 「getCurrentController()で取得するのは、ロジックで設定したコントローラのこと」 といった趣旨のことを言おうとしています。 |
15:30 | プロンプト画面を出していますが、ver2.7からプロンプト画面はデフォルトで表示されなく なりました。トップメニュの[Help]=>[Toggle System Console]で表示できます。 |
23:46 | 「別にYo!なんて言ってほしくなくて、さっきと同じことをします」と言っていますが、 さっきと同じこととは、アクチュエータで動かした時の挙動と同じことをさせます っと言う意味です。 |
19:35 |
スクリプトでCubeを動かした時の挙動が、アクチュエータで動かした時の挙動と異なる
ことについての補足ですが、デフォルトのセンサーの状態だと、センサーがコントローラ
を呼び出すタイミングは、センサーが有効になった直後1回と、無効になった直後1回
(今回の場合だと、キーボードを押した直後と、離した直後)です。 アクチュエータで動かした場合は、有効になった直後の1回で、アクチュエータがONの 状態になるので、その間ずっと動き続けます。そして、無効になった直後の1回で、 アクチュエータがOFFの状態になるので、止まります。 一方、スクリプトでは、有効になった直後の1回でしか、Cubeに動けという命令を 出せませんので、押した1回しか動きません。 設定(pulse modeをActive TRUEに)することでで、センサーが有効なときにコントローラを 呼び出し続けられるので、押しっぱなしでCubeが動くようになります。 アクチュエータで動かす場合は、センサーが有効状態のときに、何度もコントローラを 呼び出し続けるのは処理の無駄なので、こういった設定があるわけです。 |
23:00 | Y軸と言ってますが、Z軸です。頭の中ではZ軸と言っているつもりですorz |
25:55 |
Cubeにジャンプをさせようとしたら、吹っ飛んだときの説明の訂正です。 「スクリプトが働く時間は、センサーが有効になってる時間」などと言っていますが、 間違いです。 スクリプトが働くタイミングは、センサーがコントローラを呼び出したときに働き、 「センサーが押しっぱなしで有効になるように設定しましたが」というのは、正しくは ”センサーが有効のときは、ずっとコントローラを呼び出すように設定した”です。 この説明の間の「有効」を「呼び出し」に言い換えると、正しい説明になるかと。 |
29:25 |
プロパティをさらっと追加しましたが、プロパティはかなり重要な要素の機能です。 ここでは、センサーの確認程度に使いましたが、色々な場面で使うかと思います。 |
この他、分からないところがあれば、気軽にご連絡ください。
気になったコメント
- [10:16] プログラム無でもある程度制御可能ってことかな
- そうです。ただ、ちゃんとゲームを作ろうと思ったらプログラミング出来ないと つらいかなっと思ったので、はじめからスクリプト前提の構成にしました。
- [13:05] 習うより慣れろってことですね
- Year!
- [15:28] BASIC世代には難しいぜ!
-
BASIC出来るなら、Pythonも余裕で出来るぜ!
Pythonは元々教育向け言語として作られ、学習コストの低さが売りの言語だぜ! - [21:53] でも、英単語は読めないうp主であった
- ぐぬぬ。。。
- [23:51] d3dxでここまで書くのに1日かかったんだぜ? ハハッ
-
難しいと感じる方も多くいらっしゃいますが、このBlenderGameEngine、
他の開発環境に比べ、かなり簡単に、色々なことができる方だと思います。
何よりPythonで書けて、書いたすぐに実行して確かめられる、というのが すごく大きいです。 - [24:07] 遠心力で傾いてるな
-
これは遠心力で傾いているわけではなく、投射の関係でそう見えます。
普段は平行投影(Orthographic)で編集してますが、この時は透視投影(Perspective)に
なってますね^^;
オブジェクトタイプがDynamicの場合は、モーメントは計算されませんので、傾くといった動作は しません。さらに、今回の場合では、オブジェクトの位置を変更しているだけで、速度を 加えたりしていないので、慣性は働いていません。 - [26:38] 正の直後に負の信号を出す、そのまんまの意味だと思う
[26:47] 一瞬だけ一触りするだけの反応って事か?Tapって -
こういう追加情報を入れるコメントはありがたいですね。
その他の訂正コメントも感謝してます。 - [32:42] 来週のサザエさんは?
- じゃんけんポン!ぐふふふふ・・。
ファイル
下記(SkyDrive)からCapter1終了後のファイルをダウンロードできます
他サイトでの解説
・View オブジェクトを動かす
http://blendergame.blog39.fc2.com/blog-entry-50.html