スクリプトを実行しながらの操作

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

投稿ツリー



前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/9/30 14:56
leo  新米 居住地: 東京  投稿数: 9
初歩的な質問で申し訳ありません。

スクリプトを実行しつつ、3DViewウィンドウで、もしくはゲームモードで操作(キーイベントの受付等)
することはできないのでしょうか。

スクリプトがループになっているため現状ではオブジェクトの操作どころか、
一切の操作を受け付けてくれません。(scriptingウィンドウから実行している)
sys.sleepメソッドを入れてみたりもしましたが、関係ないようです;

ゲームモードでスクリプトを回し続けながら操作を受け付けられると一番いいのですが、
情報も少なく困っています。よろしくお願いいたします。

WindowsXP SP3
Blender2.49
Python2.6.2
投票数:3 平均点:3.33
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/10/1 8:53
yamyam  管理人 居住地: そうや、うちはおおさかやー  投稿数: 4405
ゲームモード前提なら、スクリプト呼び出し用のオブジェクトを一つ用意し(Camera でも構わないと思いますが)、毎回 Python Controller で呼び出せばいいと思うのですが。

変数はそのオブジェクトのプロパティを利用するか、以下のようにしてグローバル変数を作成、アクセスすることができます。
if not GameLogic.hogehoge:
    GameLogic.hogehoge = 12345

その他APIに関してはこの辺をご覧下さい。

投票数:3 平均点:6.67
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/10/2 15:15
leo  新米 居住地: 東京  投稿数: 9
ゲームモードでのスクリプト実行はできました。
ありがとうございます。
しかし、できるにはできたのですが、
テキストエディタでループした場合には出てこなかった
「ちらつき(?)」がでるようになってしまいました。

プログラムでカメラの位置を変更して、カメラ視点で
何度も再描画させるのですが、プログラムの内容が同じでも
テキストエディタでループ(while文)させる分にはシームレスに再描画されるのですが、
ゲームモードでAlwaysに呼び出したときには最初に描画した画面らしきものと
最新の描画されるべき画面が交互に描画されてしまうようです。

ゲームエンジンがプログラムの実行後、勝手に独自の再描画を行っているのではないかと
思うのですが、これをやめさせるにはどうすればいいのでしょうか。

説明がわかりづらいとは思いますが、よろしくお願いします。

カメラ取得・移動後、
Blender.Redraw()
Blender.Window.CameraView(0)
で再描画させています。
投票数:3 平均点:6.67
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009/10/3 11:47
yamyam  管理人 居住地: そうや、うちはおおさかやー  投稿数: 4405
単にインタラクティブであることだけが条件なら、いっそのこと Space Handler スクリプトを制作すればいいのではないでしょうか。こちらの下の方に情報があります。

投票数:1 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009/10/6 23:27
leo  新米 居住地: 東京  投稿数: 9
日本語ではあまり解説されているところがないようですね。
じっくり読み込むことにします。ありがとうございました。
投票数:2 平均点:5.00

  条件検索へ


ログイン

ユーザ名:

パスワード:



パスワード紛失

クイックリンク

2021/07/01版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- 公式チュート等
- 公式マニュアル(和訳)

●ニュース(英文)
BlenderNation

●Blenderコミュニティ
blenderartists.org

●Blender Q&A
- Blender Stack Exchange

●テストビルド
Buildbot(自動生成)


●開発関連
公式開発サイト
Blender開発blog
Blender Wiki