【Unity Hub】UbuntuでUnity3DとVRChat SDKインストールする方法

アイキャッチ:Unity3DとVRChat SDK

◆作業期間:2019.12.25~12.26

★この記事を3行で読む

  1. UbuntuにUnity3Dをインストールするのが簡単になった
  2. Unity3Dの日本語化はバージョン2018以降
  3. Ubuntu環境でVRChat SDKを導入するメリットは少ない

概要

Ubuntu環境でVR用の3Dアバターを製作するために、Unity3DとVRChat SDKの導入を目指した記録をまとめたものです。
Unity Hub経由でUnity3Dをインストールし、VRChat SDKをインポートします。
Blenderで製作途中の3DモデルをFBX形式でエクスポートし、VRChat SDKで扱えるかどうかを検証しました。

Ubuntuには”Unity”という名前のデスクトップ環境(Windowsでのタスクバーやスタートメニューの見た目や機能を提供するプログラム群)が標準で搭載されている場合があります。
Ubuntuのデスクトップ環境と区別するために、ゲームエンジンの”Unity”をこのページでは明示的に”Unity3D”と記載します。

ここで紹介する手順は、今後のアップデートなどで変更になる場合があります。有志が更新するWikiの情報も併せて確認してください。

動機

BlenderやGimp、KritaなどUbuntuでアバター製作を行えるなら、Unity3DとVRChat SDKでの作業が可能かどうか確立する価値があると思いました。

環境とソフトウェア

  • Ubuntu 18.04.3 LTS (64bit)
    • Intel Core i3-6100
    • Radeon RX480
  • Unity Hub 2.2.2
  • Unity3D 2017.4.28.f1
  • VRChat SDK 2019.09.18.12.05_Public

執筆時点では、「VRChatが採用するUnity3Dのバージョンがもうすぐ2018になる」という声がチラホラ聞こえます。
今回利用するバージョンは2017系ですが、2018系で特に大きな変更があれば追記します。

Unity Hubとは

ゲームエンジンとしてのUnity3Dは説明する必要はないでしょう。
Unity Hubは、Unity3Dのバージョンを管理するためのソフトです。

今回、私はUnity3Dのインストールだけを考えていましたが、Unity3Dには複数のバージョンが並行して存在し、さらにバージョンを上げることが”必ずしも正解ではない”という情報を知りました。
Unity Hubでバージョンを管理する(トラブルが発生した際にはバージョンを下げる等)機能は今後も利用するメリットがあると判断し、Unity Hubを経由してUnity3Dを導入する方法を採用しました。

Unity Hubの導入と起動

Unity3Dの公式ページからUnity Hubをダウンロードします(図1)。
Ubuntu環境からアクセスするとOSが自動判別されたのか、appimage形式のファイルがダウンロードされます。

Unitu3D公式サイトのダウンロードページ
Fig1. Unitu3D公式サイトのダウンロードページ

保存したappimage形式のファイルを実行するには、「プログラムとして実行」を有効化する必要があります。
右クリックメニューからプロパティを開き、パーミッションタブから有効化します(図2)。
チェックを入れたら、ファイルをダブルクリックすることでUnity Hubが起動します。

起動する際に「システムとUnity Hubを紐付ける(?)かどうか」と、利用規約が表示されます(図3)。

appimageのファイルプロパティ
Fig2. appimageのファイルプロパティ
Unity Hubインストール時のアラート
Fig3. Unity Hubインストール時のアラート

Unity Hubでの操作

Unity HubのUIはシンプルな見た目と機能を提供してくれます(図4)。
サイドメニューにはプロジェクトの管理とチュートリアル、それとUnity3Dとモジュールの追加を管理するインストール項目があります。
歯車アイコンでUnity3Dのインストール先の変更や言語、ライセンスの管理ができます。
人型アイコンは、ログインするとユーザー名の一部に変わります。

Unity Hub(2.2.2)の画面
Fig4. Unity Hub(2.2.2)の画面

私は紆余曲折で、インストールに成功する前にUnity IDの取得とライセンスの認証を行いました。
そのため、この二つを抜きにしてインストールを進める手順は保証できません。
(他の解説で手順が明確になっているなら、そちらも参考にしてください)

Unity IDの取得

まずは、IDの取得とライセンスの認証を行っていきます。

Unity IDの取得はWebブラウザで公式サイトに移動しても可能です。
Unity Hubからアクセスするには、人型アイコンをクリックしてメニューを表示します。

「Unity IDでサインイン」画面が別ウィンドウで開きます(図5)。
「Unity IDをお持ちでない場合、こちらでIDを作成してください」のリンクをクリックします(図6)。
「Unity IDアカウントを作成」画面に切り替わりますので、必要な項目を入力します。

Unity Hub上のサインイン画面
Fig5. Unity Hub上のサインイン画面
Unity Hub上のアカウント作成画面
Fig6. Unity Hub上のアカウント作成画面

ユーザーネームとフルネームについてUnityIDでは「ユーザーネーム」と「フルネーム」を聞かれます。
ユーザーネームはコミュニティで表示されるようです。
フルネームは業務かつ複数人での開発ではないので、ユーザーネームと同じハンドルネームにしました。

登録情報を送信すると、登録したメールアドレスに認証するためのメールが届きます。
多くのWebサービス同様に、リンクをクリックして認証しましょう。
Unity Hubに戻って、メールアドレスとパスワードを入力すればログインの完了です。

ライセンスの認証

Unity3Dの利用には、いずれかのライセンスが必要になります。
今回はUnity3Dを触るだけなので”Unity Personal”ライセンスを申請します。

ライセンスを管理する画面にアクセスするには、歯車アイコンをクリックし、サイドメニューの「ライセンスの管理」を選択します。
「新規ライセンスの認証」ボタンをクリックし、モーダルウィンドウ(グレー背景の前面に表示されるもの)の選択肢から”Unity Personal”かつ、「Unityを業務に関連した用途に使用しません。」を選択して実行します(図7)。

Unity Personalライセンスの申請
Fig7. Unity Personalライセンスの申請

Unity3Dのインストール先について

必要であればインストール先を変更してください。
歯車アイコンで「環境設定」を開くと、「一般」の項目からUnityエディターの保存先を選択できます(図8)。

Unityエディターとは
Unity3DとUnityエディターの違いは何か迷いました。Unity3D本体の呼び方なのか疑問でしたが、保存先の変更がUnityエディターしかないので「保存先=Unity3Dのインストール先」とみていいでしょう。

「Unityエディター」は、2D/3Dゲーム開発環境「Unity」に含まれているエディター。Windows/Macに対応しており、入門者向けの“Unity Personal”エディションならば無償で体験することができる。なお、日本語化に対応した「Unityエディター」は「Unity 2018.1」以降に含まれているバージョンとなるので注意したい。

「Unityエディター」が日本語に対応 ~多言語対応をプレビュー公開 – 窓の杜
Unityエディターの保存先の変更画面
Fig8. Unityエディターの保存先の変更画面

保存先のパーミッションによるインストールの成否
Windows環境なら、インストール先は定番の”Program Files”でしょう。
もちろんUbuntuにもアプリケーションを格納しておくべき場所が存在しますが、今回は思った通りにインストールできませんでした。

通常、Debianパッケージ(.deb)等では”/usr/bin”、Google Chromeなどのサードパーティ製のアプリは”/opt”にインストールされます。
私はUnity3Dを(それなりに大きいソフトなので)”/opt”ディレクトリにインストールしようとしましたが、自分のユーザアカウントでは管理者権限(パーミッション)で弾かれてしまいました。
(この場合、プログレスバーは進みますが、何もインストールされません。ディスク容量も消費しません。せめてエラーを出してほしい)

自分のユーザアカウントが自由にできる範囲(保存先を空欄)にインストールすると、Homeディレクトリ内に”Unity > Hub > Editor > 2017.4.28f1″という階層が作られました。
(Unity Hubのappimageを管理者権限で実行できれば可能かもしれません。私はappimageをコマンドで実行しようとしましたが、「コマンドが見つかりません」とエラーを返されたので諦めました)

Unity3Dのインストール

サイドメニューのインストールの画面に切り替えると、(何もインストールしていなければ)「Unity バージョンがありません」と表示されます。
(すでにインストールしてあるバージョンは、Unity Hubに追加・管理することができます。)

どのバージョンをインストールするか

右上の「インストール」ボタンをクリックすると、Unity Hubではいくつかのバージョンが候補として表示されます(図9)。
ゲーム開発などでUnity3Dをインストール場合は、任意のバージョンを選びましょう。

インストールの候補で表示されるUnity3Dのバージョン
Fig9. インストールの候補で表示されるUnity3Dのバージョン

LTSとは、”Long Term Support”の略称で、長期サポートという意味です。
次のバージョンやアップデートがリリースされる一方で、大きな変更を加えずに安定した環境を提供します。

Ubuntuの利用者は、LTSに馴染みがあるでしょう。
例えばUbuntuは半年ごとに新しいバージョンがリリースされますが、2年に一度のタイミングでLTS版がリリースされます。
例)Ubutnu 16.04 LTS → 16.10 → 17.04 → 17.10 → 18.04 LTS

VRChat SDKが動作するバージョンは告知されており、そのバージョンを利用するのが確実です。
2019年10月頃(Updated 2 months ago)のドキュメントでは、”Unity 2017.4.28f1″が記載されています。

「”Unityの正しいバージョンをインストールすることがとても重要です。”」
「”Unity 2017.4.28f1をインストールしていることを確実にしてください。”」
「”そうでないと、アップロードしたコンテンツ(VRChat SDK?)はアプリケーションに表示されません”」

It is very important that you install the correct version of Unity. Ensure that you are installing and using Unity 2017.4.28f1, otherwise content that you upload will not be visible in the application.

Setting up the SDK

このバージョンはUnity Hubが表示する候補に入っていませんが、ドキュメント内のリンクをクリックすることで”xdg-open”によってUnity Hubのインストール画面に進みます。

「”もしUnity Hubをインストール済みなら、ココをクリックするだけで適切なバージョンをインストールできます。”」

If you have Unity Hub installed, you can just click here to install the proper version.

Setting up the SDK

(Unity公式サイトからもダウンロードすることができます。Webページの「(DLアイコン)Unity Hub」ボタンを押すことで「xdg-openを開きますか?」と聞かれます(図10))

xdg-openとは
指定したファイルを開こうとしたときに、そのファイル形式に該当するアプリケーションで開くコマンドです。
今回はブラウザ上のリンクをクリックした際に、Unity3DのパッケージがUnity Hubで開かれてインストール画面に進んだと言えます。

「xdg-open」は指定したファイルをデフォルトアプリケーションで開くコマンドです。デスクトップ環境でファイルのアイコンにダブルクリック操作をした場合と同じように、デフォルトアプリケーションを起動します。

【 xdg-open 】コマンド――ファイルをデフォルトアプリケーションで開く:Linux基本コマンドTips(310) – @IT
WebブラウザからダウンロードしたパッケージをUnity Hubに受け渡す
Fig10. WebブラウザからダウンロードしたパッケージをUnity Hubに受け渡す

Unity Hubでインストールしようとすると、「Unity バージョンを加える」というタイトルのモーダルウィンドウが開きます(図11)。
コンポーネンツ(ドキュメント、アセット、サンプルプロジェクト)や、特定の環境向けにゲームをビルドするためのモジュールを選択できます。
また、インストール先の保存可能なディスク容量が表示されます。何も選択しない場合でも、3.5GBのディスク容量が必要になります。

今回はどれも選ばずにインストールをします。本格的にゲーム開発をするなら、各モジュールが必要になってくるでしょう。

Unity3Dインストール時のモジュール追加画面
Fig11. Unity3Dインストール時のモジュール追加画面

日本語化について その1
通常、Unity3Dの日本語化はこの段階で行えます。
ただし、日本語化が可能になったのはバージョン5.4もしくは、”2018.2.0b9″からで、今回利用する2017系ではモジュールのリストに”Language Pack”の項目が存在しません。

今回利用する”2017.4.28f1″しか見ていなかったので気づかなかったのですが、Unity Hubが提示するバージョンでも2017系ではLanguage Packは存在せず、2018系にはありました。
今後、VRChat SDKが2018系の対応に切り替わるという話がありますので、その際は日本語化できるのではないでしょうか。

Unity EditorのPreferenceに追加される「Language」の項目を有効化することで,言語ファイルを読み込み,エディタが日本語化される様が示された。メニューなどの各部も日本語化されている。日本語化されたUnity Editorは5.4のいずれかのバージョンで実験的に公開されていく見込みだとのこと。

[Unite 2016]新世代Unity 5.4でゲーム制作環境はどう変わるか? 最新機能を総まとめしたUnite 2016 Tokyo基調講演レポート – 4Gamer.net

日本語化について その2
WindowsとMac環境では、特定のフォルダに拡張子が「po」の翻訳ファイルを置くことで日本語化が可能のようです。
ですが、Ubuntuではそのフォルダ階層が存在しない(もしくはたどり着けない)ため、この手法を断念しました。

インストール中は、カード型のUI上でプログレスバーが進んでいきます(図12)。
完了すると、薄いグレーだった文字やロゴが黒くなります。

インストール中:プログレスバーが進行し、テキストはグレー
Fig12. インストール中:プログレスバーが進行し、テキストはグレー

Unity3Dの起動

プロジェクトの作成

インストールが完了したら、サイドメニューの「プロジェクト」からUnity3Dを起動する準備をします。
テンプレートは「3D」、プロジェクト名にはわかりやすい名前を付けましょう(図13)。
保存先は、初期値(インストール先の下階層)でいいでしょう。

新規プロジェクトの作成画面
Fig13. 新規プロジェクトの作成画面

プロジェクトを作成すると、Unity3Dのスプラッシュ画面が表示され、ライブラリの読み込みが行われます(図14)。
Unity3Dを知っている人なら一度でも見たことがある画面が表示されたら、起動は完了です。

次は、VRChat SDKの入手とインポートを行っていきます。

Unity3Dの起動画面
Fig14. Unity3Dの起動画面

VRChat SDKのインポート

VRChat SDKをダウンロードするには、VRChatアカウントが必要です。
Steamのアカウントでもログインはできるようですが、制作したアバターやワールドをアップロードできないようです。

既にアカウントを持っている人は、VRChat SDKのダウンロードに進んでください。

VRChatアカウントの取得

VRChat公式サイトの”LOGIN”ボタンをクリックして、ログイン画面に移動します。
“Login”タブの隣にある”Registration”タブに移動して、必要事項を入力して”Create Account”ボタンで送信します(図15)。
“Username”以外は特に気にせずに、確実な情報を入力しましょう。
“Username”はVRChat上でアバターの上に表示されます。

実際にアバター上に表示されるのは”DISPLAY NAME”ですが、アカウントを登録した時点の”Username”が設定されていました。
“DISPLAY NAME”は3ヶ月に1回の制限がありますが変更可能です。
なので、「”Usename”をハンドルネーム、”DISPLAY NAME”をキャラクターの名前」という使い方もできそうです。

VRChatアカウントの作成画面
Fig15. VRChatアカウントの作成画面

メールを受け取ったら、リンクをクリックして登録を完了させましょう。

VRChat SDKのダウンロード

取得したアカウントでVRChatの公式サイトにログインします。
(ユーザーネームでログインできない場合、代わりにメールアドレスを入力することでログインできるかもしれません。)

ログインしたら、(ブラウザの幅が充分にあれば)サイドメニューが表示されます(図16)。
サイドメニューの”Download” > “Download VRChat SDK”ボタンをクリックするとダウンロードのダイアログが表示されます。
(12月26日現在の)ファイル名は”VRCSDK-2019.09.18.12.05_Public.unitypackage (7.45MB)”でした(図17)。
(ブラウザでのファイルの扱い方によっては、自動でダウンロードを開始する場合があります)

ダウンロードが終了したら、Unity3Dへのインポートに進みます。

VRChat Webサイトへのログインとサイドメニュー
Fig16. VRChat Webサイトへのログインとサイドメニュー
SDKのダウンロードダイアログ
Fig17. SDKのダウンロードダイアログ

Unity3Dへのインポート

当然ながらUnity3Dを起動しておきましょう。
メニューバーの”Assets” > “Import Package” > “Custom Package”を実行します(図18)。

Unity3DでVRChat SDKをインポートする
Fig18. Unity3DでVRChat SDKをインポートする

ファイルダイアログが表示されるので、保存したVRChat SDKを指定して開きます。
“Import Unity Package”という別ウィンドウが開いたら、すべての項目にチェックが入っていることを確認して”Import”ボタンをクリックします(図19)。
(私の場合、何もしなくてもすべての項目にチェックが入っていました)

VRChat SDKのインポート画面
Fig19. VRChat SDKのインポート画面

SDKのインストールには少し時間がかかりました。
CPU使用率も一時的に高くなります。

途中、「Unityの応答がありません」とアラートが表示されましたが、「待つ」選択肢を選んで1分ほど経ったところでVRChat SDKのウィンドウが表示されました(図20)。
このウィンドウは閉じてもOKです。

インポート完了時に表示されるウィンドウ
Fig20. インポート完了時に表示されるウィンドウ

VRChat SDKのインポートが完了すると、メニューバーの”Component”と”Window”の間に”VRChat SDK”が表示されます。

使用しているバージョンによってメニューの内容が異なります。
VRChatアカウントでログインするためには”Show Control Panel”を実行します。
(古いバージョンでは”Settings”という項目が存在し、ログインするためのウィンドウを呼び出していました)

これでUnity3DへのSDKのインポートは完了です。
Ubuntu環境でもUnity3DおよびVRChat SDKの導入は可能であると実証できました。

番外:Ubuntu環境でどこまで作業できるか

私がWindows環境でもないのにUnity3DとVRChat SDKを導入したのは、製作途中のアバターのボーン(Humanoidのリグ)を確認したかったからです。
番外編と称して、アバター製作をどこまで行えるのか試してみました。
作業工程はおおよそ、投稿された解説動画に沿っています。

FBXファイルを用意する

Blenderで製作途中のアバターを、FBX形式でエクスポート(図21)。
(本来はまだ先の工程なので調べるべきこと(単位をメートル法にするなど)があるかもしれないが、流し読みで可能な設定だけを施した)

  • 「FBX単位スケール」にする
  • 「前方」を「-Zが前方」にする
  • 「上」を「Yが上」にする
製作途中のアバターをFBX形式でエクスポートする
Fig21. 製作途中のアバターをFBX形式でエクスポートする

Humanoidリグのチェック

◆Ubuntu環境でも可
FBXファイルをエクスポートしたら、Unity3Dの”Assets”(画面下部分)のエリアにファイルをD&D。
(課題1:テクスチャ画像も放り込むが、アイコンが灰色のモデルのままだったりする。手順が曖昧)

  • 放り込んだファイルアイコンをクリックすると、画面右のエリアに”Inspector(インスペクター)”のタブと内容が表示される。
  • 4つ並んだボタンから”Rig”を選択し、”Animation Type”をプルダウンメニューから”Humanoid”を選択。
  • “Apply”ボタンの次に”Configure”ボタンをクリック。
    HumanoidリグのUIが表示され、Unity3D中央のエリアにアバターが表示される。ボーンはすべてみどり色(適切)だったので、”Done”ボタンで完了する(図22)。

(課題2:執筆の検証のために再度FBXを放り込むところからやり直しところ、”Apply”ボタンを押したあとに”Humanoid”ではなく”Generic”に切り替わったり、オールグリーンだったリグが真っ赤(不適切な状態)になったりした。
スクリーンショットは初回の成功時のもの)

VRChat SDKでHumanoidリグをチェックする
Fig22. VRChat SDKでHumanoidリグをチェックする

アバター化の設定

◆視点の設定ができなかった。失敗。

  • “Assets”に放り込んだアバター(FBX)を、画面左の”Hierarchy(ヒエラルキーウィンドウ)”にD&D。
  • 画面右のインスペクターウィンドウにある”Add Component”ボタンをクリック。
  • 階層メニューの中から、”Scripts” > “VRCSDK2” > “VRC_AvatarDescripter”を選択。”Default Animation Set”のドロップダウンメニューから性別を選ぶ。

視点を決めるための「灰色のボール」が表示されず(どこにあるかわからず)挫折。

シェーダーの設定

◆失敗。”Assets”に”Material”フォルダがなく設定できなかった。
(シェーダーはUnity3D (VRChat SDK)上で選ぶだけだと聞いていたが、Blender上で作らないとダメか?)

  • “Assets”内の”Material”フォルダを開き、マテリアルを選択。
  • インスペクターウィンドウで、”Shader”の項目をドロップダウンメニューから”Unlit” > “texture”を選択。

アバターが未完成だったせいか、”Material”フォルダがなかったので実行できず。

アバターの登録とアップデート

◆失敗。UbuntuではVRChatが利用できない(インストールしていない)ため、ビルドができなかった。

バージョンによる手順の差異

  1. メニューバーの”VRChat SDK” > “Show Build Control Panel”を実行
  2. ログイン状態で”Build & Publish”ボタンをクリック
  3. アバターの登録画面に進み、項目を入力してアップロード

バージョンが新しいためか、”Show Build Control Panel”メニューは存在しなかった。
おそらく代わりになるのが”Show Control Panel”(図22)。
表示されたウィンドウには”Authentication”, “Builder”, “”Content Manager”, “Settings”のボタン(タブ?)が備えられている。

“Builder”ボタンで切り替えたUIには”Build & Publish”ボタンがあるが実行できなかった
(ボタンを押してもUbuntu環境のせいか、一瞬だけ「〇〇(Username)でログインしています」と表示されるだけ)

VRChat SDKのバージョンによってメニューの項目が異なる
Fig22. VRChat SDKのバージョンによってメニューの項目が異なる

結果として、アバターの登録とアップロードは出来なかった。

あとがき

VRChatに対応していないと、アバター製作は早々に限界を迎えると判断しました。
Blenderで製作途中のボーンがHumanoidリグとして適切に読み込まれたことは収穫でしたが、製作途中がゆえに進められなかった工程は残念でした。

Unity3DはLinux向けにゲームを出力することが可能ながら、「Ubutnuではインストールできない・あるいは難しい」という時代がありました。
それはappimageを介してUnity Hubという形で簡単にインストールできるようになったと言えます。

「Unity3Dが導入できるなら、VRChat SDKも動かせるのではないか」という予想はその通りでしたが、わざわざUbuntu環境で行う必要はないでしょう。
せいぜい出来るのはBlenderでのモデリングとセットアップ、それとGimpとKritaでテクスチャを描くことくらいでした。
ゲームのクロスプラットフォーム化が進み、UbuntuでもVRChatが動作するときが来てほしいと思います。

■タイムスタンプ
誤字脱字などの連絡にどうぞ。