Build

ビルド方法

ソースコードの取得と準備

まずgd_cubismをgit cloneしてください。

最新のバージョンでしたらそのまま使用してください。もし機能拡張やバグ修正が行われたものを試したい場合は適宜ブランチを切り替えてください。

git clone https://github.com/MizunagiKB/gd_cubism.git
cd gd_cubism
git submodule update --init

CubismSdkForNativeの入手と配置

次にビルドに必要なSDKをLive2Dのオフィシャルサイトから入手してください。

Cubism SDK for Native には Cusism SDK 以外に Cubism Native Framework が含まれています。

ダウンロードしたファイルを以下のフォルダ構成になる様に展開してください。(ダウンロードしたものを thirdparty フォルダに配置してファイルを展開すればこの形になります)

./thirdparty
└── CubismSdkForNative-5-r.1
     ├── CHANGELOG.md
     ├── Core
     │   ├── CHANGELOG.md
     │   ├── LICENSE.md
     │   ├── README.ja.md
     │   ├── README.md
     │   ├── RedistributableFiles.txt
     │   ├── dll
     │   ├── include
     │   └── lib
     ├── Framework
     │   ├── CHANGELOG.md
     │   ├── CMakeLists.txt
     │   ├── LICENSE.md
     │   ├── README.ja.md
     │   ├── README.md
     │   ├── TRANSLATION.md
     │   └── src
     ├── LICENSE.md
     ├── NOTICE.ja.md
     ├── NOTICE.md
     ├── README.ja.md
     ├── README.md
     ├── Samples
     │   ├── Cocos2d-x
     │   ├── D3D11
     │   ├── D3D9
     │   ├── Metal
     │   ├── OpenGL
     │   ├── Resources
     │   └── Vulkan
     ├── cubism-info.yml
     ├── logor.png
     └── logos.png

不具合対応について

Godot Engine のバージョンと環境によっては、Window非表示状態でメモリリークが発生する不具合が発生しています。

この不具合は Vulkan レンダラーを使用している Forward+, mobile で発生しており、一部の問題は対策されているものの macOS 環境においては解消されていません。

この問題に対応するため、 scons 実行時に COUNTERMEASURES_90017_90030 を指定できる様にしました。

COUNTERMEASURES_90017_90030=1 (default)

Window非表示状態のときLive2Dモデルの描画処理を呼び出しません。

COUNTERMEASURES_90017_90030=0

Windowの表示状態に関わらず、常にLive2Dモデルの描画処理を呼び出します。

不具合の内容については以下のIssueを参照してください。

CubismEditor との挙動の違いについて

GDCubism が内部で使用している CubismNativeFramework は、 Cubism Editor で作成された Live2D モデルを再生可能な様に作成されているものの、描画のプライオリティやモーションに差異が生まれる事があります。

Cubism SDK for Native のドキュメントには、Cubism Editor との動作の違いやデータ作成上のヒントが記載されています。

ドキュメントの内容は主に Unity や Cubism SDK for Native 向けでそのまま使用できない場所もありますが、参考にしてみてください。

Cubism Editor 5 / プラットフォーム比較

CubismNativeFrameworkのカスタマイズ

GDCubismはCubismSdkForNativeに同梱されているCubismNativeFrameworkを使用していますが、最新のFrameworkや独自に拡張したい場合は、以下の方法で変更可能です。

pushd thirdparty
git clone https://github.com/Live2D/CubismNativeFramework.git
popd
ビルドはCubismSdkForNativeにあるFrameworkよりカスタムビルドの方が優先されます。 不要になりましたら削除を行ってください。

Windows版のビルド

ビルドには以下のものが必要となります。

SCons 4.8 を使用すると VS Project が正常に生成出来ず、ビルドに失敗するという報告を受けています。 この問題は Godot Engine 側にあり、将来のバージョンで解消されると思いますが、現状は SCons を 4.7 で使用してください。 https://github.com/godotengine/godot/pull/94117

# scons をインストールする時にバージョン指定をする事で対応可能です。
# 4.8 以上が導入されている場合もこの方法で 4.7 にする事が出来ます。
pip install scons==4.7
Visual Studioのインストールに関する注意事項

Visual Studio をインストールする場合は、ワークロードのリストから C++ を有効化しなければなりません。

もし間違って C++ サポート無しで Visual Studio をインストールしてしまったなら、再度インストーラーを実行してください。変更 (Modify)ボタンが表示されるはずです。プログラムの追加と削除からインストーラーを起動しても、修復オプションしか表示されず、 C++ ツールはインストールできません。

環境が準備できたら以下の手順でビルドを行ってください。

scons platform=windows vsproj=yes arch=x86_64 target=template_debug
scons platform=windows vsproj=yes arch=x86_64 target=template_release

ビルドが完了すると以下のファイルが demo/addons/gd_cubism/bin 以下に生成されます。

  • libgd_cubism.windows.debug.x86_64.dll

  • libgd_cubism.windows.release.x86_64.dll

macOS版のビルド

ビルドには以下のものが必要となります。

SCons 4.8 を使用するとビルドに失敗するという報告を受けています。 この問題は Godot Engine 側にあり、将来のバージョンで解消されると思いますが、現状は SCons を 4.7 で使用してください。 https://github.com/godotengine/godot/pull/94117

# scons をインストールする時にバージョン指定をする事で対応可能です。
# 4.8 以上が導入されている場合もこの方法で 4.7 にする事が出来ます。
pip install scons==4.7

準備できたら以下の手順でビルドを行ってください。

# for x86_64(intel mac)
scons platform=macos arch=x86_64 target=template_debug
scons platform=macos arch=x86_64 target=template_release
# for arm64(Apple Silicon mac)
scons platform=macos arch=arm64 target=template_debug
scons platform=macos arch=arm64 target=template_release

ビルドが完了すると以下のファイルが demo/addons/gd_cubism/bin 以下に生成されます。

  • libgd_cubism.macos.debug.framework

  • libgd_cubism.macos.release.framework

universalバイナリとしてビルドする場合

universalバイナリとしてビルドする場合は、sconsを実行する前に以下の様にリンクファイルを生成してください。

pushd thirdparty/CubismSdkForNative-5-r.1/Core/lib/macos
mkdir universal
lipo -create arm64/libLive2DCubismCore.a x86_64/libLive2DCubismCore.a -output universal/libLive2DCubismCore.a
popd

# for universal
scons platform=macos arch=universal target=template_debug
scons platform=macos arch=universal target=template_release

Linux版のビルド

ビルドには以下のものが必要となります。

Linuxの場合、ディストリビューション毎に必要なパッケージが追加で必要となる場合があります。どのディストリビューションで何が必要になるかは Godot Engine のドキュメントを参考にしてください。

環境が準備できたら以下の手順でビルドを行ってください。

scons platform=linux arch=x86_64 target=template_debug
scons platform=linux arch=x86_64 target=template_release

ビルドが完了すると以下のファイルが demo/addons/gd_cubism/bin 以下に生成されます。

  • libgd_cubism.linux.debug.x86_64.so

  • libgd_cubism.linux.release.x86_64.so

その他のビルドについて

以下の二つはビルドが行えることのみを確認しており、動作確認まではしていません。

それぞれの環境で動かしてみる場合の参考にご利用ください。

iOS版のビルド

ビルドには以下のものが必要となります。

Xcodeはコマンドラインのみで使用している場合、iphoneos向けのビルドが開始されない場合があります。

この場合はXcodeのパスを以下の様に指定し直すことでビルドが行われる様になります。

sudo xcode-select --switch /Applications/Xcode.app

準備できたら以下の手順でビルドを行ってください。

# for arm64
scons platform=ios arch=arm64 target=template_debug
scons platform=ios arch=arm64 target=template_release
# for universol
scons platform=ios arch=universal target=template_debug
scons platform=ios arch=universal target=template_release

ビルドが完了すると以下のファイルが demo/addons/gd_cubism/bin 以下に生成されます。

  • libgd_cubism.ios.debug.arm64.dylib

  • libgd_cubism.ios.release.arm64.dylib

  • libgd_cubism.ios.debug.universal.dylib

  • libgd_cubism.ios.release.universal.dylib

Android版のビルド

ビルドには以下のものが必要となります。

ここでは Windows10 環境に Android Studio を導入しているという前提で話をします。

Android Studio を起動して、 SDKManager を起動します。 SDKManager は Android Studio 起動時の Welcome to Android Studio と表示されている画面にある More Actions から選択できます。

SDKManagerが起動したら、以下のものにチェックを入れてダウンロードします。

  • SDK Platforms

    • Android API 34

    • Android 10("Q")

  • SDK Tools

    • Android SDK Build-Tools 34

    • NDK (Side by side)

    • Android SDK Command-line Tools (latest)

    • CMake

    • Android Emulator

    • Android SDK Platform-Tools

    • Android SDK Tools (Obsolete)

環境が準備できたら以下の手順でビルドを行ってください。

scons platform=android target=template_debug arch=armv7
scons platform=android target=template_release arch=armv7
scons platform=android target=template_debug arch=arm64v8
scons platform=android target=template_release arch=arm64v8

ビルドが開始されていない場合は、以下の環境変数を設定してみてください。

  • ANDROID_SDK_ROOT …​ SDKManager で選択したものがインストールされている場所

  • ANDROID_HOME …​ SDKManager で選択したものがインストールされている場所

  • ANDROID_NDK_HOME …​ SDKManager でインストールした NDK の場所

  • ANDROID_NDK_ROOT …​ SDKManager でインストールした NDK の場所

example
set ANDROID_SDK_ROOT=D:\Android\sdk
set ANDROID_HOME=D:\Android\sdk
set ANDROID_NDK_HOME=%ANDROID_SDK_ROOT%\ndk\26.0.10792818
set ANDROID_NDK_ROOT=%ANDROID_SDK_ROOT%\ndk\26.0.10792818

ビルドが完了すると以下のファイルが demo/addons/gd_cubism/bin 以下に生成されます。

  • libgd_cubism.android.debug.arm32.so

  • libgd_cubism.android.release.arm32.so

  • libgd_cubism.android.debug.arm64.so

  • libgd_cubism.android.release.arm64.so