Steamワークショップを介さずに開発することを想定しています。
必要なもの
- PC操作スキル
- テキストエディタ
- xmlの知識(見様見真似でもいけると思われるが、質問する場合はxmlのものなのか、このゲームのModにのみ当てはまるものなのか吟味すること。)
- キャラのドット絵
- ファイルの拡張子を見えるようにしておく
下準備
- 「steamapps\common\One Step From Eden\OSFE_Data\StreamingAssets\Mods」に新しいフォルダを作成。Modの名前にリネームしておく。以下「TestMod」とする。
- 「steamapps\common\One Step From Eden\OSFE_Data\StreamingAssets\ExampleMods\Lea Char」というフォルダがあるのでこの中から「Heroes.xml」「LeaAnimInfo」というファイル、「char」というフォルダをコピペして「TestMod」フォルダへ入れる。
- 直接「TestMod」へ作成しても良いが、書き換えたほうが手間が少ないと思われる。
作成作業
- 「Heroes.xml」をテキストエディタで開く。
- 変えたい部分を書き換える。
タグ・属性 内容 必要度 beingID ゲーム内コードで扱われるID。Nameと一致させないといけない。半角スペースを開けてもOK 必須 Name 追加するキャラの名前。beingIDと一致させないといけない。 必須 Title スタイル部分に表示される名称 必須 Tags Defaultとつけるとキャラセレクト画面に表示される 任意 Campaignとつけるとシングルプレイヤーキャラ選択画面に表示される 任意 Unlockとつけるとそのキャラはアンロックされている 任意 Description そのキャラの説明。キャラ選択画面上方に表示されるキャラそのものの説明文 任意 Flavour そのキャラの説明。スタイルの選択で表示される小さい説明文 任意 Weapon そのキャラの武器 必須 Health そのキャラのゲーム開始時のHP 必須 MaxHealth そのキャラのゲーム開始時の最大HP 必須 Money そのキャラのゲーム開始時の手持ちのクレジット 任意 MaxMana そのキャラのゲーム開始時の最大マナ 必須 BasicCooldown 武器攻撃の時間間隔。秒数指定(0.05なら連打してても0.05秒間隔で出る) 任意 ManaRegen ゲーム開始時のマナ自然回復速度 任意 ShuffleTime ゲーム開始時のシャッフルにかかる時間。秒数指定 任意 InvulLength ダメージを受けた際の無敵時間(凍傷ダメージなどの追加ダメージは連続で受ける) 任意 Defense ゲーム開始時の防御力 任意 Lerptime 移動速度 任意 Deck ゲーム開始時のデッキに入っているスペル。複数指定する場合は複数タグに分ける 任意 Artifacts ゲーム開始時の所持アーティファクト。複数指定する場合は複数タグに分ける 任意 Stats 様々な属性を指定する。以下参照 一部必須 - Statsの属性
属性値 内容 必要度 localGunPointPos 射出系のスペルをスプライトのどの座標から射出するかを指定する。 任意 animName アニメーション定義ファイル(AnimInfo)の判別部分の名前(TestAnimInfoならTestと指定する) 必須 altAnims 別スキンのアニメーションがあるかどうか。true/false 用意するなら必須 splashSprite キャラクター画像。キャラ選択時に右に出てくる大きい画像。ポーズ時に出てくるものも同様 指定は必須だがない場合は代替画像が表示される startingBrands ゲーム開始時にフォーカスしているブランド名 任意 shadow falseにすると影のエフェクトが出なくなる 任意
- Statsの属性
スタイルの追加
- beingIDは何でも良いが、親となるキャラの文字列の後ろに追加したほうが良い。理由としてはスタイルの順番が変わってしまうからである。
- 例 親ID:Z 子ID:A としたとき、スタイルの表示では子の方が上側に表示されてしまう。
- 親ID:Z 子ID:Z2 とすれば、親のスタイルの下に子のスタイルが表示される。
- Nameを親と一致させる
- Titleがスタイル名となる
- TagにはCampaignを必ず指定する
アニメーションの追加
- コピーしてきた「LeaAnimInfo」のLeaを消して属性値animNameと同じ名前をいれる。(例:TestAnimInfo.xml)
- AnimInfoファイルを編集する。タグ・属性は以下の通り
タグ・属性 内容 Animation 一つのアニメをこのタグで囲って定義する。属性はloop,name,frameDuration loop ループするかどうか name アニメーションの名前。定義されているのでそれに沿ったものを付ける。以下参照 frameDuration 最終コマの持続フレーム数。ループがtrueの場合は関係ないと思われる? frame アニメの1コマをこのタグで定義する。画像ファイルの参照はフォルダにまとめたほうがファイル管理が楽 - 「char」フォルダを作成し、その中に画像を入れていく。フォルダの名前は変更しても良いがxmlファイルの中身も書き換えることを忘れずにすること。
- 画像ファイルには管理しやすくなるようアニメーションの名前とコマ番号を付けることをお勧めする。
- 定義されているアニメーション名一覧
name 説明 airborne airLand assist back 後退するとき cast01Channel cast01End スペル詠唱最後 cast01Mid cast01Start スペル詠唱開始 cast02End スペル詠唱最後 cast02Mid cast02Start スペル詠唱開始 cast03End スペル詠唱最後 cast03Mid cast03Start スペル詠唱開始 channel charge clear dashing ボス見逃し時のダッシュアニメ? death HP0時のアニメーション down downed drop 下へ移動するとき flinch front 前へ移動するとき hit hop 上へ移動するとき idle 何もしていないとき pet raise release shield slash01 slash02 slash03 slash04 spawn 登場シーン specialEnd specialStart taunt throw throw02 - castなど複数同じものがあるものは順番にそのアニメーションが行われる。(サフロンが分かりやすい)castの場合、01→次の詠唱は02→次の詠唱は03→01……という感じ
スキンの追加
- 調査中
うまくいかないとき
Descriptionがちゃんと表示されない
- beingIDとNameが一致していないためと思われる。