Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What are the problem?
Organization

Genvid SDK&サンプル実行トラブルシューティング(随時更新)

Genvid SDKについて

Genvidは、動画ストリーミングとブラウザを介したインタラクティブな体験を組み合わせた「大規模インタラクティブ・ライブ・イベント」(Massive Interactive Live Events)を実現するSDKです。
https://www.genvidtech.com/ja/mile%E3%81%A8%E3%81%AF%EF%BC%9F/

ゲーム技術をベースに、リアルタイムで進行する動画番組に対して、動画視聴者が能動的に参加できるシステムを提供します。
コンテンツ内のキャラクターが次に何をするかを投票で決めたり、ミニゲームをプレイしてポイントをため、特定のキャラクターを応援するなどの活動を経て、物語が変化していきます。
MILEは、Unityを使いFacebook上で配信されている「Rival Peak」と、Unreal Engine 4を使った「Project Raven」があります。

『RIVAL PEAK』が示す次世代の視聴者参加型デジタルエンタテインメント
https://news.yahoo.co.jp/byline/onokenji/20210326-00229353

Genvid SDKの導入については、Genvidディベロッパーサイトの日本語マニュアルからご確認ください。
https://www.genvidtech.com/for-developers/

さて、GenvidのシステムはWindowsクラウドサーバーで様々なミドルウェアを動作させるというシステム上、ゲーム開発者には不慣れなツールの利用などもあります。
本投稿は普段ゲーム開発(フロントエンド開発、個人開発)をしている方向けに、Genvidを試そう・導入しようと思っているときの引っ掛かりポイントを書いていきます。

インストール時のポイント

Genvid SDKにはさまざまなツールやライブラリが同梱されています。

  • Python 3.5.4
  • C++ Build Tools
  • Node.js
  • AWS Command Line Interface
  • TightVNC

そのため、すでにPCにインストールされているソフトウェア・ライブラリとかち合うことがあります。

Microsoft Visual C++ Build Toolsセットアップに失敗(エラー)

その中には「Microsoft Visual C++ Build Tools」も含まれています。
しかし、¥PCに既に別のバージョンのMicrosoft Visual C++ Build ToolsやVisual Studio 2017, 2019などがインストールされている場合は、そのインストールプロセスに失敗したり、
再インストールのダイアログでエラーになる場合があります。
先に「Microsoft Visual C++ Build Tools」が入っている場合は、ダイアログで再インストールを聞かれたら「いいえ」を選択します。

詳しい情報はGenvid公式サイトのガイドがあります。
https://answers.genvidtech.com/articles/151/unable-to-install-microsoft-c-build-tools-with-sdk.html

genvid-toolboxのインストール時にcryptographyライブラリがインストールできずに中断される

genvid-toolboxのwheelsで指定されているCryptographyのバージョンが古く、pipの処理がうまく進まないことがありました。

pipの再インストールで治ります。

py -3.8 -m pip install -U pip

関連
https://github.com/pyca/cryptography/issues/5101

サンプルビルド時のポイント

Genvid SDKのサンプル(Cube Sampleとよばれる四角が転がるもの)やGenvid Tanks Sampleのビルドと実行には、UnityやUE4をメインで使っている方には少々不慣れなコマンドでの操作が必要になります。
踏みがちなトラブルを見ていきましょう。

Unity EditorでMultiple versions of Newtonsoft.jsonエラー

(またはMultiple precompiled assemblies with the same name Newtonsoft.Json.dllエラー)

Genvid Unity SDKが同梱しているNewtonsoft.jsonライブラリがUnity Editor内に既にあり、競合しています。

ややこしいことにUnity 2020.3のどこかから、Unity Editorをインストールすると自動でUnity Package Managerが「Version Control package」をインストールする挙動になったのですが、これにNewtonsoft.Json.dllが含まれているためエラーの原因になっています。

Version Control(Plastic SCM)を使っていない場合はこのパッケージをアンインストールしましょう。
Genvid SDK側のNewtonsoft.Json.dllの削除でも構いません。

Project has invalid dependenciesエラー

Genvid Tanksサンプル1.25をUnity Asset Storeからインストールしたときに、Unity Package Managerの依存設定が変(com.unity.package-manager-ui: Package [com.unity.package-manager-ui@2.2.0] cannot be foundエラー)となってインストールが正常に完了しないことがありました。
こちらは、サンプルのバージョンを上げれば問題ありません。
特定の理由で1.25を使う場合は、以下のダイアログが出た時に「Skip」とすれば進めます。

packagemanagerdependencies______skip.png

python.exe: can't open file 'Unity.py'(または 'Web.py')エラー

「そんなPythonスクリプトは無い」というメッセージです。現在のディレクトリまたは指定したパスに使用したいpyファイルがないということです。

Genvidのマニュアルでは、ディレクトリ移動のコマンドは(細かすぎるので)省いていることがあります。
よくあるのが、pyファイルがあるディレクトリが実は一段下だった(web.pyがフォルダwebの下にある)などによるディレクトリ指定忘れです。
ディレクトリに直接移動したり、適切なパスを指定します。

verification failed while extracting genvid-math@file:modules\genvid-math.tgz エラー

Webのビルド時にこれが表示された場合は、そのWebサイトの動作に必要なライブラリのバージョンや依存関係がおかしくなっている可能性があります。
web用のデータ一式が入ってィるフォルダ内のnode_modulesフォルダとpackage-lock.jsonを消してから、再度Webのビルドコマンドを実行してみましょう。

npm WARN tar ENOENT no such file or directoryエラー

こちらもpackage-lock.jsonが悪さをしている可能性が高いです。package-lock.jsonを削除して再実行しましょう。
また、npmのキャッシュが壊れている可能性もあるため、次のコマンドでキャッシュをクリアします。

npm cache verify

それでも変な場合はcache clean

npm cache clean --force

[Errno 2] Cannot find executable in the path: 'Unity.exe'

Genvidのビルドプロセス(unity.pyに含まれるスクリプトを利用)は、PCにインストールされているUnity Editorを自動的に探してきてビルドを行うスクリプトが含まれています。
が、何らかの理由でUnity Hubのjsonにアクセスできなかったり、そのフォールバックであるレジストリキーでのUnity.exeの位置情報が消えていたりすると、exeが見つからずこちらのエラーになります。
そんなときは、レジストリエディターで適切なデータを与えることでビルドが通るようになります。
具体的にはHKEY_CURRENT_USER\SOFTWARE\Unity Technologies\Installer\Unityの中に「Location x64」と「Version」キーを作ります。

Unityレジストリキーの修正.png
「Location x64」にはUntiy.exeまでのフルパス、「Version」にはUnityバージョンを記入しておきます。

サンプル実行時のポイント

Genvidのセットアップが一通り終わり、管理画面であるCluster UIでタスク「Services」「Unity」「web」が3つとも起動すればOKなのですが、設定や環境によって初回でうまくいかないことがあります。
よくある見落としポイントをおさらいしましょう。

Cluster-UI_ local - Google Chrome 2020-12-02 17.25.png

タスクServicesが起動しない、存在しない

Genvid Clusterの初期設定がロードされていない可能性があります。
初期設定をロードするコマンドを実行します。

genvid-sdk load-config-sdk

タスクUnityが存在しない

Unityのゲームインスタンス(Unityでビルドしたexe)を実行するための設定情報がロードされていません。
パスまたは設定情報が書かれたunity.nomad.tmplまたはgame.hclなどのファイルを個別にロードするか、サンプルの場合は以下のコマンドでロードされます。

py unity.py load

タスクUnityが起動しない

Genvid Clusterに読み込まれたゲームのexeファイルのパス情報がおかしい可能性があります。
サンプルの場合は、unity.nomad.tmplファイル内でexeまでのパスを書いてあります。
このファイルに正しいパスを記入してロードするか、Genvid Cluster UI内で直接書き換えます。

Settingsタブ内Jobsタブで、「unity」タスク設定のEditボタン(メモ帳みたいなアイコン)をクリックして設定編集ウィンドウを開きます。

JobsSettingUnity.png

ちょっと見づらいですが、Task ”Unity”内のConfig -> commandにexeの位置を指定する箇所があります。

タスクWebが起動しない

Webサイトの実行に必要なビルドがされていない可能性があります。
py web.py buildコマンドを実行して、実効に必要なライブラリ群をダウンロードします。

py web.py build

今後のSDKバージョンアップに向けて

Genvid SDKのバージョンアップは日々行われており、Unity / UE4も同様です。どうしても開発環境や併用しているアセット等の組み合わせがうまくいかないケースもありますので、
随時情報収集して更新していきます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?