Nintendo MessageStudio ヘルプ

# プラグインの種類

このページでは、プラグインを作成して利用することで実際にどのようなことが実現できるのかを述べます。 下記に、プラグインとして実現可能な機能のリストを並べます。

## 追加メニュープラグイン

追加メニュープラグインを利用すると、Message Studioのメニューバーに独自の追加メニューを付け加えることが出来ます。 また、このメニューはプロジェクトエクスプローラなどにも追加可能です。

このような機能をもったプラグインを用意すればユーザーが定型的にやる作業を一つのメニューアイテムとして追加することが出来ます。 たとえば、キャラクターをマップ上に配置する際、条件に応じて話す内容が変化するとします。 そして、この話をする内容に応じてファイルを分割しなければならない仕様だったとして、 キャラクターを追加するごとにファイルを数種類追加していくのは骨の折れる作業です。 このような作業を、メニューアイテムとして定型化して、命名規則に従って自動的にファイルを追加できるように出来ます。

## 追加ツールストリップ

ツールストリップバーをMessage Studioに追加することが出来ます。 ツールストリップバーは、通常のツールバーと同様にボタンを配置することもできますが、 さらにコンボボックスやラベルなどのユーザーインターフェイスを追加することも可能です。 追加メニューと同様に定型処理を実行させる際に利用できます。

## ビルダープラグイン

ビルダープラグインを利用すると、「ビルド」メニューを選択されたときに実行されるビルドプロセスを追加することが出来ます。 このプラグインを追加して設定をすると、定型的に出力するファイルを追加することが出来ます。 たとえば、メモリなどの制約が厳しい状況で、より最適なリソースファイルを出力したい場合に利用可能です。 また、独自の付加情報をリソースファイルに埋め込みたい場合や、ゲームに組み込まない設定資料を作成するなどといったことにも応用できます。

リソースファイルについての概要も、合わせてご覧ください。

## コマンドラインプラグイン

コマンドラインプラグインをプロジェクトに追加すれば、 独自のコマンドラインスイッチを定義することが出来ます。 たとえば、これを利用することで外部から定期的に情報をインポートしたり、削除することが可能です。 また、Makefileなどを利用した実行ファイル作成のときにMessage Studioに独自の処理を挟ませたい場合に利用できます。

この仕組みは幅広い用途で利用可能です。 一例を挙げると、たとえば外部からスペルチェックを行って失敗した場合にROMの作成を停止させることも出来ます。 また、外部のファイル(たとえば、Nintendo Ware for Revolutionに付属しているLayout Editorなど)を元に、 Message Studioのプロジェクトファイルに情報を取り込むことも出来ます。

## コンテンツプラグイン

このコンテンツプラグインを利用すると、Message Studioを使って作業可能なファイルの種類が増えます。 Message Studioはメッセージファイル(mstxt)以外にもさまざまなファイルを扱い、管理することが可能です。 これはすべてコンテンツプラグインの機能によります。 たとえば、フローチャートのためのファイルなどが利用可能です。 また応用すれば外部のスクリプト言語のファイルなどもMessage Studioで扱うことが可能です。

## メタ情報プラグイン

under construction...

## エクスポータープラグイン

エクスポータープラグインを利用すれば、ファイルを外部の別形式に変換して出力することが出来ます。 ここまで聞くとビルダープラグインとあまり変わりはなさそうですが、ビルダープラグインは日常的に常に出力するファイルを設定するのに対して、 こちらのエクスポータープラグインはメニューを選択したときのみ動作するため、レポートを作成したり特定の形式に変換するときに有効です。 たとえば、Adobe ReaderやExcelなどの形式にエクスポートするプラグインがあれば、 社外(たとえば声優さんや、レーティングを検査する機関など)にデータを渡す際にMessage Studioごと渡す必要がなくなります。

## 拡張プロジェクトオプションプラグイン

このプラグインを利用すると、プロジェクトユーザー設定ファイル(mpuo)に追加の情報を出力したり読み込んだりすることが出来ます。 このプラグインはたいてい単体で利用するものではなく、他のプラグインと共に利用し、協働させます。

## 拡張プロジェクトパラメータプラグイン

上記とほぼ同等ですが、こちらはプロジェクトユーザーオプション(mpuoファイル)ではなく、 プロジェクトファイル(msproj)に対して追加情報を読み書きできるプラグインです。

## フォントローダープラグイン

フォントローダープラグインを利用すると、Message Studioが扱うことが可能なフォントの種類が増えます。 独自の2Dレンダリングシステムを利用するチームでは、フォントの情報を独自の フォントローダーを利用して読み出すことでMessage Studioに読み込ませることができます。 Message Studioには標準で、Nintendo Ware for RevolutionとTWL Systemの形式からのフォントローダーが付属しています。

## インポータープラグイン

これはエクスポータープラグインとは逆に、外部のファイルを元にコンテンツファイルに変換してプロジェクトに組み込む機能を提供します。 たとえば、ExcelやCSVファイル、あるいは以前別のツールで作っていた資産を流用する際に利用するとよいでしょう。

## パーミッションプラグイン

新規でパーミッション情報をプロジェクトファイル(msproj)に公開することが出来ます。 このパーミッション情報は、たいてい他のプラグイン機能と一緒に作成して協働させます。 たとえば、追加メニュープラグインによってメニューを作ったが、管理者以外には押してほしくない場合に、 同時にパーミッションプラグインも作成することで、パーミッションの制御を行うことが可能です。

## レンダリング方式プラグイン

レンダリング方式プラグインを利用することで、 ゲーム独自の2Dレンダリングシステムのエミュレーションを行うことが出来ます。 Message Studioには、Nintendo Ware for Revolutionおよび TWL Systemの標準的な利用方法をした場合のエミュレーションシステムを内蔵しています。

レンダリング方式は、スタイル機能と連動して動作するように作成されています。 詳しい解説はこちらにまとめてあります。

## 追加メッセージカラム

このプラグインは、メッセージグリッドに追加の独自カラムを追加することが出来ます。 このプラグインを利用すれば、たとえば定型的な処理を行うボタンなどをユーザーに提供したり、 テキストデータに含まれる情報を別の表示方法で表示するなどが可能になります。

## 空のプラグイン

本体側からは何もされないプラグインを作成することが出来ます。 主な用途は「監視」することです。 Message Studioが何かしらのアクションを起こしたときに発動する処理を、 初期化のタイミングで登録しておくことで、特定の定型処理を実行させたりできます。

## メッセージ編集モード

under construction...

## ウインドウメッセージ受信プラグイン

under construction...

- はじめに
- Message Studioの基礎
  - ゲーム製作のフロー
  - プロジェクトファイルについて
  - プロジェクトエクスプローラの操作
  - ウインドウ操作
  - 言語設定
  - カラーの設定
  - 属性の設定
- メッセージ編集
  - 基本操作
  - テキストの種類
  - クリップボードを利用した操作
  - 言語セルステータス
  - 表示のカスタマイズ
  - メッセージ一覧画面のTips
- タグ
  - 概要
  - タグを用いた編集
  - タグのソース文字列
  - タグ比較について
- 検索機能
  - 概要
  - 簡易検索
  - 詳細検索
  - 正規表現
- スペルチェック
  - スペルチェックについて
  - スペルチェックの利用方法
- ロールとパーミッション
  - 概要
  - ロールの追加とパーミッションの設定
  - ロールの選択
- メッセージの統計情報
  - 統計情報について
  - 統計情報の利用方法
- スタイル機能と幅計算
  - スタイルと幅計算について
  - テキスト幅の全体チェック
  - レンダリング方式について
  - スタイルの設定方法
- フォント
  - フォント機能の概要
  - フォントに関するワークフローについて
  - フォントの設定
- チーム管理機能
  - 概要
  - ファイル管理のされ方
  - チーム管理機能を利用する
  - 基本操作
  - コミットログを表示する
  - 差分(diff)を表示する
  - 競合とマージ
  - プロキシサーバの設定
  - サーバーの設定
- メタ情報の設定
  - メタ情報の設定について
  - 設定可能なメタ情報一覧
- リソースファイル関連
  - リソースについての概要
  - リソースファイルを出力する
  - 出力設定を行う
  - ビルドイベントについて
  - 共通のバイナリフォーマット
  - メッセージバイナリフォーマット
  - フローチャートバイナリフォーマット
  - プロジェクトバイナリフォーマット
    - プロジェクトバイナリフォーマット
    - カラー情報
    - コンテンツ情報
    - 属性情報
    - タグ情報
    - スタイル情報
  - タグについて
- マクロ文字列展開機能
  - マクロ文字列とは
  - 利用可能なマクロ一覧
- コマンドライン関連
  - コマンドライン制御について
  - /convertスイッチについて
- プラグインについて
  - プラグインの概要
  - プラグインの種類について
- プラグインの作成方法
  - 単純なプラグイン作成チュートリアル
  - 開発環境を利用しない作成方法
  - サンプルについて
- Message Studioのアセンブリ設定
  - Caspol：アセンブリセキュリティ設定
  - Ngen：ネイティブイメージ生成
- XML仕様
  - 概要
  - プロジェクトファイル（.msproj）のXML仕様
  - メッセージファイル（.mstxt）のXML仕様
- libmsについて
  - 概要
  - コンパイルの仕方
- 共通の関数
  - LMS_SetMemFuncs
- メッセージに関する関数
  - LMS_InitMessage
  - LMS_CloseMessage
  - LMS_SearchMessageBlockByName
  - LMS_GetMessageBlockInfoByName
  - LMS_GetTextNum
  - LMS_GetTextIndexByLabel
  - LMS_GetText
  - LMS_GetTextSize
  - LMS_GetTextByLabel
  - LMS_GetLabelByTextIndex
  - LMS_GetTextStyle
  - LMS_GetTextStyleByLabel
  - LMS_GetAttributeSize
  - LMS_GetAttribute
  - LMS_GetAttributeText
- フローチャートに関する関数
  - LMS_InitFlowchart
  - LMS_CloseFlowchart
  - LMS_GetNodeNum
  - LMS_GetEntryNodeIndex
  - LMS_GetNodeDataPtr
  - LMS_GetFlowNodeIndex
  - LMS_GetCaseIndexesFromBranchNode
  - LMS_GetFlowParamText
- プロジェクトに関する関数
  - LMS_InitProject
  - LMS_CloseProject
  - LMS_SearchProjectBlockByName
  - カラー情報に関する関数
    - LMS_GetColorIndexByName
    - LMS_GetColor
    - LMS_GetColorByName
    - LMS_GetColorNum
  - コンテンツ情報に関する関数
    - LMS_GetContentsNum
    - LMS_GetContentPath
  - 属性情報に関する関数
    - LMS_GetAttrInfoIndexByName
    - LMS_GetAttrType
    - LMS_GetAttrTypeByName
    - LMS_GetAttrOffset
    - LMS_GetAttrOffsetByName
    - LMS_GetAttrListItemName
    - LMS_GetAttrListItemNameByName
    - LMS_GetAttrNum
    - LMS_GetAttrListItemNum
  - タグ情報に関する関数
    - LMS_GetTagGroupName
    - LMS_GetTagName
    - LMS_GetTagParamName
    - LMS_GetTagParamType
    - LMS_GetTagListItemName
    - LMS_GetTagGroupNum
    - LMS_GetTagNum
    - LMS_GetTagParamNum
    - LMS_GetTagListItemNum
  - スタイル情報に関する関数
    - LMS_GetStyleIndexByName
    - LMS_GetRegionWidth
    - LMS_GetRegionWidthByName
    - LMS_GetLineNum
    - LMS_GetLineNumByName
    - LMS_GetFontIndex
    - LMS_GetFontIndexByName
    - LMS_GetStyleNum
- 扱うファイルの拡張子一覧
- よくある質問