libmsの概要
libmsとは?
libmsは、Message Studioが出力するリソースファイルを読み込み、 ゲームソフトがテキスト情報を取得できるようにするためのAPIを提供するライブラリです。 このlibmsを利用することでゲーム開発者はMessage Studioが出力したデータを容易にアプリケーション側からアクセスすることが可能になります。 このライブラリはC言語のみで作られています。
このライブラリは、メッセージバイナリファイル(*.msbt)、プロジェクトバイナリ(*.msbp)と、 Message Studioのフローチャートプラグインで提供される機能のひとつ フローチャートバイナリファイル(*.msbf)の読み込みに関する機能を提供しています。
禁止事項
1.このライブラリで読み込み可能なファイルは、 事前に開発者が用意したバイナリファイルに限ります。 UGC(User Generated Contents, ユーザーが作成したデータ)を読み込ませて それをライブラリに処理させることは禁止されています。 そのような利用方法は想定されていないため、 セキュリティホールの原因となる可能性が高いことが理由です。 また、バイナリ化されたリソースは情報が暗号化されないので ユーザー側で容易に情報を抜き出すことが可能になってしまう場合もあります。
2.このライブラリはマルチプラットフォームで動作するように設計されていますので、 原理的にはコンパイル作業を行うことで ある程度さまざまな機械の上で動作させることが可能です。 ただし、このライブラリを組み込むことが認められているソフトウエアは、 特別に認められた場合を除いて、 任天堂が提供するプラットフォーム上で動作したり、 またはそれの制作を補佐するためのライブラリやツールに限ります。 また、任天堂が提供するプラットフォームにて動作する アプリケーションを作成する場合は、 それに対する正規の開発ライセンスを保持している必要があります。
注意事項
1.このライブラリで読み込み可能なバイナリファイルは、 エンディアン設定を正しく行う必要があります。 対象とされるプラットフォームとは違うエンディアン構造のリソースファイルをロードしようとすると、 そのタイミングでアサートに失敗します。
2.libmsをビルドシステムに静的リンクで組み込む場合、 必ずコンパイラのバージョンおよびSDKのバージョンが一致しているかどうかを確認してください。 異なるバージョン同士のものをリンクすると予期せぬ動作を起こす場合があります。
3.必ずMessage Studioに添付されているlibmsを利用してください。 利用するMessage Studioと異なるバージョンのlibmsを利用しての 動作保証はいたしません。
4.デバッグ作業は綿密に行ってください。 libmsが正常に動作するかの確認テストは行われていますが、 すべてのパターンで動作することを保障するものではありません。
5.このライブラリはスレッドセーフな設計にはなっていません。 複数のスレッドから同時にアクセスされると内部状態が不安定となる場合があります。 必ず、単一のスレッドからアクセスするか、あるいはロック機構をアプリケーション側で用意してください。
使用方法
includeディレクトリ以下をどこかにコピーするか、追加インクルードディレクトリとしてコンパイラに指定してください。 関数を利用するファイルから以下のように記述します。
#include <libms.h>
その上で、ライブラリのソースコードファイル(.c)をコンパイルするか、すでにコンパイルされているものをリンクしてください。 libmsが提供する関数やマクロはすべて接頭語(プリフィックス)にLMS_が付いていますので、見分ける際はこれを参考にしてください。 LMSおよびlibmsは、Lib Message Studioの略称です。
提供されるファイル
libmsには以下のファイルが含まれます。 プロジェクトチームごとに必要なファイルを選択して利用してください。
ソースコード
C言語のソースコードおよびヘッダファイルが付属します。
チームごとに細かくカスタマイズする必要がある場合には直接ビルドシステムに組み込むことも可能です。
ただし、改変したソースコードはサポートの対象外となります。
また、バージョンアップした際にマージ作業を行う必要がある点に注意してください。
Win32 DLL(ネイティブ)
32bit Windows環境におけるDLL (Dynamic Link Library)ファイルです。
リトルエンディアンのリソースファイルのみにアクセス可能です。
ちなみに、このDLLファイルはMessage Studio本体も直接的に利用してプログラムが出来ています。
DLLファイルは、Windows SDK for Windows Server 2008 and .NET Framework 3.5 SDKにてコンパイルされています。
Wii用静的リンクライブラリ
Wiiで利用可能な静的リンクライブラリ(.a)ファイルです。 このライブラリはCode Warrior for Wii 1.2 (Hotfix 20100105適用済み)および Revolution SDK 3.3を利用してビルドしています。 ビッグエンディアンのリソースファイルのみを取り扱うことが出来ます。
DS/DSi用静的リンクライブラリ
Nintendo DSおよびNintendo DSiで動作する静的リンクライブラリ(.a)です。 このライブラリはCode Warriror for DSi 1.2 patch 2および TWL SDK 5.4 patch 1を利用してビルドされています。 リトルエンディアンのファイルのみを取り扱うことが出来ます。
はじめに
言語設定
メッセージ編集
共通のバイナリフォーマット