Nintendo MessageStudio ヘルプ

# よくある質問と答え

## メッセージ編集関連

### カラムの幅を変更して保存しましたが、ファイルの内容が変わっていません。

仕様です。 カラムの幅を変更しても、その内容はmstxtファイルに保存されずに、 別の個人設定ファイルに保存されています。 編集のやりやすい環境は各個人によって違うため、 ファイルを共有したとしても、このような設定情報まで 共有されることがないように設計されています。

## ファイル関連

### データを特定の形式でエクスポートできますか？

メッセージファイル(*.mstxt)などを別の形式でエクスポートして、 Message Studioが扱えない人(例えばデバッグ担当者、声優など)に引き渡す必要がある場合があります。 しかし、データのエクスポートは、ゲームの仕様や渡す相手によって仕様が大きく異なるため、 Message Studioでは標準機能としてデータのエクスポートをサポートしていません。

Message Studioでデータのエクスポートを行うにはプラグインとして機能を実装するか、 あるいはメッセージファイル(*.mstxt)をXMLファイルとして読み込み、それを変換する必要があります。 プラグインによる実装を行う場合、メッセージファイル(*.mstxt)を変換してHTMLファイルを 出力するためのサンプルプログラムが、samplesディレクトリ以下に収められています。 また、XMLファイルの仕様書はヘルプに記載があります。

非常に単純な、タブ区切りファイル(*.tsv)形式でのエクスポートを行うためのプラグインは、 公式リリースされている、ミニプラグイン集の中にも収められています。

### Perlなどを使って外部からファイルを書き換えても問題ないですか？

外部からXML仕様書に従ってファイルを書き換えることは問題ありません。 ただし、Message Studioが立ち上がっている最中に外部から書き換えを行うと、 問題が発生する可能性があります。

ビルドサーバなど、Message Studioが確実に立ち上がっていないことが保証できる場合は、 特にこの点を考慮する必要はありませんが、ユーザーがMessage Studioを利用している可能性が ある場合、Message Studioを確実に終了しておく必要があります。 ミニプラグイン集の中には、Message Studioを終了させる信号を送るための、 KillSignalSenderアプリケーションと、その信号を受信するためのKillSignalReceiverプラグインが 同梱されています。それらを利用することで、Message Studioを確実に終了した状態に出来ます。

## スタイルと幅計算関連

### 幅計算はどのぐらい信頼できますか？

スタイルおよび幅計算機能を利用することで、どのぐらいの大きさで画面上に表示されるかを Message Studio上で事前に知ることが出来ます。 ところが、この機能は、あくまでも画面上にどのように表示されるかを推測しているにすぎないため、 参考にはできますが信頼性が高いとはいえません。

表示されるテキストは必ず画面上で確認し、 正確に全てのテキストが枠内に収まっていることを確かめた上で 製品を出荷するようにしてください。

### フォントサイズを変更する特殊なタグを利用したい

ゲームによっては、フォントサイズを変更するための独自のタグを用いることがあります。 それをMessage Studioのプレビューや幅計算でも適用させるためには、 プラグインによる実装を行う必要があります。

### ゲーム中にてどのようにフォントの大きさを計算するのがよいでしょうか？

Nintendo Ware for Revolutionや、TWL Systemをスタイルに設定すると、 スタイルとしてもフォントのサイズを設定できる項目があります。 それにも関わらず、フォントサイズをパーセント単位で変更可能なタグもあります。 ゲームでフォントサイズを設定する場合、これらを掛け合わせて以下のような数式としてください。

( fontSize / 100 ) * fontScale

上の数式の中で、fontSizeはタグによって設定されたフォントサイズを表します。 fontSizeはパーセント単位で数値が来ますので、100で割った値を掛け合わせます。 もう一方の、fontScale値は、スタイルに設定された値が入ります。

## チーム管理機能関連

### 他のクライアントも併用できますか？

Message Studio以外にも、Subversion(Message Studioが利用するバージョン管理システム)にアクセスする方法があります。 たとえば有名なところですとTortoiseSVNと呼ばれるクライアントソフトウエアを使えばSubversionへのアクセスが可能です。 Message Studioは、チーム管理機能については独自の実装は行っていませんので、これらのソフトウエアを同時に利用することが可能です。

ただし、他のクライアントソフトウエアを利用する場合はSubversionのバージョン情報に注意してください。 作業コピーのバージョン番号が異なると、他のクライアントソフトでアクセスできない可能性があります。 特にMessage Studioは最新版に近いSubversionを利用しているため、Message Studioで作業コピーにアクセスしたあとに問題が発生してしまうことがあるかもしれません。 その場合は、クライアントソフトのバージョンをアップデートするなどして対応してください。 なお、採用しているSubversionのバージョン番号はクライアントソフトのバージョン番号と一致しないことがあります。 どのSubversionに対応しているかはそのソフトウエアのマニュアル等をご覧ください。 Message Studioが利用しているSubversionのバージョン番号は、「ヘルプ」から「バージョン情報」メニューを選択すると見ることが出来ます。

TortoiseSVN
http://tortoisesvn.net/

### 「ロックされています」と表示されます

特定の操作に失敗した場合、作業コピーがロックされたまま、 チーム関連の機能が一切使えなくなってしまうことがあります。 これは、サーバー上のファイルがロックされているのではなく、 あなたのパソコン上のファイルがロックされているために表示されるエラーメッセージです。 このような状況に陥った場合、ロックを解除するために、「クリーンアップ」コマンドを実行します。 こうすることで、パソコン上のロックが解除されてチーム管理機能を再び利用することが出来るようになります。 ロックについて詳しくは、基本操作のページをご覧ください。

### 大文字小文字のみのファイル名変更が出来ません

チーム管理機能を利用していると、 プロジェクトエクスプローラから大文字と小文字のみを変更できなくなります。 たとえば、MyFile.mstxtをMYFILE.mstxtに変更することはできません。

これは、Subversionのファイルシステムは大文字と小文字を区別しますが、 Windowsのファイルシステムは大文字と小文字を区別しないために発生します。 Windowsを利用している以上はこの制限から逃れることが出来ません。 他のSubversionのクライアントソフトウエア(たとえばTortoiseSVNなど)を利用していても回避できません。

Message Studioを利用して、ファイル名の大文字と小文字を変更するには、以下の手順を行ってください。

- MyFile.mstxtを、プロジェクトエクスプローラでMyFile1.mstxtに変更します。
- 「チーム」から「コミット」を選択して、まず一度、ファイルをサーバに上げてください。
- 再びプロジェクトエクスプローラに戻り、先ほど変更したばかりのMyFile1.mstxtをMYFILE.mstxtに変更してください。 このときにエラーが出ないことを確認してください。
- 再度、「チーム」から「コミット」を選択してください。

### オフラインで作業を行うことが出来ますか？

Message Studioでチーム管理機能を利用していて、 サーバとネットワークが繋がっていない場合、サーバを利用するいくつかの機能が利用できなくなります。 具体的には「更新」「コミット」「チェックイン」「チェックアウト」 「ログの表示」「差分の表示」が利用できなくなります。 「クリーンアップ」「編集内容をすべて元に戻す」などの機能はサーバを利用しないため利用可能です。 そのほか、テキストの編集作業などは問題なく行うことが出来ます。 作業したデータは、サーバと繋がった後にコミットすることが可能です。

プロジェクトの設定で、開いたときに自動的に更新するようになっている場合、 最初にサーバに接続できない旨のエラーが表示されます。 そのままエラーダイアログを閉じれば、編集作業を続けることが出来ます。

ただし、前述のように技術的には可能ではありますが、 ノートパソコンなどを利用して社外で作業を行うことは情報漏えいなどの危険性を伴います。 ゲーム内で表示される文章はゲーム内容そのものに関わってくる可能性もありますので、 このような利用方法は推奨されません。 なお、Message Studioが利用するファイルは基本的に汎用性を重視して設計されているため、 暗号化処理などが施されていません。 そのため、知識のあるユーザーであれば、Message Studioなしでも情報を解析し、可視化することが可能です。

### ファイル操作を行った際に作業コピーに反映されますか？

ユーザーがSubversionによってプロジェクトの管理設定を行っているとします。 この状態で、ユーザーがプロジェクトエクスプローラからファイルの追加、フォルダの追加や、削除、ファイル名の変更などを行うと、 バックグラウンドではファイルの操作命令を発行する代わりにSubversion経由で操作を実行するような仕様になっています。 つまり、言い換えればユーザーがファイルを追加されたときには裏で勝手にsvn addというコマンドが実行されているような形になります。

従って、プロジェクトエクスプローラなどで実行された操作は、必ず次のコミット操作のときにサーバにアップロードするための「予約」を行うことになります。 もちろん、この状態で別のクライアントソフトを使用してファイルをコミットしてもかまいません。

### 「更新」が遅いですが何とかならないですか？

Subversionは非常に利便性の高いソフトウエアですが、管理ファイルが多くなると「更新」操作に非常に多くの時間がかかってしまうことがあります。 これ自体はSubversionの根本的な問題なので解決することは難しいのが現状ですが、ディレクトリ構造を工夫することで問題を発生しにくくすることが出来ます。

コンバート時に出力されるリソースファイルが大量になることが多いので、それらのファイルを無視設定にしておくとよいかもしれません。 無視設定にする場合は、Subversionのディレクトリにsvn:ignoreというプロパティを追加し、ワイルドカードで無視するファイルやディレクトリの名称を設定します。 この操作はMessage Studio上で行うことはできませんので他のクライアントソフトなどを利用してください。

プロジェクトファイルが置かれているディレクトリの下には、必要なファイルのみが置かれていることが理想的です。 Message Studioはsvn updateしたタイミングでプロジェクトディレクトリ以下全体の更新を行う仕様になっています。 従って、プロジェクトファイルがあるディレクトリ以下に余分なファイル (たとえば、プログラムのソースコードなど)が管理されていると、それらのファイルまで更新の対象となってしまい時間がかかります。

## そのほか

### このハードウエアには対応しますか？

Message Studioが標準機能として搭載していない 特定ハードウエア向けの機能に関しては、機密情報の関係上 意図的に非公開としている場合があります。 別パッケージのプラグインなどで機能が存在している場合がありますので、 直接個別にお問い合わせください。

- はじめに
- 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
- 扱うファイルの拡張子一覧
- よくある質問