強火で進め

このブログではプログラム関連の記事を中心に書いてます。

PSS SDKでフォントファイルを使う方法

PlayStation Suiteのフォーラムにフォントファイルの読み込みについてのサンプルが書かれていたので試してみました。

FontMap - PlayStation Forum
http://community.eu.playstation.com/t5/Graphics/FontMap/td-p/15931393

使用したフォントは埋め込みで使っても問題無いライセンスの日本語フォント「衡山毛筆フォント」を使いました。

こちらからDLし、ファイル名を KouzanBrushFont.ttf に変更しました。

プログラムは一から作るのもメンドウなので Pss\sample\GameEngine2D\HelloSprite を加工して使う事にしました。

まずはこのソリューションにフォントファイルを追加(ビルドアクションをcontentに変更する or 追加時に変更する必要が有る事に注意)。

次にプログラムを変更します。
HelloSprite.cs を開き、 using で以下を設定。

using Sce.Pss.Core.Imaging;

scene.Camera.SetViewFromViewport(); 〜 #if EASY_SETUP の間を以下の様に記述します。

		scene.Camera.SetViewFromViewport();

		var label = new Label();
		label.Text = "HelloWrold!!";
//		label.Text = "こんにちは世界!!";
					
		label.FontMap = new FontMap( new Font( "/Application/KouzanBrushFont.ttf", 30, FontStyle.Bold ) );
		label.Scale = new Vector2(5f, 5f);
		label.Position = new Vector2(0 ,0);
		label.HeightScale = 0.5f;
					
		scene.AddChild(label);
		
		#if EASY_SETUP

まずは英語の文字「HelloWrold!!」を表示してみます。もちろん、問題なく表示出来ました。

次に日本語を試してみます。 label.Text を "こんにちは世界!!" に変更してみました。結果はこちら。

残念ながら半角で記述した「!」以外は表示されませんでした。
念のためにVita上でも実行してみましたが結果に変化は有りませんでした。

(2012/09/14 追記)
こちらのサイトの情報にて解決しました。

PS Suite:好きなフォントで日本語表示 - Nanashi-soft
http://blog.livedoor.jp/nanashisoft/archives/52547118.html

FontMap を new する時の記述を以下の様に変更しする事で解決しました。

		label.FontMap = new FontMap( new Font( "/Application/KouzanBrushFont.ttf", 30, FontStyle.Bold ), label.Text );

後、 PlayStation Mobile SDK のバージョン0.99が出てたのでバージョンした所、標準ライブラリの名前空間が変わったみたいですね。サンプルコードを見ると Sce.Pss.Core から Sce.PlayStation という記述に変わっていました。

using Sce.PlayStation.Core;
using Sce.PlayStation.Core.Imaging;
using Sce.PlayStation.Core.Graphics;
using Sce.PlayStation.Core.Input;

(追記ここまで)