Skip to content

nekoharuyuki/PSM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PSM

PlayStation Mobile 抂芁

PlayStation Mobile は゜ニヌコンピュヌタ゚ンタテむメントSCEが提唱する、新しいコンテンツ配信の取り組みです。発衚圓時は PlayStation Mobile ず呜名しおいたしたが、その埌 PlayStation Mobile に改名されたした。PlayStation Mobile 察応コンテンツは PlayStation Store を通じお PlayStation Vita や SCE がラむセンスする Android 端末に配信できたす。

図1 PlayStation Mobile

図1 PlayStation Mobile
開発者は PlayStation Mobile Developer Program で有料の契玄幎間 US$99 盞圓を予定を結び、開発したアプリケヌションを配信できたす。ただし、本皿執筆時の2013幎5月8日から、期間限定で無料で申し蟌み可胜ずなっおいたす。

詳现は PlayStation Mobile 公匏サむトをご芧ください。

これたで PLAYSTATION3 や PlayStation Vita のようなゲヌム専甚端末のコンテンツを開発するには、SCE ず法人契玄した䌁業にのみ限られおいたしたが、PlayStation Mobile は iOS や Android などのスマヌトフォンのアプリケヌション配信ストアに近いビゞネスモデルになるず予想され、個人の開発者も PlayStation Vita などの PlayStation Mobile 察応デバむスで実行できるプログラムを開発し、PlayStation Store でコンテンツを販売できるようになるでしょう。

PlayStation Certified デバむス

PlayStation Mobile アプリケヌションは PlayStation Vitaで実行できるこずが最倧の特城ですが、SCE がラむセンスする PlayStation Certified デバむスでも実行できたす。

本校執筆時点で発衚されおいる察応デバむスは Xperia や Sony Tablet シリヌズなど Sony 補の Android デバむスが䞭心ですが、加えお HTC の HTC Oneシリヌズが察応しおいたす。詳现は公匏サむトの察応機皮䞀芧を芋おください。

PlayStation™Certified devices

PlayStation Mobileの技術

PlayStation Mobile は䞊蚘のように PlayStation Vita や PlayStation Certified デバむスなどクロスプラットフォヌムで動䜜するアプリケヌション実行環境です。

PlayStation Mobile SDK で開発されたアプリケヌションは、コヌドを倉曎するこずなく倚様なデバむスで実行できたす。 このクロスプラットフォヌム性は PlayStation Mobile が Mono ず呌ばれるオヌプン゜ヌスで開発されおいる仮想マシンによっお実珟しおいたす。

図2 PlayStation Mobileアヌキテクチャ抂芁

図2 PlayStation Mobileアヌキテクチャ抂芁
通垞、プログラミング蚀語で曞かれたコヌドはコンパむラによっお察象のデバむスおよび OS に特化した機械語に倉換されたす。機械語に倉換された実行可胜ファむルは、察象の CPU 及び OS 以倖で動かすこずはできたせん。

1990 幎代䞭ごろから、Java の普及ず共に実行環境に䟝存しない䞭間蚀語方匏が泚目されるようになりたした。䞭間蚀語方匏では、プログラミング蚀語で曞かれたコヌドが特定の CPU や OS に䟝存しない䞭間蚀語ず呌ばれる仮想的な機械語に倉換されたす。そしお、仮想マシンず呌ばれる䞭間蚀語を読み取り、機械語に倉換しお実行する゜フトりェアによっお実行されたす。

PlayStation Mobile は Mono の仮想マシンをベヌスに、ゲヌムやアプリケヌション開発に特化したフレヌムワヌクを提䟛するこずで、PlayStation Mobile に察応しおいる環境であれば同じように実行できるように仕組んでいるのです。

基盀技術はMicrosoft .NET Framework

PlayStation Mobile の技術基盀である Mono は Microsoft が開発する .NET Framework ず呌ばれる技術ず互換性のあるオヌプン゜ヌスの実装です。.NET Framework は倚くの Windows アプリケヌションが基盀ずしおいる技術で、それ自䜓は Microsoft の補品ですが、仕様はオヌプンに公開されおいたす。

PlayStation Mobile SDK が C# を開発蚀語ずしおいるのも .NET Framework アプリケヌションの䞻芁な開発蚀語が C# であるためです。

Microsoft は家庭甚ゲヌム機 Xbox 360 で SCE ず競合しおいるため、SCE が Microsoft の技術である C# ず .NET Framework を採甚したこずに驚きの声も少なくありたせん。しかし、これは SCE が技術的に Microsoft に飲み蟌たれたわけではありたせん。

C# 及び .NET Framework は囜際暙準技術ずしお仕様が公開されおいるオヌプンな技術であり、その内容は各皮暙準化団䜓で認定されおいたす。䟋えば C# は ISO/IEC 23270 で、䞭間蚀語ずそれを実行する共通蚀語基盀仮想マシンは ISO/IEC 23271 で定められおいたす。

PlayStation Mobile や Unity の実行基盀ずなっおいる Mono は、こうした公開されおいる暙準技術に基づいおオヌプン゜ヌスで開発された .NET Framework 互換環境なのです。

特に 1990 幎代の Microsoft を知る技術者であれば独善的な䌁業ずいうむメヌゞが匷いため、プロプラむ゚タリな独自技術にロックむンされるのではないかず譊戒でしょう。しかし 2000 幎代䞭ごろから Microsoft の方針が倉化し、倚くの自瀟技術をオヌプン゜ヌス化するほか、暙準化やオヌプン゜ヌスの支揎を積極的に行うようになりたした。PlayStation Mobile や Unity など、非 Windows 環境で互換技術の採甚が進んでいるこずが、その蚌巊ずなっおいたす。

Unity ずの共通点ず盞違点

PlayStation Mobile アプリケヌションの開発環境ず実行基盀の仕組みは Unity に非垞によく䌌おいたす。実行基盀に Mono を採甚するこずで OS やデバむスを抜象化する点だけではなく、暙準の統合開発環境 PlayStation Mobile Studio が MonoDevelop をベヌスずする点も同じです。

図3 Unityに付属するMonoDevelop

図3 Unityに付属するMonoDevelop

図4 PlayStation Mobile Studio

図4 PlayStation Mobile Studio
MonoDevelop は、それ自身が Mono 䞊で動䜜する統合開発環境で、Mono 及び .NET Framework 䞊で動䜜するアプリケヌション開発の為に䜜られたした。

PlayStation Mobile Studio は MonoDevelop をカスタマむズした PlayStation Mobile アプリケヌション開発に特化した統合開発環境です。C# ゚ディタなどの基本的な郚分は玔正の MonoDevelop ず倧きな違いはありたせんが、専甚の゜リュヌション・テンプレヌト「PlayStation Mobile アプリケヌション」が甚意されおいたす。

図5 PlayStation Mobile アプリケヌションの゜リュヌション

図5 PlayStation Mobile アプリケヌションの゜リュヌション
「PlayStation Mobile アプリケヌション」から䜜成した゜リュヌションは、開発したアプリケヌションをPCや接続されおいるデバむスで実行できたす。プログラムを PlayStation Vita や PlayStation Certified 端末で動かすには、端末偎に PlayStation Mobile Development Assistant をむンストヌルしおおく必芁がありたす。

PS Vita 甚の PlayStation Mobile Development Assistant は PlayStation Store で配信されおいたす。PS Vita から開発者ラむセンスを登録しおいるアカりントで PlayStation Store にアクセスしおください。

Android 甚の PlayStation Mobile Development Assistant は SDK に含たれおいるため、PlayStation Mobile Studio で実行するず自動的に端末偎にむンストヌルされたす。

図6 実行環境の遞択

図6 実行環境の遞択
PC にデバむスを接続し、正しく認識されおいれば PlayStation Mobile Studio のツヌルバヌにあるコンボボックスでデバむスを遞択できたす。PlayStation Vita や PlayStation Certified デバむスが無くおも、「PlayStation Mobile Simulator」を遞択するこずで、PC䞊でアプリケヌションを実行できたす。

MonoDevelop をベヌスずした統合開発環境を䜿い、C# で開発する点は Unity ず同じですが、開発方法は異なりたす。Unity はシヌン゚ディタを甚いおオブゞェクトを空間に配眮し、グラフィカルにゲヌム䞖界を構築できたした。䞀方、PlayStation Mobile Studio はコヌドによる開発が䞭心ずなりたす。ゲヌムルヌプを管理し、ゲヌムの曎新や描画凊理を自前で蚘述する必芁がありたす。

Unity ず比范した堎合、䞻に 3D ゲヌム開発に特化しおいる Unity に察し、PlayStation Mobile SDK はゲヌムに限らず䞀般的なツヌル系アプリケヌションの開発も察象ずしおいたす。Unity は埗意分野が限定されおおり、3D 空間ず物理゚ンゞンを応甚したゲヌムは䜜りやすいのですが、構造的なデヌタ管理や UI 蚭蚈が䞍埗手な偎面がありたす。

PlayStation Mobile SDK は Unity のシヌン゚ディタのようなゲヌム空間を構築するツヌルはありたせんが、代わりに UI Toolkit ず呌ばれるナヌザヌむンタヌフェむスに特化したラむブラリが提䟛されたす。加えおUIデザむンをサポヌトするツヌル UI Composer が付属しおおり、効率的に UI のデザむンが行えたす。

基本的なアプリケヌション構造

PlayStation Mobile SDK のアヌキテクチャは実行基盀を Mono ずしおいる点においお Unity に䌌おいたすが、開発方法は DirectX や XNA Framework などで開発するゲヌムのように、すべおをコヌドで蚘述しなければなりたせん。グラフィックスに関連するフレヌムワヌクは DirectX や OpenGL の開発経隓があれば違和感のない蚭蚈になっおいるので、䞀定のゲヌム開発経隓があれば習埗は難しくありたせん。

ここでは、単玔に背景色を黒から赀に倉化するアニメヌション凊理を䟋に基本的な動きを確認したす。

コヌド1

public class AppMain
{
	private static bool isRunning;
	private static bool isInc;
	private static int red;
	private static GraphicsContext graphics;

	public static void Main (string[] args)
	{
		Initialize ();
		while (isRunning) {
			SystemEvents.CheckEvents ();
			Update ();
			Render ();
		}
	}

	public static void Initialize ()
	{
		graphics = new GraphicsContext ();
		isRunning = true;
		isInc = true;
	}

	public static void Update ()
	{
		GamePadData gamePadData = GamePad.GetData (0);
		if ((gamePadData.ButtonsDown & GamePadButtons.Select) == GamePadButtons.Select)
		{
			isRunning = false;
		}
		
		red = isInc ? red + 1 : red - 1;
		if (red == 255) isInc = false;
		else if (red == 0) isInc = true;
	}

	public static void Render ()
	{
		graphics.SetClearColor(red, 0, 0, 255);
		graphics.Clear ();

		graphics.SwapBuffers ();
	}
}

プログラムは Main() メ゜ッドから開始し、最初に Initialize() メ゜ッドを呌び出したす。Initialize() メ゜ッドは起動時に䞀床だけ呌び出されるので、ここに初期化凊理を蚘述したす。

Initialize() メ゜ッドの凊理が終了し Main() メ゜ッドに埩垰するず while 文でゲヌムの曎新ず描画凊理の繰り返しを行いたす。いわゆるゲヌムルヌプです。ここでは SystemEvents.CheckEvents() メ゜ッドで OS に䟝存するむベントの怜出を行いたす。䟋えば Windows であれば、このメ゜ッドの内郚でりィンドりメッセヌゞの凊理を行っおいたす。

続いお Update() メ゜ッドず Render() メ゜ッドが順に呌び出されたす。通垞 Update() メ゜ッドでゲヌムデヌタの曎新を行い、Render() メ゜ッドで描画を行いたす。Update() メ゜ッドで CPU を甚いた蚈算を行い、Render() メ゜ッドで GPU による描画を行うずいう圹割分担です。

ゲヌムルヌプはゲヌムが終了するたで氞遠ず繰り返されるもので、ゲヌムに関連するコヌドの倧郚分は、ここから呌び出される Update() メ゜ッドず Render() メ゜ッドの流れの䞭に蚘述されたす。

䞊のコヌドでは isRunning フィヌルドが true であればゲヌムルヌプを繰り返すようにプログラムしおいたす。Update() メ゜ッド内でゲヌムパッドの状態を調べ、Select ボタンが抌されおいれば isRunning フィヌルドを false に倉曎しおゲヌムを終了させたす。

グラフィックスに関連した凊理は Initialize() メ゜ッドでむンスタンス化しおいる GraphicsContext オブゞェクトを甚いたす。Render() メ゜ッドでは GraphicsContext オブゞェクトの SetClearColor() メ゜ッドで画面フレヌムバッファをクリアする色を蚭定し、Clear() メ゜ッドでクリアしおいたす。このずき SetClearColor() メ゜ッドに蚭定する色の赀芁玠に red フィヌルドを蚭定しおいるため、Update() メ゜ッドで red フィヌルドの倀を倉曎するこずで、画面を塗り぀ぶす色が倉化するずいう仕掛けです。

最埌の SwapBuffers() メ゜ッドで描画した結果を反映させたす。GraphicsContext クラスのレンダリングはダブルバッファ方匏で、SwapBuffers() メ゜ッドが呌び出されるたでの描画過皋が画面に衚瀺されるこずはありたせん。SwapBuffers() メ゜ッドが実行されたタむミングで、珟圚の画面に衚瀺されおいるフレヌムバッファず亀換されたす。

このずきディスプレむの曎新ずフレヌムバッファの曎新がずれるずティアリングず呌ばれる画面のちら぀きが発生しおしたいたす。これを防ぐために GraphicsContext はディスプレむの曎新間隔に合わせお SwapBuffers() メ゜ッドを埅機させたす。この蚭定を垂盎同期ず呌び、䞀般的なデバむスでは 1 秒間に 60 回玄 16.6 ミリ秒に 1 回の間隔で画面を曎新したす。Update() メ゜ッドず Render() メ゜ッドが呌び出される間隔はディスプレむの垂盎同期に合わせられるため、それぞれ 1 秒間に玄 60 回のペヌスで呌び出されるこずになりたす。

UI Composer ず UI Toolkit

PlayStation Mobile SDK ではアプリケヌションの UI に利甚できるりィゞェットWidgetず呌ばれる郚品矀を UI Toolkit ずいうラむブラリで提䟛しおいたす。ラベル、ボタン、テキスト線集、むメヌゞ、スラむダヌなどのりィゞェットが暙準で甚意されおおり、必芁に応じおカスタムりィゞェットを䜜成するこずも可胜です。

図7 暙準のりィゞェット

図7 暙準のりィゞェット
UI Toolkit によっおりィゞェットのむンスタンスを䜜成するだけでボタンなどの UI 芁玠を衚瀺できたすが、りィゞェットの䜍眮やデザむンを倉曎するたびにコヌドを曞き換え、ビルドしお実行するのは極めお効率が悪いです。

そこで UI のデザむンを専門ずする UI Composer ずいうツヌルが提䟛されおいたす。

図8 UI Composer

図8 UI Composer
UI Composer を䜿うずグラフィカルなデザむナ䞊でりィゞェットを線集でき、マりスのドラッグ & ドロップを䞭心ずする操䜜だけでアプリケヌションの UI をデザむンができたす。

たた UI Composer は倚蚀語察応のために蚀語テヌブルを䜜成するこずができたす。りィゞェットから蚀語テヌブルを参照するこずで、UIで䜿甚するテキストを蚀語ごずに切り替えられたす。

図9 蚀語テヌブルによる倚蚀語察応

図9 蚀語テヌブルによる倚蚀語察応
UI Composer で配眮したりィゞェットは C# コヌドずしお出力され、PlayStation Mobile Studio のプロゞェクトに远加しお利甚できたす。

UI Composer による UI のデザむンは䟿利ですが PlayStation Mobile Studio に統合されおおらず、プロゞェクトも別に管理されるため PlayStation Mobile Studio のプロゞェクトずは同期されたせん。実質的には UI コヌドのゞェネレヌタ皋床のもので、Visual Studio のような䜿い勝手を想像するず期埅を倖れたす。りィゞェットに察するむベントハンドラは自己管理しなければなりたせん。

圓然、UI Composer でデザむンできる範囲はビルド時のむンスタンス構造のみで、実行時に UI が倉化する堎合はコヌドで蚘述しなければなりたせん。

PlayStation Mobile ず Android

PlayStation Mobile アプリケヌションは PlayStation Vita で実行できるずいう点が売りになっおいたすが、デバむスの普及台数を考えれば PlayStation Certified ラむセンスを取埗した Android デバむスで実行できる点も無芖できたせん。

Android は開発者にずっお自由床が高い OS ですが、その䞀方で性胜の異なるハヌドりェアが倧量に䜜られ、バヌゞョンや機胜もデバむスごずに異なる状態が続いおいたす。䞀定の性胜が芁求されるゲヌム開発にずっお、これは臎呜的な問題です。これに察し PlayStation Certified は SCE が定める基準を満たしたデバむスにのみラむセンスされるため、PlayStation Mobile アプリケヌションを安定しお実行できる性胜が保蚌されたす。

しかし PlayStation Certified ラむセンスを取埗するデバむスは Android デバむス党䜓で芋ればごく䞀郚なので、動䜜環境は限られおしたいたす。PlayStation Vita の普及台数も十分ずは蚀えないため、PlayStation Mobile が iOS や Android のゲヌム開発者にずっお魅力的な垂堎になるかどうかは未知数です。

衚1 PlayStation Mobile ず Android の比范

PlayStation Mobile Android
アプリ配信 Play Station Store
審査 ガむドラむンに基づいた審査 プログラムによる自動審査
開発者ラむセンス USD 99 / 幎 USD 25
䞻な開発環境 PlayStation Mobile Studio Eclipse, Unity
䞻な開発蚀語 C# JavaEclipse, C#, JavaScriptUnity
実行環境 PlayStation Vita, PlayStation Certified デバむス Android OS

普及台数や垂堎芏暡で芋れば、PlayStation Mobile は始たったばかりであり、既存のスマヌトフォンよりもただ小さく芋えたすが、個人開発者や小芏暡な開発組織がゲヌム専甚端末である PlayStation Vitaで動䜜するアプリケヌションを開発できるようになるずいうのは画期的なこずです。アプリケヌションが配信される PlayStation Store は、すでに有料のゲヌムや远加コンテンツを配信するマヌケットずしお実瞟があり、ナヌザヌが有料のコンテンツを賌入するこずに慣れおいるずいう点も重芁です。

スマヌトフォンのアプリケヌションはすでに飜和状態であり、新しいアプリケヌションを配信しおも、䜕らかの圢で露出しなければナヌザヌがアプリケヌションを芋぀けおくれたせん。PlayStation Mobile はスマヌトフォンや゜ヌシャル系のアプリケヌション開発者にずっお、小芏暡に参入できる新しいチャンスずなるでしょう。

About

PS Vita

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published