🅱️

Flutter 上で babylon native を動かしてみる

2023/02/22に公開

Android は動くリポジトリがある

https://github.com/CedricGuillemet/babylonnative_flutter

とりあえず動かしてみる

git clone --recursive https://github.com/CedricGuillemet/babylonnative_flutter.git
cd babylonnative_flutter/BabylonNative/Apps
npm i
cd babylonnative_flutter/example
flutter run

CMake 3.19.6 が必要

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':babylonnative'.
> [CXX1300] CMake '3.19.6' was not found in SDK, PATH, or by cmake.dir property.

Android Studio の SDK Tools にはないし、 homebrew で古いバージョンのCMakeインストールできなかったので、GitHubから cmake 3.19.6 の gui 版 ユニバーサルバイナリをダウンロードしてきてPathを追加

https://github.com/Kitware/CMake/releases/tag/v3.19.6

set PATH /Applications/CMake.app/Contents/bin $PATH

(こなれた人はどうやってCMakeのバージョンを解決してるのかしら🤔)

これでビルドできた

エミュレーターだと真っ暗

ed->isProgram(program)]
E/emuglGLESv2_enc(30435): device/generic/goldfish-opengl/system/GLESv2_enc/GL2Encoder.cpp:s_glBindVertexArray:3146 GL error 0x502 condition [!state->isVertexArrayObject(array)]
E/emuglGLESv2_enc(30435): device/generic/goldfish-opengl/system/GLESv2_enc/GL2Encoder.cpp:s_glBindVertexArray:3146 GL error 0x502 condition [!state->isVertexArrayObject(array)]
E/emuglGLESv2_enc(30435): device/generic/goldfish-opengl/system/GLESv2_enc/GL2Encoder.cpp:s_glUseProgram:2244 GL error 0x502 condition [program && !shared->isProgram(program)]
E/emuglGLESv2_enc(30435): device/generic/goldfish-opengl/system/GLESv2_enc/GL2Encoder.cpp:s_glBindVertexArray:3146 GL error 0x502 condition [!state->isVertexArrayObject(array)]
E/emuglGLESv2_enc(30435): device/generic/goldfish-opengl/system/GLESv2_enc/GL2Encoder.cpp:s_glBindVertexArray:3146 GL error 0x502 condition [!state->isVertexArrayObject(array)]
E/emuglGLESv2_enc(30435): device/generic/goldfish-opengl/system/GLESv2_enc/GL2Encoder.cpp:s_glUseProgram:2244 GL error 0x502 condition [program && !shared->isProgram(program)]
E/emuglGLESv2_enc(30435): device/generic/goldfish-opengl/system/GLESv2_enc/GL2Encoder.cpp:s_glBindVertexArray:3146 GL error 0x502 condition [!state->isVertexArrayObject(array)]

ios版はなにもないので用意していく

とりあえずBabylyonNative iosをビルド

babylonnative_flutter/BabylyonNative で

cmake -B build/iOS -G Xcode -D CMAKE_TOOLCHAIN_FILE=Dependencies/ios-cmake/ios.toolchain.cmake -D PLATFORM=OS64COMBINED -D ENABLE_ARC=0 -D DEPLOYMENT_TARGET=12

すんなりビルドできた。

open babylonnative_flutter/BabylyonNative/build/iOS/BabylonNative.xcodeproj

でXcodeを開き、Playground を実行してみる

BabylyonNative ios が動いた。

とりあえずここまで、Flutterに統合できたら追記
iOS版の統合を仕事として依頼したい場合はお気軽にご連絡ください

Discussion