ユーザ用ツール

サイト用ツール


godotembed

GodotEngineへの組み込み

概要

ここ数日Unityのニュースが流れてるのに伴い、
自作のフレームワークも他のエンジンやエンジンを使わず作る等の選択肢を確保しておいたほうがいいと考えた。
まずは自分がシンセサイザー制作やテスト的によく利用していたGodotEngineへの移行を行ってみることにした。

組み込み方法・言語

C言語の場合、static関数を作ってそれにアクセスすることになるため、
クラスごとのアクセスを制御するのは困難と思料。
よって、C#でのアクセスを想定する。

C#の場合、delegateを利用して各クラス単位で言語処理を行うことになるため、各クラスでの関数処理というのがやりやすい。
この方法で利用クラスと関連付ける場合、delegateを持つC#でしか処理できないと考える。
(他の方法もある場合、その方法が不明な部分がある)

GDScriptにはdelegateに代替される方法でのアクセスは不明だし、
そもそもMiniscriptの実装自体がC#ありきでの形になるため、基本的には対応していないものと考える。

また、GDScriptとC言語版をGDExtension経由でアクセスする場合、キャラの所属ごとのスクリプトという実装は不可能になる。
(前述の通り全体からスクリプトにアクセスする形になるため、アクセスできるデータの切り分けが難しくなる。staticの変数はC側に置いてGDScript経由でアクセスする等受け渡しに不自由が出てくることが予想される)

Godotに組み込む場合どういう実装にするか

よって現状の結論は、
データアクセス(スクリプトで操作する変数)とMiniscript部分はC#のものを利用、変数へのアクセスについてはGDScriptからC#へノード接続を行いアクセスする
という形になりそう。

上記の実装を行う場合、現行のバージョンではWebへの出力ができないため注意。

godotembed.txt · 最終更新: 2023/09/17 20:44 by machiaworx