Mac M2でJoy-ConLibを使う方法とDllNotFoundExceptionの解決法

プログラミング

UnityでJoy-Conの振る動作を取り入れたゲームを作成する際、MacOS M2 Maxを使用していると、DllNotFoundExceptionが発生する問題がよく報告されています。このエラーは、JoyconLibで使用されているプラグインがIntel Mac用にコンパイルされているために発生することがあります。この記事では、M2 Macにおけるこの問題を解決するための方法について解説します。

DllNotFoundExceptionの原因と問題点

JoyconLibのプラグインは、元々Intel Mac向けにコンパイルされているため、AppleのM1やM2チップを搭載したMacでは、DllNotFoundExceptionが発生することがあります。このエラーは、Hidapi.bundleなどのバンドルファイルが正しく読み込まれないことが原因です。

このエラーを解決するためには、M1/M2チップ向けに適切なプラグインをコンパイルする必要があります。多くのUnity開発者は、Xcodeを使って自分でバンドルを作成することで対応していますが、うまくいかない場合もあります。

Hidapi.bundleの作成と配置

Hidapi.bundleを手動で作成し、それをUnityプロジェクトに適用する方法があります。まず、Hidapi.bundleを正しくコンパイルする必要があります。M1/M2向けにコンパイルされたHidapiを入手し、正しいディレクトリに配置することが重要です。

また、Hidapi.bundleの作成後、Unityプロジェクトに配置する場所や設定が正しいかを確認してください。特に、Hidapi.bundleが正しい場所に置かれていないと、エラーが解消されません。

Xcodeのビルド設定と注意点

Unityで作成したプロジェクトがXcodeでビルドされる際に、Hidapi.bundleが作成されない場合は、Xcodeのビルド設定を確認する必要があります。Xcodeのメニューバーから「Product」→「Build」を選択してビルドを行いますが、ビルド後にbundleが表示されない場合、Xcodeのビルド設定が正しくない可能性があります。

また、finderで隠れたbundleファイルを検索することも有効です。隠れている場合、Xcodeのビルド設定が適切でないことが多いです。

バンドル作成時に発生する問題の解決法

もし、バンドル作成時にエラーが発生し、debug.logに「chrome_100_percent.pakが読み込めない」と記載されている場合、必要な依存ファイルが正しく配置されていないことが原因です。この場合、依存関係を再確認し、必要なファイルを手動で配置するか、再インストールを試みることが効果的です。

また、Xcodeで新しいプロジェクトを一から作成し、再ビルドしてみることで、問題が解決する場合もあります。

まとめ

MacOS M2でのJoy-ConLibの問題は、主にM1/M2チップ向けにコンパイルされたプラグインが原因です。このエラーを解決するには、正しいHidapi.bundleの作成と配置、Xcodeのビルド設定を確認することが重要です。手動でファイルを配置したり、ビルド設定を再確認することで、エラーを解消し、Joy-ConLibを正常に動作させることができます。

コメント

タイトルとURLをコピーしました