• 編集: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


このページの満足度:
評価しない  星1  星2  星3  星4  星5
ご意見・ご感想・ご要望・ご相談、等々あれば、ぜひ!
ページトップへ

TibLab MENU

Copyright (C) TibLab All Rights Reserved.