Starfield Creation Kit で宇宙船を作ろう その2
スターフィールドのCreation(MOD)として、 Creation Kit で手軽・かつ手慣れた操作で作れるのがオリジナル宇宙船です。
前回作り上げたオリジナル宇宙船を、シップサービスで販売してみよう!
Creationの再読込み
再びStarfield Creation Kitを起動し、前回作った NewMySpaceship.esp にチェックを入れます。このとき、チェックを入れただけだと編集ができないので、チェック後に下の Set as Active File を押して編集できるようにします。Status が Active File になったら編集可能。
販売用にキーワードの設定
読み込みが終わったら、前回作った船のデータを表示。実はフロンティア号はうっかり売ってしまわないように、初期値として「販売禁止」のキーワードが設定されています。このままでは売買できないので、このキーワード CannotBeSoldShipKeyword を削除しましょう。
これで準備完了です。
シップサービスの仕組みを知ろう
さて、準備ができたら船の販売方法を検討します。今回は一隻だけなので、シドニア(火星)のシップサービス技術者から購入できるようにします。
シドニア(火星)のシップサービス技術者をCK内で探す
では、まず船を売ってもらうためにCK内で彼を探します。
NPCは Actors というカテゴリにまとまっているので、そこを選択。フィルターに Cydonia と入力すると、シドニア関連のNPCのみがリストアップされます。
販売ための仕組みを把握する
彼がどうやって船を販売しているのか確認します。シップサービス技術者NPCには全員シップサービス用の汎用Scriptが設定されているので、Script項目にある sq_shipserviceactorscript をダブルクリック。ずらずらっと項目が表示されますが、その中に ShipsToSellListAlwaysDataset という項目がありました。参照されているPick Object の ShipVendorList_Cydonia_Always がどうやら販売リストをチェックして売る船を決めているようです。Alwaysということは、常にリストアップされている船と推測されます。ここに追加するのが良さそうですね。
さらに参照先をたどるためフィルターに ShipVendorList_Cydonia_Always と入力。どうやら Actor には該当する項目がないので、順にカテゴリをたどっていくと…発見。WorldObjacts カテゴリに Activator としてこの名前のオブジェクトがありました。Activator というのは、起動する事ができるオブジェクトの事です。販売員に話しかけるとこのオブジェクトが起動され、内部のスクリプトが実行される仕組みのようです。
ShipVendorList_Cydonia_Always のスクリプトをダブルクリックして中身を確認。どうやらこのスクリプトは指定オブジェクトが空欄のようです。つまり、スクリプトは設定されているものの機能しておらず、シップサービス技術者はランダムな汎用船とユニーク宇宙船だけを販売している状態なので、とても都合が良いですね。
ようやく追加すべきリストどこにあるのか、どうやって追加されるのかを把握できました。つまり、このスクリプトを利用して自分で作った船を追加すれば販売してくれるようになる。ということ。
Creationの競合を考慮する
さて、実際に販売リストをいじる前に、Creationの読み込みの仕組みと、競合について把握しておきましょう。Creationのメニューに「ロードオーダー」という表示があるのがわかると思います。例外もあるのですが、基本的に同じ場所を編集しているCreationが複数ある場合「後から読み込まれた方を優先してロードする」という仕組みになっています。別々の項目であれば問題なく読み込まれるのですが、同じ箇所を編集した複数のCreationがあった場合、最初に読み込まれた方は無視されることになります。ロードオーダーはこの順番を入れ替えて、なるべく競合しないように読み込まれるよう調整するための機能です。
今回の宇宙船は新規作成のため他のMODとかぶることはありませんが、シドニアのシップサービス技術者を編集するため、そこは注意が必要です。
競合をなるべく避ける方法
では、どうやって競合を避ける事にしましょう?
こちらもスクリプトを構築し、ゲーム実行時にリストを追加する。という事もできるのですが、やや複雑になってしまうため今回は採用しません。そのため今回はできるだけ競合を避けるために
必要最小限の範囲だけ編集する
という簡単だけど古典的な手法で解決していきます。
編集箇所が少なければ、それだけ競合する可能性も低くなりますし、なにより最小限なのでゲーム内での動作不具合などのトラブルを避けやすい。という大きなメリットがあります。既存のゲームデータを編集すると、それだけトラブルが発生する危険性が増すためです。
スクリプトを確認すると、ShipVendorList_Cydonia_Always が起動されると販売リストに指定された Base Forms が読み込まれる仕組みです。空欄のままでしたので、ここに自作の Base Forms を追加すればシドニアのシップサービス技術者がいつも自作宇宙船を売ってくれるようになるはずです。
販売リストに追加
ではまず販売用の Base Forms を作っていきましょう。空の Base Forms を新規で作ってもいいのですが、不思議とすでにあるものを複製したほうがうまく機能する例が多いので…
汎用の販売リストを流用するため、再びフィルターに LShip_Vendor_Generic を入力。Generic Forms > Leveled Base Forms にその項目があります。前回やったように既存データ(今回はLShip_Vendor_Generic_A_Cargo_MULE)を複製して名前を NewMySpaceship_LShip に変更、既に入っているいらない船のリストを削除して、自作宇宙船を追加します。
次に削除した欄を右クリック、NEW を押し新規オブジェクトを登録。
何か適当なオブジェクトが自動で配置されましたので、これを変更。
リストから前回作ったNewMySpaceshipを選択。リストはフィルター機能もあるので、NewMyShip…とキーボードから入力すれば、自作の NewMySpaceship 関連だけ表示されるので簡単に追加できます。
これで販売用の Base Forms ができました。
販売スクリプトにリストを追加
ShipVendorList_Cydonia_Always に戻りスクリプトを表示、右に Edit Value のボタンがあるので、クリックしてリストから自作 Base Forms を追加。ここも同じようにフィルター機能が効きます。
LeveledShip に自作宇宙船用Bace Formsの NewMySpaceship_LShip を指定。minLevelは1。これはプレイヤーが何レベルになったら販売を開始するかの設定です。今回はいつも売っていて欲しいので、レベル1から販売されるようにします。
これでシドニアのシップサービス技術者が船を販売してくれるようになっているはずです。
ゲーム内で動作確認
作成したCreationをゲーム内で確認しましょう。シドニアのシップサービス技術者は4〜8隻の宇宙船をランダムで販売するので、更新タイミング次第では売っていない可能性もあります。自作宇宙船が販売されていない時は、ゲーム内で数日経過(ベッドで寝る等)をして更新タイミングを変更してからまたシドニアに行って確認すると良いと思います。
ゲーム内での販売を確認・購入できればオリジナルCreationの完成です!
おめでとうございます!
Creationを公開しよう
Creationが完成したら、次は Bethesda.net へ公開していろんなプレイヤーに使ってもらいましょう。まずは Bethesda.net でユーザー登録を行って下さい。
CKからBethesda.netへログイン
Creation はCKから Betheda.net へアップロードされます。CKを起動し、自作Creationをロード後、メニューから Login to Bethesda.net を選んで Bethesda.net へログイン。Upload Plugin and Archive to Bethesda.net を選択。
PCと、XBoxへCreationを公開する事ができます。シンプルな構成なので、 Set Master Size は Small で良いでしょう。新規のテクスチャやメッシュを追加した場合はアーカイブの作成が必要になりますが、今回は既存のデータの組み合わせで制作しましたのでアーカイブは必要ありません。
OKを押すと Creation の登録画面になります。Create New Creation を選択して新規に Creation を登録。タイトルと Creation の紹介文(Description)を記入。カテゴリーに Ships があるのでそこをチェック。
Creation の紹介文はあとから編集できるので、ここはザックリでも大丈夫です。
Master Sizeとは
Master Sizeはスターフィールドから追加された新しいプラグインの設定項目です。ゲーム内での編集項目数によって三段階に分けられています。
Small:4,095項目までの制限。アイテム、船、武器、または小さなインテリア向け
Medium:65,535項目までの制限。新しい惑星やクエストなど、中規模向け
Large:編集項目数に制限なし。DLC並の大規模Creation向け。
今回は編集項目がごくわずかのため、Smallで充分です。いずれ規模が大きくなり、4,095項目以上になる予定があるならMediumにしておくと良いでしょう。(あとからMaster Sizeの変更はできないので注意)
アップロード完了後にBethesda.netでCreationの編集
CKからのアップロードが完了すると、次は Bethesda.net での登録作業になります。ログイン後に Starfield Creation から自作の Creation が確認できますので、そこで編集して下さい。どんな Creation なのかひと目でわかる画像を用意して登録していきましょう。
公開前に自分で動作確認
Bethesda.netでの登録が完了すればいよいよ公開!になりますが、その前に自分で最終確認をしましょう。ゲーム内のCreationメニューを確認すると、さきほどアップロードした Creation が確認できると思います。
その自作 Creation をダウンロードし、ロードオーダーで NewMySpaceship.esp のオフにします。新しくダウンロードした NewMySpaceship をオン。
その状態でロードして再度宇宙船が売りに出されているか、最終確認を行って下さい。
確認ができたら、いよいよ公開!
よきCreationライフをお楽しみください!
補足
アップロード後のCreation編集の注意点
Creationプラグインには2つの形式があります。.espと.esmです。CKで制作・編集・保存には .esp を利用しますが、アップロードすると.esm という形式が新たに制作されます。実際のゲームではこちらのプラグインデータを使います。
再編集の時は .esp を編集し、.esmはそのまま保持するようにしてください。CKからのアップロードの際に自動的に.esmに変換されます。
スターフィールドの正式プラグイン形式は .esmのみになりますので、ご注意下さい。
パーツ干渉もOKになるini設定
今回は標準機能で宇宙船を作成しましたが、CKには宇宙船のパーツ干渉チェックを緩くする設定もあります。前回制作した CreationKitCustom.ini に下記の項目を追加してください。
[Spaceship]
fShipBuilderModuleOverlapTolerance=-4
パーツ干渉しても宇宙船を作る事ができるので、より個性的な宇宙船を作ることができますよ。
注意:このini設定で制作した宇宙船をゲーム内で改造しようとすると、ゲーム内では干渉チェックが働くため再編集がしにくくなります。
完全に競合を避けるには
今回は1隻だけの販売でしたので、既存のNPCスクリプトに追加する方式を採りましたが、今後宇宙船を増やしたりなど複数の宇宙船を追加するには不向きです。競合を避け、複数の宇宙船を販売するには…やはり専用の販売員NPCを作る。という方法がベターでしょう。
既存のシップサービス技術者NPCを複製し、ゲーム内に配置して販売してもらう方式になると思います。こちらは応用でいけると思いますので、いろいろ試してみて下さい。