このプロジェクトについて
Godot-Pythonは、GodotゲームエンジンにPython言語サポートをスクリプトモジュールとして導入することを目的としたプロジェクトです。これにより、開発者はGDScriptの代わりにPythonでゲームスクリプトを記述でき、Pythonのエコシステムと構文を活用できます。
**主な機能:**
- **GodotでのPythonスクリプティング:** Godotノード(例: `Node2D`、`KinematicBody`)を継承するPythonクラスを使用し、`@exposed`デコレータを介してエンジンに公開します。
- **エクスポート:** `export(<type>)`を使用してエクスポートされた属性とプロパティを定義し、Godotのインスペクタと統合します。
- **完全なAPIアクセス:** 生成されたバインディング(例: `Vector2`、`ResourceLoader`)を通じてGodotのAPIにアクセスします。
- **ヘルパークラス:** 公開されていないPythonクラスを内部ロジックに使用できます。
- **ビルドシステム:** Scons、Cython、Jinja2に基づき、Linux、Windows、macOSをサポートします。
- **テストと例:** pytestベースのテストとPongのサンプルプロジェクトが含まれます。
**現在のステータス:** このプロジェクトは、現在のコードベースと互換性のないGodot 4をサポートするために大規模なリファクタリング中です。開発は`godot4-meson`ブランチで進行中です。masterブランチはGodot 3.xを対象としています。
**インストール:** ユーザーはGodotのアセットライブラリからインストールするか、アセットライブラリのウェブサイトからダウンロードするか、リリースページからプラットフォーム固有のビルドを取得できます。
**使用例:**
```python
from godot import exposed, export, Vector2, Node2D, ResourceLoader
@exposed
class Player(Node2D):
name = export(str)
@export(int)
@property
def age(self):
return self._age
@age.setter
def age(self, value):
self._age = value
def talk(self, msg):
print(f"I'm saying {msg}")
def _ready(self):
self._age = 42
print(self.get_name())
def _process(self, delta):
self.position += Vector2(10, 10) * delta
```
**ソースからのビルド:** Python >= 3.7とCコンパイラが必要です。手順には、GDNativeヘッダーのサブモジュールの初期化、仮想環境の作成、依存関係のインストール、プラットフォーム固有のコマンド(例: `scons platform=x11-64 release`)でのSconsの実行が含まれます。
**FAQのハイライト:**
- **プロジェクトのエクスポート:** 手動エクスポートが必要です。Python環境とGodotバイナリをリリースフォルダにコピーします。
- **Pythonパッケージの使用:** `ensurepip`でpipをインストールし、`pip install`を使用して埋め込みインタープリタにパッケージを追加します。
- **PyCharmでのデバッグ:** Godotバイナリの名前を'python'を含むように変更し、「Attach to Local Process」を使用します。
- **スクリプトの自動ロード:** `project.godot`の`[autoload]`と`[gdnative]`で設定します。
- **PoolArrays:** 効率的なアクセスには`arr.raw_access()`コンテキストマネージャを使用しますが、メモリ安全性に注意してください。
**注記:** このプロジェクトはGodot 3向けには積極的にメンテナンスされておらず、今後のアップデートについては`godot4-meson`ブランチを確認してください。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.