ページ

2014年6月5日木曜日

Unity for PSMを使って、PS Vita上でユニティちゃんを動かす

Unity for PSMというPS Vita上でUnityアプリケーションを動かす開発環境が今自分の中でアツいです。



公式にもチュートリアルはあるのですが、PSM開発経験のない自分にとってはドキュメントが散らばっていて分かりにくい部分が多かったので、公式のユニティちゃんサンプルを動かすまでに自分がやった手順を備忘録的にまとめてみたいと思います。

PSMとはPlayStation Mobileのことで、PS Vita(とAndroid)向けのゲームエンジンとそのエコシステムを指します。そのエコシステム上で、PSMランタイムとは全く独立した形でUnityランタイムを動かし、Unityで作られたゲームをPS Vitaで動作させるのがUnity for PSMになります。現在Public Preview版が出ていて、今年の夏に正式版のリリースが予定されています。

もともとPSM (PlayStation Mobile)自体もMonoベースのゲームエンジンだったのでUnityを動かす土台はあったということでしょうか?
それでも、自前のゲームエンジンの競合を敢えて個人利用可能な形で公開するというのはなかなかできない決断だと思います。

Unite2014のスライドにPSM、Unity for PS Vita、Unity for PSMの違いがよくまとまって記載されているので、詳しくはそちらをご覧ください。

--

Unity for PSMを用いた開発の手順は、PSM Dev Portalのこのページにまとまっています。基本的にこのページにそってやれば大丈夫なはずですが、ここでは自分が躓いた部分をつらつら書いていきたいです。

このページにもある通り、Unity for PSMで作成したアプリケーションをPS Vita上で動かすためには、PSMデベロッパー登録とPSMパブリッシャーライセンスの取得が必要になります。PSMデベロッパー登録はすぐ完了するのですが、PSMパブリッシャーライセンスの取得には1-2週間程度の審査時間がかかるので、とりあえず申請しておくことをおすすめします。なお、現在PSMパブリッシャーライセンスは無料で取得することができます。

次に、Unity 4.3.4f1PSM ToolSet for UnityをPCにインストールします。Unityは通常のバージョンとは異なり、PSM向けにパッチが当てられたバージョンなので注意してください。

そして、PSM DevAssistant for UnityをPS Vita上にインストールします。これはUnity for PSMで開発したアプリケーションを、PS Vitaでテストする際に必要になるソフトウェアです。アプリケーションをPS Vitaに転送、実行する際にはPSM DevAssistant for UnityがPS Vita上で実行されている必要があります。
※PSM SDK向けのPSM DevAssistantとは別物なので注意してください

インストール自体はPS Storeで検索するか、bit.ly/psmdevappにPS Vitaからアクセスすることでダウンロード可能です。
※PS Vitaに紐付けられたPSNアカウントがDev Portal上でPSMデベロッパー登録されていない場合にはストア上でダウンロードボタンが表示されず、インストールすることはできません。

以上で準備は完了です。

--

公式のサンプルプロジェクト、unity-chan-PSMをダウンロードします。
ファイルを適当なディレクトリに解凍したら、Unity for PSMで開きましょう。初回のロードは少し時間がかかります。

プロジェクトを開いたらユニティちゃんのシーンが自動的に読み込まれると思います。読み込まれなかった場合はAssets/UnityChan/Scenes/Locomotion.unityを開けばいいと思います。
※Locomotion.unityを開いてもシーンが正しく読み込まれない(HierarchyにMainCameraしかない)という状態になったことがあるのですが、ファイルの解凍からやり直したらうまく読み込めました

まずはFile > Build Settingsを開いて、PlatformをPlayStation Mobileに変更します。


次に、Open Publishing Utilityを押して、PSM ToolSet for UnityのPublishing Utilityを開きます。


Publishing Utilityでは、パブリッシャ鍵の管理r、デプロイの際のapp.xmlの設定、デバイスシードの作成、アプリ鍵の作成などを行うことができます。マニュアル操作でPS Vita向けのパッケージを作成する際にはこのあたりの設定を利用することがあるかもしれませんが、ひとまずはパブリッシャ鍵の作成だけを行なっておけばOKです。このあたりの(ややこしい)しくみについてはPSM SDKのこのドキュメントが詳しいです。


パブリッシャ鍵の作成の時に No PSM device found! のようなエラーが出た場合には、PS Vitaとの接続に問題があります。PS Vita上でPSM DevAssistant for Unityを起動した状態でUSBで接続してください。
また、パブリッシャ鍵の作成や認証の際にはSCEサーバとの通信が必要になります。通信に問題がある場合にはプロキシ等の設定が正しいかをファイル > プロキシサーバの設定から確認して下さい。
※一度鍵の作成に失敗したのですが、一度鍵を削除してもう一度作りなおしたらうまくいきました

パブリッシャ鍵の作成が終了したら、Publishing Utilityを終了して、Build And Runを実行します。


このBuild And Runコマンドは非常に優秀で、デバイスシードの作成、デフォルトapp.xmlの読み込み、アプリ鍵の生成、パッケージ生成、PS Vitaへのパッケージ転送、実行までをすべて自動で行ってくれます。2回目以降はこれを実行するだけでPS Vita上でゲームのデバッグ実行が可能になります。

--

[おまけ]

Unity for PSMを使うと、PS Vitaのジャイロと加速度センサの値を、UnityのInput.gyroとInput.accelerationを使って取得することができます。


しかし、地磁気の値についてはInput.compassを用いて取得することができませんでした…
Unite 2014でも地磁気については言及されてませんでしたし、PSM SDKでも取得することができないようなので、もしかしたら地磁気については取得する方法がないのかもしれません…

--

[追記] 2014/06/14

Unity for PSMでCompass APIが利用できないことについてUnityのForumで聞いてみたところ、Public Preview版では利用できないとの回答を頂きました。Unity 5から使えるようになるらしいので、それまで楽しみに待っていることにします。

--

[追記] 2014/07/27

ユニティちゃんライセンス
このコンテンツは、『ユニティちゃんライセンス』で提供されています

2 件のコメント:

  1. > もずちゃんさん
    コメントありがとうございます!
    そう言ってただけるともても励みになりますb

    これからももりもり記事を書いていきますのでよろしくお願い致します?。

    返信削除