2023:09:14
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
2023:09:14 [2023/09/15 02:36] – machiaworx | 2023:09:14 [2023/09/15 05:19] (現在) – [ゲーム開発2] machiaworx | ||
---|---|---|---|
行 5: | 行 5: | ||
* 今日はGDExtensionを使ってみることにした。 | * 今日はGDExtensionを使ってみることにした。 | ||
* GDExtensionは下記ページに追加方法のサンプルが存在\\ https:// | * GDExtensionは下記ページに追加方法のサンプルが存在\\ https:// | ||
- | * これ見て思ったのは、「Miniscriptの変数バインドを書く場合、GDExtensionに管理するデータを含まないとコントロールできなくね?」という事。 | + | * これ見て思ったのは、「Miniscriptの変数バインドを書く場合、管理するデータをGDExtensionに含まないとコントロールできなくね?」という事。 |
* 実装のサンプルになるソースコードはこれ。\\ https:// | * 実装のサンプルになるソースコードはこれ。\\ https:// | ||
- | * static関数の関数ポインタ紐づけてスクリプトから関数がコールされたらデータを更新するんだけど、これを汎用的にするのは割とハードルが高い(専用設計にしないとコントロールが困難だから。少なくともプレイヤー・エネミー・ボスは仕組みが違うため設計を分割する必要がある) | + | * static関数の関数ポインタ紐づけてスクリプトから関数がコールされたらデータを更新するんだけど、これを汎用的にするのは割とハードルが高い(専用設計にしないとコントロールが困難だから。少なくともプレイヤー・エネミー・ボスは仕組みが違うため設計をそれぞれで行う必要がある) |
- | * あと、オブジェクトをコントロールするためには座標や角度、利用する画像番号等の情報を書き込む必要があるんだけど、そのためには動作しているオブジェクトごとに情報を管理していく必要があるため、その情報をどこに置くのかという話になる。 | + | * あと、オブジェクトをコントロールするためには座標や角度、利用する画像番号等の情報を書き込む必要があるんだけど、そのためには動作しているオブジェクトごとに情報を管理していく必要があるため、その情報をどこに置くのかという話になる。GDScript側でデータを管理する場合、GDExtensionからGDScriptの変数呼んで更新という話になるわけで、それは正常接続可能なの?という話。 |
* で、今の所の結論は「データ管理の仕組みもC++で書く必要がある(そこにスクリプトを紐付ける)」ということ。 | * で、今の所の結論は「データ管理の仕組みもC++で書く必要がある(そこにスクリプトを紐付ける)」ということ。 | ||
- | * 正直なところそこまでして強引に接続する(しかもバージョンごとのメンテが必要・データ管理システムのメンテも必要)よりかは、同じ役割をGDScriptで書くのが早いのでは?と思う。 | + | * 上記のようにして強引に接続する(しかもバージョンごとのメンテが必要・データ管理システムのメンテも必要)よりかは、同じ役割をGDScriptで書くのが早いのでは?と思う。 |
- | * あくまで開発効率化(Unityのバージョンをまたいでも利用可能、ロジックを触らずに各データにバインド+更新可能)を目的としているので、逆に手間がかかるようであれば別の方法がいいのかなと考える。 | + | * あくまで開発効率化(Unityのバージョンをまたいでも利用可能、ロジックを触らずに各データにバインド+更新可能)を目的としているので、逆に手間がかかるようであれば別の方法を検討するのが早いのではと考える。 |
+ | * 特に「管理するデータそのものをGDExtension側に含める」というのが一番のネック。頻繁に更新する必要がある箇所に対し拡張扱いにするとなると少し問題がある。 | ||
+ | * 来週以降はUnity側でCryPic.を触ろう。 | ||
+ | |||
+ | ===== ゲーム開発2 ===== | ||
+ | * 上記の通りではあるけど、じゃあC# | ||
+ | * C# | ||
+ | * また、Godotも自動で描画できるけど、コードで描画タイミングを制御可能なので、これを利用して_process(時間経過による毎フレームで処理する関数)にスクリプト実行させて、その後必ず描画させる実装を作っておいた。\\ | ||
+ | * ということで、GodotでMiniscript使う件についてもなんとかなった。 | ||
+ | |||
+ | * ただ、どちらかというとGodotからC# | ||
+ | * 特にGodot4.0と4.1でかなりコアな機能の関数名が違っているってどういうことだゴルァ!ってなった。 | ||
+ | * 実装自体は全然時間かからなかったけど、上記の通りGodotのC# | ||
+ | * Miniscript使うためにC# | ||
+ | * そうなるとMiniscript-C# | ||
+ | |||
+ | * 明日(というかもう今日だ)はC# |
2023/09/14.1694712964.txt.gz · 最終更新: 2023/09/15 02:36 by machiaworx