【MCM実装-2】MCMに登録するための基本構造を作る

第2回は、MCMの基本構造を作っていきます。

MCM用のクエストと、それにつける必須スクリプトを作ります。普段のMOD制作でクエストやスクリプトに触れない方でもきっと大丈夫です。たぶん。

MCMの作り方については SkyUI の GitHub にドキュメントがあります。当サイトではこれをもとに実際の作業に即して説明していきます。


1. 専用クエストの作成

1-1. MCM専用のクエストを作成する

まずは、MCMを実装しようとしているMODをCKで通常通り読み込みます。

Object Window で Character > Quest を選択します。右側のどこかを右クリックして「New」を選択し、新規にクエストを作成します。

IDに任意の名前を付けます。できればMCMに用いるクエストであることが分かるようにしましょう。さらに「Run Once」のチェックを外して、念のためクエストを繰り返し開始できるようにしておきます。

ここで一度「OK」を押してクエストを確定させます。そうしないとスクリプトをつけることができません。

1-2. クエストにスクリプトをつける

作成したクエストの「Scripts」タブを開きます。「Add」を押すとスクリプトをつけることができます。

[New Script] を選択し、新規にスクリプトを作成します。

Name に入れるスクリプト名は任意ですが、他のMODと被らないような名前にしてください。そして Extends の欄が重要で、デフォルトでは Quest となっているものを必ず「SKI_ConfigBase」に書き換えてください。MCM用の関数等を使えるようにするためです。

もしここで SKI_ConfigBase を指定できないエラーが出たら、SkyUI SDK のインストールができていません。前回の記事を参考にインストールし直してください。

1-3. プロパティにMOD名を記載する

プロパティとは変数の一種で、スクリプトとゲームデータとの橋渡しをしたり、他のスクリプトから値を参照したりするのに用いられます。作成したMCMスクリプトを選択状態にし、「Properties」を押すとその内容が見られます。

MCMスクリプトは SKI_ConfigBase を拡張しているため、すでに2つのプロパティがあります。このうち「ModName」がMCMのMODリストで表示される名前になるので、選択してから右側の「Edit Value」を押して入力します。MOD名が長すぎるとMCMのUIからはみ出します。ユーザーが使用しているフォントにもよりますが、長くても20~24文字程度にしておいた方がよいでしょう。

1-4. スクリプトをコンパイルする

Papyrus でいうコンパイルとは、人が読んで編集するための psc をコンピュータ用の pex に変換する作業です。スクリプトの内容を作っていく前に、ここでコンパイル作業を確認しておきましょう。

MCMスクリプトを右クリックして「Edit Source」を選択します。

1行だけ書かれたスクリプトの画面が開くので、File メニューから「Save」を選択します。

いくつかの記述のあと「Compilation succeeded.」の文字が出ていれば成功です。

これにより “Data/Scripts” 内に pex が作成されます。もしこの段階で失敗するようなら何らかのスクリプトソースが足りていません。前回を参考に、バニラおよびSKSEのスクリプトソースが “Data/Source/Scripts” フォルダに正しく展開されているか確認してください。


2. エイリアスの作成

2-1. プレイヤーエイリアスを作成する

エイリアスとは、クエストで用いるデータを登録しておく枠のようなものです。MCMでは、プレイヤーのエイリアスを作成するよう指定されています。

MCMクエストの「Quest Aliases」タブを開き、右クリックして「New Reference Alias」を選択します。

Alias Name に「PlayerAlias」と入力します。そして Fill Type の Specific Reference を選び、右側のボタンを押します。Cell に「(any)」を指定することで Ref には自動的に「PlayerRef」が入り、プレイヤーのエイリアスとなります。

2-2. エイリアスにスクリプトをつける

エイリアスの Scripts 欄にある「Add」を押し、「SKI_PlayerLoadGameAlias」を選択してスクリプトをつけます。

ここまでできたら、エイリアス画面とクエスト画面の「OK」ボタンを押して確定させ、さらに esp を保存しましょう。この段階でテストプレイすると、ゲーム開始後に少し経ってから登録メッセージが出て、ModName プロパティに入力した名前の項目がMCMに出るはずです。

以上で基本構造はできました。次回以降、その中身を作っていきます。


3. サクラエディタを使ったコンパイル

3-1. スクリプトをダブルクリックしたときの挙動を設定する

上の説明ではCKを使ってスクリプトをコンパイルしました。最初のうちはそれでも構いませんが、これから先、スクリプトの編集を何回も繰り返すことになるので、できればエディタを使って編集・コンパイルするようにしていきましょう。

まず、CKでスクリプトをダブルクリックしたとき、その psc がサクラエディタで開かれるように設定します。デフォルトではプロパティの設定が開くようになっていますが、これはあまり頻繁に行う作業ではありませんし、psc が開かれる方が直感的だと思います。

psc ファイルの関連付けを行うために、”Data/Source/Scripts” 内のどれでも良いので psc を右クリックして「プログラムから開く」を選択します。ダイアログが出るので開く方法としてサクラエディタを選択し、「常にこのアプリを使って .psc ファイルを開く」にチェックを入れてOKしてください。開いた psc は何もせずに閉じておきます。

そして、CKの File メニューから「Preferences…」を選択して「Scripts」タブを開き、On double-click に「Edit externally」を指定します。

3-2. サクラエディタからコンパイルする

サクラエディタで psc を編集したら、「Ctrl+S」で保存し、さらに「Ctrl+F5」で ファイル名を指定して実行 ダイアログを開きます。前回ご紹介した通りにバッチファイルを作成してあれば、以下のコマンドで pex へのコンパイルが可能です。

"$e..\..\..\Papyrus Compiler\ScriptCompile_AE.bat" "$F"

エディタを使うと色分けや入力補完機能等が使えるので、スクリプトの編集効率が格段に上がります。さらに、後からスクリプトだけ修正したいと思ったときに、CKを起動することなく “Data/Source/Scripts” 内の psc を直接開いて編集・コンパイルすることもできるため、デバッグ作業がとても楽です。

この作業効率向上が、前回 Vortex とサクラエディタの組み合わせをご紹介した理由の1つです。


【MCM実装 シリーズ】
1. Creation Kit で Papyrus を扱えるようにする
2. MCMに登録するための基本構造を作る
3. 初期画面とページの枠組みを作る
4. ページ内の項目を作る
5. スクリプトMODを配布形式にまとめる
6. MCM設定を自動で保存する

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

6 + twelve =