Nintendo MessageStudio ヘルプ

プロジェクトファイル (.msproj)のXML仕様

ルート要素およびルート直下に展開される要素の一覧

MessageStudioProject(Root Element)

PluginInfo

Contents

Properties

Language

Fonts

Styles

Colors

TagGroups

Attributes

Dictionaries

BuildSettings

Roles

ExtraSettings

MessageStudioProject 要素 ( Root Element )

宣言

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<MessageStudioProject Format="1.1" xmlns="nintendo:msgstudio">
	...
</MessageStudioProject>

説明

MessageStudioProject要素は、プロジェクトファイルのルート要素となります。 この要素は以下の属性を持ちます。

属性名説明
xmlnsXML名前空間です。 この値は常に nintendo:msgstudio となります。
Formatプロジェクトファイルのフォーマットバージョンです。 このフォーマットバージョンは、プロジェクトファイルのフォーマットバージョンであり、 Message Studio本体のバージョンとは異なることに注意して下さい。 現在のバージョンは1.0です。

また、MessageStudioProject要素はルート要素ですので、これ以下の要素全てを子として持ちます。

PluginInfo 要素

宣言

<PluginInfo
	PluginDir="&(ProjectDir)\plugins"
	Recursive="True"> />

説明

PluginInfo要素は、プラグインの配置場所に関する情報を持ちます。 この要素は以下の属性を持ちます。

属性名説明
PluginDirプラグインが配置されているディレクトリ名です。 MessageStudioはこのディレクトリからプラグイン読み込みを 試みます。 この記述にはマクロ文字列が使用できます。
RecursiveProjectDir属性が示すディレクトリ以下のディレクトリに対して 再帰的にプラグイン読み込みを試みるかを指定します。 TrueまたはFalseを指定できます。

Contents 要素

宣言

<Contents>
	<Directory Name="System">
		<ContentItem Name="Errors.mstxt">
		<ContentItem Name="Items.mstxt">
		...
	</Directory>
	<Directory Name="Test">
		<Meta Key="F4CD8CBE-4A0C-4d3f-BA69-BD1C25B8DC2A">
			*.mstxt
		</Meta>
		<ContentItem Name="Test0.mstxt">
		...
	</Directory>
	...
	<ContentItem Name="Readme.txt">
	...
</Contents>

説明

Contents要素は、プロジェクトファイルが管理するコンテンツファイルに関する 情報を持ちます。

Contents要素およびDirectory要素は、ContentItem要素およびDirectory要素を含むことが出来ます。 Directory要素とContentItem要素は、Nameという共通の属性を持ちます。Name要素にはそれぞれ、 ディレクトリ名およびファイル名が入ります。

Contents要素、Directory要素、ContentItem要素はMeta要素を含むことができます。 Meta要素はKeyという属性を1つだけ持ち、これはメタ情報プラグイン を一意に識別するGUIDになります。 Meta要素に含まれる文字列は、メタ情報プラグインが設定する任意の値であり、 Message Studio本体がこの値を用いて何かをすることはありません。 どのように処理するかはメタ情報プラグイン次第です。

Properties要素

宣言

<Properties>
	<PreBuildEvent>echo hello world</PreBuildEvent>
	<PostBuildEvent>echo good bye</PostBuildEvent>
	<TeamSettings
		AutoUpdate="False"
		AutoCommit="False"
		AutoCloseOnAutoUpdate="False" />
</Properties>

説明

Properties要素はプロジェクト設定に関する情報を持ちます。 この要素は、以下の要素を含みます。

要素名説明
PreBuildEventビルド前の処理を記述します。 ここに記述されたシェルコマンドがビルド前に実行されます。 ここにはマクロ文字列を使用することができます。
PostBuildEventビルド後の処理を記述します。 ここに記述されたシェルコマンドがビルド後に実行されます。 ここにはマクロ文字列を使用することができます。
TeamSettings チーム管理機能に関する設定情報を持ちます。 この要素は以下の属性を持ちます。
属性名説明
AutoUpdateTrueかFalseが設定できます。 Trueの場合、プロジェクトを開いたタイミングで自動で更新がかかります。
AutoCommitTrueかFalseが設定できます。 Trueの場合、プロジェクトを閉じるときにコミットされていないファイルがあった場合、 コミットを促すメッセージが表示されるようになります。
AutoCloseOnAutoUpdateTrueかFalseが設定できます。 Trueの場合、自動更新されたときにエラーがなかったら 更新ダイアログを自動的に閉じます。 AutoUpdate属性がTrueの場合に使用されます。

Language 要素

宣言

<Language
	LanguageName="JP_Japanese"
	OutputBinary="True"
	ReviewEnabled="True"
	RubyWarning="True"
	SpellEnabled="False"
	Dictionary="en_GB">
	<Language
		LanguageName="US_English"
		OutputBinary="True"
		ReviewEnabled="False"
		RubyWarning="False"
		SpellEnabled="True"
		Dictionary="en_US">
		...
	</Language>
	...
</Language>

説明

Language要素は、言語設定に関する情報を持ちます。 Language要素は、別のLanguage要素を子に含むことができます。 このLanguage要素の親子構造は、そのまま言語ツリーとして Message Studioに取り込まれます。

属性名説明
LanguageName言語名です。
OutputBinaryTrueかFalseを指定できます。 ビルダーが、この言語に関する テキストデータなどを出力すべきかどうかを示し、Trueなら出力すべきです。
ReviewEnabledTrueかFalseが指定できます。 Trueならレビュー機能が 有効になります。
RubyWarningTrueかFalseを指定できます。 Trueなら、ビルダーが、 この言語に関するテキストをビルドする際、漢字にルビタグ(ふりがな)が 設定されていなければ警告を出してくれるようになります。 ただし、中国語に対してこの機能を有効にしてはいけません。(すべての文字に対して 警告が出ることになります。)
SpellEnabledTrueかFalseを指定できます。 Trueならこの言語に対してスペルチェック機能が有効になります。
Dictionaryスペルチェックに用いる辞書の名前です。

Fonts 要素

宣言

<Fonts>
	<FontSetting
		FontName="MyFont"
		Loader="e5d705a4-ee19-4b1c-a3da-eccc4ed6fdf8">
		<FontPath>$(ProjectDir)\..\Font\MyFont.brfnt</FontPath>
	</FontSetting>
	...
</Fonts>

説明

Fonts要素は、フォント設定に関する情報を持ちます。 Fonts要素は、0個以上のFontSetting要素を含みます。

FontSetting要素

FontSetting要素は以下の属性を持ちます。

属性名説明
FontNameフォントの名前です。
Loaderフォントリソースを読み込むためのフォントローダープラグインを 示すGUIDです。

また、宣言のFontType要素の例ように、FontSetting要素は任意の要素を含むことができます。 これらの要素はLoader属性に設定されているフォントローダープラグインが 独自に追加可能な要素であり、Message Studio本体がこれらの要素を直接扱うことは ありません。

Styles 要素

宣言

<Styles>
	<StyleClass StyleName="MyStyle">
		<Default
			RegionWidth="400"
			LineNum="3"
			FontName="MyFont_A"
			RenderMode="f23e335b-192a-4a51-87f8-2ca98cac9a57">
			<Nw4rTextWriter
				ScaleH="1"
				ScaleV="1"
				LineSpace="0"
				CharSpace="0"
				TabWidth="4"
				EnableFixedWidth="False"
				FixedWidth="0" />
		</Default>
		<Substitute
			Language="JP_Japanese"
			RegionWidth="410"
			LineNum="4"
			FontName="MyFont_B"
			RenderMode="f23e335b-192a-4a51-87f8-2ca98cac9a57"/>
			<Nw4rTextWriter
				ScaleH="1"
				ScaleV="1"
				LineSpace="0"
				CharSpace="0"
				TabWidth="4"
				EnableFixedWidth="False"
				FixedWidth="0" />
		</Substitute>
		...
	</StyleClass>
	...
</Styles>

説明

Styles要素は、スタイル設定に関する情報を持ちます。 Styles要素は、0個以上のStyleClass要素を含みます。

StyleClass 要素

StyleClass要素は1つの属性を持ちます。

属性名説明
StyleNameスタイルの名前です。

また、StyleClass要素は1つのDefault要素および0個以上のSubstitute要素を含みます。 Default要素とSubstitute要素はほぼ共通のフォーマットを持ちます。以下に Default要素とSubstitute要素のフォーマットを示します。

Default要素、Substitute要素

属性名説明
Languageスタイル設定を特殊化した言語の名前です。 この属性はSubstitute要素にのみ含まれます。
RegionWidth表示可能領域幅です。 ピクセル単位で指定します。
LineNum表示可能行数です。
FontNameフォントの名前です。
RenderModeこのスタイルで使用するレンダリング方式プラグインを 示すGUIDです。(レンダリング方式についてはこちら

また、宣言のNw4rTextWriter要素の例ように、 Default要素およびSubstitute要素は、0個以上の任意の要素を含むことができます。 これらの要素はRenderMode属性に設定されているレンダリング方式プラグインが 独自に追加可能な要素であり、Message Studio本体がこれらの要素を直接扱うことは ありません。

Colors要素

宣言

<Colors>
	<Color Name="Red" R="255" G="0" B="0" A="255" />
	<Color Name="Blue" R="0" G="0" B="255" A="255" />
	...
</Colors>

説明

Colors要素は0個以上のColor要素を含みます。 Color要素は以下の属性を持ちます。

Color要素

属性名説明
Nameカラーの名前です。
R, G, B, ARGBA形式で表される色の各成分の値です。 各成分は8bitで、全体として32bitのカラーになります。

TagGrooups要素

宣言

<TagGroups>
	<TagGroup GroupName="MY_GROUP">
		<MultilingualName>
			<Japanese>My group</Japanese>
		</MultilingualName>
		<Tag
			TagName="MY_TAG"
			HasInside="False"
			CompareError="Strict">
			<MultilingualName>
				<Japanese>My tag</Japanese>
			</MultilingualName>
			<Comment>
				<Japanese>This is Comment</Japanese>
			</Comment>
			<Parameter
				Name="MY_PARAM"
				Type="String"
				Default="This is String Type parameter."
				LimitType="None">
				<MultilingualName>
					<Japanese>My parameter</Japanese>
				</MultilingualName>
				<ListItem
					Name="New_Item">
					<MultilingualName />
				</ListItem>
			</Parameter>
			<Default>
				<WidthCalcInfo
					Calculator="d545ff2d-63d0-43a4-b954-eba129dc7381">
					<Pixels>15</Pixels>
				</WidthCalcInfo>
			</Default>
		</Tag>
	</TagGroup>
</pre>

説明

TagGroups要素は、タグ設定に関する情報を持ちます。 TagGroups要素は、0個以上のTagGroup要素を含みます。

TagGroup要素は、1つのタググループに関する情報を持ちます。 TagGroup要素は、以下の属性と要素を持ちます。

TagGrooup要素

属性名説明
GroupNameタググループの定義名です。 定義名にはASCIIで表すことができる文字しか使用することができず、 また255文字以内である必要があります。
要素名説明
MultilingualName 多言語に対応した名前付けが可能な要素です。 MultiligualName要素は以下の要素を含むことができます。 これらの要素は、Message Studioで設定されていない場合は 記述されず、Message Studioでは定義名で表示されることになります。
要素名説明
Japaneseアプリケーションの言語設定が「日本語」のときに 表示される名前です。任意の文字を使用することができます。
US_Englishアプリケーションの言語設定が「US_English」のときに 表示される名前です。任意の文字を使用することができます。
Tagこのタググループに含まれるタグ1つ分の情報を持ちます。 Tag要素は複数個含まれる可能性があります。

Tag要素

Tag要素は、タグに関する情報を持ちます。 Tag要素は以下の属性と要素を持ちます。

属性名説明
TagNameタグの定義名です。 定義名にはASCIIで表すことができる文字しか使用することができず、 また255文字以内である必要があります。
HasInsideTrueかFalseを指定できます。 Trueの場合、そのタグは範囲タグとして扱われます。 範囲タグとは内部にテキストを持つことができるタグのことを言います。
CompareError タグ使用状況比較を行ったときの、比較条件を示します。 以下の値のいずれかである必要があります。
Strict
Warningに加え、パラメータまで完全に一致していない場合に警告します。
Warning
メッセージ中に存在する数が一致しなければ警告します。
Ignore
このタグに関しては警告しません。
要素名説明
MultilingualName多言語に対応した名前付けが可能な要素です。 TagGroup要素のMultilingual要素と同じ構造を持ちます。
Commentタグに関するコメントです。 多言語に対応しており、MultilingualName要素と同じ構造をもちます。
Parameterこのタグに含まれるタグパラメータ1つ分の情報を持ちます。 Parameter要素は複数個含まれる可能性があります。
Default デフォルトのタグの幅設定に関する情報を保持します。 特に、Substitute要素で言語別に特殊化されない限り、タグの幅情報としてこのデフォルト設定が使用されます。 タグの幅計算方法はプラグインによって拡張できるため、どのプラグインを利用するのかという情報が埋め込まれます。
属性名説明
Calculatorタグ幅計算方法のプラグインのGUID値を書き込みます。
このXML要素の中身は、プラグインの仕様によって内容が異なります。
Substitute 言語別に特殊化されたタグの幅情報を保持します。 Substitute要素は、Default要素のに加え、以下の要素を持ちます。
属性名説明
Language特殊化されている言語の名前です。

Parameter要素

Parameter要素は、タグパラメータに関する情報を持ちます。 Parameter要素は以下の属性と要素を持ちます。

属性名説明
Nameタグパラメータの定義名です。 定義名にはASCIIで表すことができる文字しか使用することができず、 また255文字以内である必要があります。
Type パラメータの型を示します。 この値は以下のいずれかである必要があります。
UInt8
符号なし8bit整数です。
UInt16
符号なし16bit整数です。
UInt32
符号なし32bit整数です。
Int8
符号付き8bit整数です。
Int16
符号付き16bit整数です。
Int32
符号付き32bit整数です。
Float
32bit単精度浮動小数点数です。
Double
64bit倍精度浮動小数点数です。
String
文字列です。
List
リスト型です。 この値である場合、ListItem要素が意味を持ちます。
Defaultこのパラメータのデフォルト値です。 テキストへのタグ挿入時に、特にパラメータが指定されなかった場合はこのデフォルト値が使用されます。 また、LimitType属性でFixedが指定された場合はこの値が固定値として扱われます。
LimitEnabledこの属性は現在使用されていません。 互換性のために残っています。 代わりにLimitType属性を使用して下さい。
LimitType このパラメータの入力制限の種類を示します。 この値は以下のいずれかである必要があります。
None
値に制限は設けません。 Type属性が数値型でだった場合は、その型の 最小値・最大値が制限になります。
UserLimit
最小値・最大値を設定します。 最小値はUserMinValue要素、最大値はUserMaxValue要素に格納されます。
Fixed
このパラメータの値は固定値です。 Default属性の値が固定値として使用されます。
要素名説明
UserMaxValueこのパラメータの最大値です。 LimitType属性でUserLimitが指定された場合に使用されます。
UserMinValueこのパラメータの最小値です。 LimitType属性でUserLimitが指定された場合に使用されます。
MultilingualName多言語に対応した名前付けが可能な要素です。 TagGroup要素のMultilingual要素と同じ構造を持ちます。
ListItem このパラメータに設定されているリストアイテム(項目)です。 Type属性がListだった場合に使用されます。 この要素は複数個含まれる可能性があります。
属性名説明
Nameアイテム(項目)の定義名です。 定義名にはASCIIで表すことができる文字しか使用することができず、 また255文字以内である必要があります。
要素名説明
MultilingualName多言語に対応した名前付けが可能な要素です。 TagGroup要素のMultilingual要素と同じ構造を持ちます。

Attributes要素

宣言

<Attributes>
	<Attribute
		Name="MY_ATTRIBUTE"
		Type="UInt8"
		Default="5"
		LimitEnabled="True">
		<UserMaxValue>10</UserMaxValue>
		<UserMinValue>0</UserMinValue>
		<MultilingualName>
			<Japanese>My Attr</Japanese>
		</MultilingualName>
		<MultilingualComment>
			<Japanese>This is Comment.</Japanese>
		</MultilingualComment>
		<Item
			Name="New_Item">
			<MultilingualName />
		</Item>
	</Attribute>
</Attributes>

説明

Attributes要素は、属性設定に関する情報を持ちます。 Attributes要素は、0個以上のAttribute要素を含みます。

Attribute要素

Attribute要素は、1つの属性に関する情報を持ちます。 Attribute要素は、以下の属性と要素を持ちます。

属性名説明
Nameこの属性の定義名です。 定義名にはASCIIで表すことができる文字しか使用することができず、 また255文字以内である必要があります。
Type 属性の型を示します。 この値は以下のいずれかである必要があります。
UInt8
符号なし8bit整数です。
UInt16
符号なし16bit整数です。
UInt32
符号なし32bit整数です。
Int8
符号付き8bit整数です。
Int16
符号付き16bit整数です。
Int32
符号付き32bit整数です。
Float
32bit単精度浮動小数点数です。
Double
64bit倍精度浮動小数点数です。
String
文字列です。
List
リスト型です。 この値である場合、Item要素が意味を持ちます。
Commentこの属性は現在使用されていません。 互換性のために残っています。 代わりにMultiligualComment要素を使用します。
Defaultこの属性のデフォルト値です。 特にパラメータが設定されない場合はこのデフォルト値が使用されます。
LimitEnabledこの属性の値に入力制限を設けるか否かです。 TrueかFalseが指定できます。 Trueの場合、最大値としてUserMaxValue要素、 最小値としてUserMinValue要素を使用します。
要素名説明
UserMaxValueこのパラメータの最大値です。 LimitEnabled属性がTrueの場合に使用されます。
UserMinValueこのパラメータの最小値です。 LimitEnabled属性がTrueの場合に使用されます。
MultilingualName多言語に対応した名前付けが可能な要素です。 TagGroup要素のMultilingual要素と同じ構造を持ちます。
MultilingualComment属性に関するコメントです。 多言語に対応しており、MultilingualName要素と同じ構造をもちます。
Item この属性に設定されているリストアイテム(項目)です。 Type属性がListだった場合に使用されます。 この要素は複数個含まれる可能性があります。
属性名説明
Nameアイテム(項目)の定義名です。 定義名にはASCIIで表すことができる文字しか使用することができず、 また255文字以内である必要があります。
DisplayNameこの属性は現在使用されていません。 互換性のために残っています。 代わりにMultiligualName要素を使用します。
要素名説明
MultilingualName多言語に対応した名前付けが可能な要素です。 TagGroup要素のMultilingual要素と同じ構造を持ちます。

Dictionaries要素

宣言

<Dictionaries>
	<Dictionary Name="en_US">
		<ExtraWord>mstxt</ExtraWord>
		<ExtraWord>gmm</ExtraWord>
		...
	</Dictionary>
	...
</Dictionaries>

説明

Dictionaries要素は、辞書への追加単語に関する情報を持ちます。 辞書や、辞書への単語追加に関してはこちらをご覧下さい。 Dictionaries要素は、0個以上のDictionary要素を含みます。

Dictionary要素

属性名説明
Name単語が追加される辞書の名前です。
要素名説明
ExtraWord追加される単語1つ分を示します。 この要素は複数含まれる可能性があります。

BuilderSettings要素

宣言

<BuildSettings>
	<BuildSetting
		Builder="45e0d427-0349-45b3-8015-c5e4cc773460">
		<AttributeHeader
			HeaderPath="$(ProjectDir)\include\ms_attributes.h"
			Encoding="932"
			ItemPrefix="MSATTRITEM_" />
	</BuildSetting>
	<BuildSetting
		Builder="8857dfd8-959a-4029-afcc-7db874bd58e8">
		<MessageBinInfo
			OutputDir="$(ProjectDir)\bin\$(LanguageName)\$(InputFileName).msbt"
			Encoding="UTF16"
			Newline="LF"
			IsLittleEndian="False"
			HasLabelBlock="True"
			HashSize="101"
			HasAttributeBlock="True"
			DirectColor="True" />
	</BuildSetting>
	...
</BuildSettings>

説明

BuilderSettings要素は、各ビルダープラグインの設定情報を持ちます。 BuilderSettings要素は、0個以上のBuilderSetting要素を含みます。

BuilderSetting要素

BuilderSetting要素は、ビルダープラグイン1つ分の設定情報を持ちます。 BuilderSetting要素は以下の属性を持ちます。

属性名説明
Builderビルダープラグインを示すGUIDです。

また、宣言のAttributeHeader要素やMessageBinInfo要素の例ように、 BuilderSetting要素は任意の要素を含むことができます。 これらの要素はBuilder属性に設定されているビルダープラグインが 独自に追加可能な要素であり、Message Studio本体がこれらの要素を直接扱うことは ありません。

Roles 要素

宣言

<Roles>
	<Administrator
		Password="kmPKnUp79QbJSj1k/WjaE3tIXKPmSp0j2Xoh0IEk5sk=" />
	<RestrictedRole Name="JP_Japanese editor">
		<Forbidden Permission="234a7423-2b39-47ed-a343-8207b935fe06">
			<Subkey Name="US_English" />
		</Forbidden>
		<Forbidden Permission="4040d647-c07f-4e9b-9334-95b62ef0e00a" />
		<Forbidden Permission="40bc80ae-4158-413a-8a89-0620daecd70e" />
		...
	</RestrictedRole>
	...
</Roles>

Roles要素は、ロールとパーミッションに関する情報を持ちます。 Roles要素は、以下の属性と要素を持ちます。

要素名説明
Administrator 管理者に関する情報を持ちます。 管理者には全ての操作を行う権限が与えられています。 この要素は以下の属性を持ちます。
属性名説明
Password管理者を選択する際に必要なパスワードです。 この値はSHA256およびBASE64でエンコードされています。
RestrictedRole ロール1つ分を示します。 RestrictedRole要素は複数個含まれる可能性があります。 ロールにはパーミッションが設定されており、各パーミッションはForbidden要素で示されます。 Forbidden要素は以下の属性と要素を持ちます。

Forbidden要素

属性名説明
Permissionパーミッションプラグインを示すGUIDです。
要素名説明
SubkeyName属性を持ち、その値としてパーミッションプラグインが独自に定義する データを持ちます。

ExtraSettings要素

宣言

<ExtraSettings>
	<ExtData DataHolder="4520d7e7-1449-498b-bd1d-784ee068c2d7" />
	<ExtData DataHolder="d5290830-ab71-4923-a9b3-ad88cfaf7f2c">
		<SaveBuild_ButtonName xmlns="nintendo:msgstudio">
			Commit
		</SaveBuild_ButtonName>
		<SaveBuild_CommitMessage xmlns="nintendo:msgstudio">
			commit by @(USERNAME)
		</SaveBuild_CommitMessage>
		<SaveBuild_PostProcess xmlns="nintendo:msgstudio" />
		<Execute_ButtonName xmlns="nintendo:msgstudio">
			Run
		</Execute_ButtonName>
		<Execute_Process xmlns="nintendo:msgstudio" />
	</ExtData>
	...
</ExtraSettings>

説明

ExtraSettings要素は、各種プラグインに関する設定を持ちます。 この要素は、0個以上のExtraData要素を含みます。

ExtraData要素

ExtraData要素は、以下の属性を持ちます。

属性名説明
DataHolderプラグインを識別するためのGUIDです。

また、ExtraData属性には、宣言のSaveBuild要素やExecute要素の例のように、 任意の要素を追加することができます。 これらの要素はDataHolder属性に設定されているプラグインが独自に追加可能な要素であり、 Message Studio本体がこれらの要素を直接扱うことはありません。