TOP

ただいま開発中です

フォローはどうぞお気楽に!

SoundCloud (ゲームBGM集)

PC Games List

PSMゲーム
Bloodred Wyvern (ブラッドレッドワイバーン)
Bloodred Wyvern 2

その他
PlayStation®Mobile関連リンク集
PlayStation®Mobile学習日記
PlayStation®Mobile SDK備忘録

XBLIG
BLASTER AND AMETHYST
BLASTER AND MORION
LEUCISTIC WYVERN
Bioerosion
URGENT EVASION 360
The Undead Syndrome / TUS 2
Dark Storm Blast 360

その他
Making Of The Undead Syndrome[3DCG]
Making Of The Undead Syndrome2
XNA関連リンク集

ブラウザゲーム
発火少年の地面焦がし
MAGICAL METEOR SHOWER

メタセコイア備忘録
東日本大震災(Aftermath of the 2011 Tohoku earthquake and tsunami)

ムカゴソフトウェア開発
e-mail:cqp00202@nifty.ne.jp

本サイトはリンクフリーです。
バナーはこちらをご使用下さい。

PSM学習日記Top

プログラムをAndroid端末で実行すると、スプライトやテキスト(フォントの描画)の位置がズレてしまう

グラフィクスコンテキストを作成する際に、スクリーンの幅(width)、高さ(height)を指定していない。
そのせいで、ディスプレイ解像度の異なるデバイスで実行すると、スプライトやテキストがスクリーンのアスペクト比に合わせた位置に描画されない。

解決方法

グラフィクスコンテキストを作成する際、コンストラクタのパラメータにスクリーンの幅(width)、高さ(height)を指定する。

graphics = new GraphicsContext (960, 544, PixelFormat.None, PixelFormat.None, MultiSampleMode.None);

960 x 544 は、PSVitaの解像度。

○ボタン、×ボタンが反応しない

SDK付属サンプルの「GamePadSample」を実行してみると分かるが、○ボタンを押した場合、GamePadButtons.Circleだけで無く、GamePadButtons.Backも同時にONに変わる(en-US)。
それと同様に×ボタンを押下すると、GamePadButtons.Crossだけで無くGamePadButtons.Enterも同時にONに変わる(en-US)。
恐らくその影響で、「if (gamePadData.ButtonsDown == GamePadButtons.Circle)」や「if (gamePadData.ButtonsDown == GamePadButtons.Cross)」の条件式が成立することがないと思われる。(苦笑)

解決方法

SDK付属サンプル「SpaceRocksDemo」参考。

if (gamePadData.ButtonsDown == GamePadButtons.Circle){ ... }

if ((gamePadData.ButtonsDown & GamePadButtons.Circle) != 0){ ... }

if (gamePadData.ButtonsDown == GamePadButtons.Cross){ ... }

if ((gamePadData.ButtonsDown & GamePadButtons.Cross) != 0){ ... }

のように記述する。

スプライトの描画処理がボトルネックとなっている

サンプル用ライブラリ「SampleLib」の「SampleDraw.DrawSprite()」を利用してスプライトを描画している場合、スプライトを1個描画する度に、処理時間の掛かるDrawArrays()を呼び出すので、スプライト数が多いとボトルネックとなってしまう。

PSMシミュレータでプログラムを実行した場合、突然シミュレータが停止してしまうことがある(SampleDrawを利用している付属サンプルでも発生する)。
Android端末でプログラムを実行した場合、GCが頻繁に発生してゲームにならなかったり、フリーズする恐れがある。

解決方法

DrawArrays()の呼び出し回数を減らす。
DrawArrays()は、全てのスプライトの描画で1回だけ呼び出すようにするのが理想。

チュートリアル用ライブラリ「TutoLib」の「SpriteB」は、複数のスプライトの描画をDrawArrays()1回の呼び出しで行うので非常に効率的。
詳細は、Sample09_01参照。

PSVita側のPSM Development AssistantのターゲットバージョンがPSM SDKのバージョンと相違しているせいで、プログラムをPSVitaへ転送できない

PC側のPSM SDKをバージョンアップしただけでは、PSVitaにインストールしているPSM Development Assistantのターゲットバージョンが更新されない。
バージョンが相違しているせいで、プログラムをPSVitaへ転送できない。

解決方法

PSVita側のPSM Development Assistantを起動する。

スクリーン右下の「...」を選択する。

「Debug Settings」を選択する。

「Switch Development Assistant」を選択する。

PSM Development Assistantのバージョンを切り替えるか確認してくるので、「OK」を選択する。

新しいバージョンのPSM SDKのインストールに失敗して、それ以降、インストールできない

PSM Studio終了後も、PSM Device.exeというプロセスが残ったままになることが多々ある。
その状態で、PSM SDKをアンインストール、新しいバージョンのPSM SDKをインストールすると、それが途中で失敗してしまう。
PSM SDKのアンインストールは、普通に(何事もなかったかのように)終了する。
それ以降、PSM SDKがインストールできなくなる。

PSM SDKをバージョンアップする前に、タスクマネージャーを起動して、PSM Device.exeというプロセスが残っていないことを確認する。
または、一旦、Windowsを再起動してから、その作業を行う。

PCシミュレータ上でDUALSHOCK 3を使いたい

Windows 7の場合・・・

DUALSHOCK 3をPCにUSB接続する。

コントロールパネルを開く。

デバイスマネージャーを開く。

ヒューマンインターフェイスデバイスをダブルクリックして、デバイスをリストアップする。

その中にある「USB 入力デバイス(大抵、複数存在する)」の中から、ハードウェアIDに、文字列「USB\VID_054C&PID_0268」が含まれているデバイスを調べる。

ハードウェアIDの調べ方

「USB 入力デバイス」を右クリックしてプロパティを選択する。

プロパティウインドウの中にある[詳細]タブを選択する。

ウィンドウの中にある「プロパティ」の中から、「ハードウェア ID」を選択する。

ハードウェアIDに、文字列「USB\VID_054C&PID_0268」が含まれていた場合・・・

[ドライバー]タブを選び、[ドライバーの更新]ボタンをクリック。

「コンピューターを参照してドライバーソフトウェアを検索します(R)」を選択する。

参照するパスは・・・
Program Files(x86)\SCE\PSM\tools\driver\sixaxis_driver


PSM学習日記Top

ムカゴソフトウェア開発
MUKAGOSOFTWARE DEVELOPMENT
e-mail:cqp00202@nifty.ne.jp
PlayStation®Mobileプログラミングの落とし穴
〜 様々なデジタルコンテンツを制作しています 〜
MUKAGOSOFTWARE DEVELOPMENT