「Godot」の版間の差分
ナビゲーションに移動
検索に移動
編集の要約なし |
編集の要約なし |
||
(同じ利用者による、間の5版が非表示) | |||
7行目: | 7行目: | ||
== C++で書きたい == | == C++で書きたい == | ||
GDExtensionを使う | GDExtensionを使う | ||
※GDNativeはGodot4以降GDExtensionに置き換わる模様 | |||
* https://docs.godotengine.org/en/stable/tutorials/scripting/gdextension/index.html | * https://docs.godotengine.org/en/stable/tutorials/scripting/gdextension/index.html | ||
* https://godotengine.org/article/introducing-gd-extensions/ | * https://godotengine.org/article/introducing-gd-extensions/ | ||
15行目: | 16行目: | ||
# sconsでコンパイルする | # sconsでコンパイルする | ||
# 生成されたバイナリファイルと同じところにexample.gdextensionを配置する | # 生成されたバイナリファイルと同じところにexample.gdextensionを配置する | ||
これでノードとして使えるようになる | |||
== OpenCVを使いたい == | |||
上記GDExtensionを用いてC++で書く | |||
# OpenCVをインストールする(Cドライブ直下) | |||
# SConstructでインクルードパスを指定 env.Append(CPPPATH=["src/", "/opencv/build/include/"]) | |||
# libファイルをリンク #pragma comment(lib, "/opencv/build/x64/vc15/lib/opencv_world455.lib") | |||
# OpenCVのdllをbinフォルダに置く | |||
# gdexample.gdextensionの[libraries]にOpenCVのdllを追加 | |||
Image::create_from_dataを使って、cv::MatをPackedByteArray経由でRef<Image>に入れてreturnすればGDScriptから画像データを参照できる | |||
[[カテゴリ:Godot]] |
2024年9月22日 (日) 10:42時点における最新版
ネイティブのファイルダイアログを使う
C++で書きたい
GDExtensionを使う ※GDNativeはGodot4以降GDExtensionに置き換わる模様
- https://docs.godotengine.org/en/stable/tutorials/scripting/gdextension/index.html
- https://godotengine.org/article/introducing-gd-extensions/
ざっくりやること
- godot-cppをsubmoduleとしてcloneする
- srcフォルダにプラグインの.cpp, .hとregister_types.cpp, register_types.h を配置する
- SConstructを配置する
- sconsでコンパイルする
- 生成されたバイナリファイルと同じところにexample.gdextensionを配置する
これでノードとして使えるようになる
OpenCVを使いたい
上記GDExtensionを用いてC++で書く
- OpenCVをインストールする(Cドライブ直下)
- SConstructでインクルードパスを指定 env.Append(CPPPATH=["src/", "/opencv/build/include/"])
- libファイルをリンク #pragma comment(lib, "/opencv/build/x64/vc15/lib/opencv_world455.lib")
- OpenCVのdllをbinフォルダに置く
- gdexample.gdextensionの[libraries]にOpenCVのdllを追加
Image::create_from_dataを使って、cv::MatをPackedByteArray経由でRef<Image>に入れてreturnすればGDScriptから画像データを参照できる