MOD作成(11)


【.rscファイルの作成】

READMEの7.B.10. から順に.rscファイルを作成します
見慣れない拡張子ですが、中身はテキストファイルと同じです
ここからはテキストとのにらみ合いですので、ミスタイプ、修正箇所の見落とし、リネーム忘れに注意しましょう

手助けのために、apiaryのフォルダを開きます
作業の流れとしては
  1. 作成予定の.rscと同じ内容のものをapiaryフォルダからコピペする
  2. .rscを自分のものにリネームする
  3. オリジナルの.rscと比較しながら、作成用の.rscの中身を編集する
となります
何点か同じ名前の.rscファイルがあるのでファイルのパスもここでは表示します
その.rscが何を示しているか、分かる/推測できる限りの事は記入します


  • 7.B.10. example/building/Models/MaterialInstance/Apiary.rsc
リネーム後:
Dice.rsc

内容:
火事や雪が降った時のテクスチャ処理

MaterialInstance/Apiary.rscを自身のMODがあるMaterialInstance内にコピーし、Dice.rscにリネーム
Dice.rscを開き、修正箇所を自作物用に置き換える(画像赤枠→青枠)
zero_108.jpg
zero_109.jpg

お手本のapiaryとほぼ同じ階層にしたので、ほとんどいじる必要がありません
Apiaryのワードがある行が修正箇所となり、ApiaryをDiceに変えればだいたい終わりです

DiceTexture.rscは後で作成します
編集してない行のファイルパスは、exampleフォルダの中でなく
.pkgから吸いだしたresourceの中のファイルを使っていますのでそのまま利用します

以下、同じような修正の繰り返しですので、画像等は省きます
「apiary」のワードで検索をかけ、その行を修正していけばほとんどOKです
また、注意点がある場合はその項目に明記します


  • 7.B.11. example/building/Models/MaterialInstance/ApiaryTexture.rsc
リネーム後:
DiceTexture.rsc

内容:
.fbxで使用するテクスチャとそのテクスチャ座標

参考:
テクスチャ座標

MaterialInstance/ApiaryTexture.rscを自身のMODがあるMaterialInstance内にコピーし、DiceTexture.rscにリネーム
DiceTexture.rscを開き、修正箇所を自作物様に置き換える

この作業も正しい場所にコピペとリネーム(Apiaryの部分をDiceに変更)だけなので記述省略します

備考:
テクスチャ座標はClampのままで問題ありません
apiaryのテクスチャの拡張子は.pngになっているので自作物に使っているテクスチャの拡張子に変更するのを忘れないように


  • 7.B.12. example/building/Models/MaterialInstance/ApiaryAO.rsc
リネーム後:
DiceAO.rsc, DiceBuild01AO.rsc, DiceBuild02AO.rsc

内容:
AOテクスチャの指定

備考:
拡張子に注意 この記事通りなら.bmpで出力されています
また、ApiaryBuild01AO.rsc、ApiaryBuild02AO.rscもここでコピペ/リネームをします
今回は全て同じ形のオブジェクトなのでテクスチャはどれも「DiceAO.bmp」を使い回します
DiceBuild01AO.bmpの様な存在しないテクスチャを指定しないように注意しましょう


  • 7.B.13. example/building/Models/ApiaryMesh.rsc, ApiaryBuild01Mesh.rsc, ApiaryBuild02Mesh.rsc
リネーム後:
DiceMesh.rsc, DiceBuild01Mesh.rsc, DiceBuild02Mesh.rsc

内容:
使用するオブジェクト及びその数の指定
AOテクスチャや火事等の特殊時のテクスチャ処理の設定を記載したした.rscの指定
建築物がクリックされ選択された時、黄色で強調表示されるエッジの処理

備考:
MaterialInstanceから一つ上のファイルなので間違わないように
instanceCount→恐らくオブジェクトの要素の数 子はカウントせず親のみ(要検証)
zero_111.jpg

transitionDistance→不明 このオブジェクトが見えなくなる距離か?そのままで問題なし


  • 7.B.14. example/building/Models/ApiaryPicking.rsc, ApiaryPicking01Mesh.rsc, ApiaryPicking02Mesh.rsc
リネーム後:
DicePicking.rsc, DicePicking01Mesh.rsc, DicePicking02.rsc

内容:
不明(選択された時のオブジェクトと考えたが7.B.13.と被る)


  • 7.B.15. example/building/Models/ApiaryPoints.rsc
リネーム後:
DicePoints.rsc

内容:
ダミーヘルパーオブジェクトの指定


  • 7.B.17. example/building/Models/MaterialInstance/ApiaryFootprint*
リネーム後:
DiceFootprintMaterial.rsc, DiceFootprintDamageMaterial.rsc, DiceFootprintTexture.rsc

内容:
床のテクスチャの指定及び処理

備考:
場所はMaterialInstance内に戻る 7.B.16.は床用テクスチャの準備なので省略


  • 7.B.23. example/building/Apiary.rsc
リネーム後:
Dice.rsc

内容:
ツールバーのどこに設置するかの指定及びテンプレートの指定

備考:
Toolbar.rsc:servicesの部分でアイコンの場所を決める
今回は福祉サービスに設置するが、例えば食料の場所に置きたい場合、servicesをfoodにする
分類はresource/Game/Toolbar.rscで見られる


  • 7.B.24. /example/building/apiaryResources.rsc
リネーム後:
diceResources.rsc

内容:
Dice.rscの指定 詳細は不明

備考:
Apiary.rsc及びその隣のapiaryの改変を忘れずにDice.rsc:diceとなる


【7.B.18. /building/UI/ApiarySpriteSheet* と 7.B.19. ApiaryStringtable.rsc】
他の.rscとは違う作業が入るので【】で区切り直します

リネーム後:
DiceSpriteSheet.rsc, DiceSpriteSheetMaterial.rsc, DiceSpriteSheetTexture.rsc, DiceStringTable.rsc

内容:
アイコン及びゲーム内でテキスト全般

準備:
mymod/buildingの中にUIという名前のフォルダを作成 更にその中に、Spriteフォルダを作成
zero_113.jpg

ゲーム内用のアイコンを作成(MODのON/OFF画面で表示されるアイコンとは別)
参考に漁師及びそれで取れる資源(魚)のアイコン
zero_112.jpg
計5つ お手本のapiaryも5つ用意されている

今回は機能を極限まで削っているので制作するのはツールバーに表示されるアイコン1個のみ

アイコンは手っ取り早く「透明」を作れる.png形式が望ましいです
Paint.Netで簡易的なアイコン作成を紹介

サイズ48x48を用意する このままでは背景は白なので透明にする
画像全体を選択した状態で「選択範囲の消去」や「切り取り」を選ぶ
zero_114.jpg
するとデフォルトで用意された白の画像はなくなり、透明な画像ができます
できた透明な画像に好きなように絵を描く この際、絵の具の色は白にしておくと
Banishedで用意されている他のアイコンとの違いが少なくなります

zero_115.jpg
背景のグレーのチェック模様がPaint.Netでは透明を表しています
他のペイントソフトも似た様なものなので参考にして下さい

そしてこの画像はMOD一覧アイコンとしても使い回します
まず作成できた画像をmoymod/buildingフォルダの中にIcon.pngとして保存します
そして次にこの画像を32x32にリサイズし、mymod/building/UI/SpriteフォルダにBuildDice.pngとして保存してください
これでアイコンの画像作成は終わりです .rscの説明に戻ります

DiceSpriteSheet.rscの内容:
ゲーム内で表示されるアイコンを、用意した画像らを元に「一枚絵」に作成するための設定

備考:
編集は基本的に他の.rscと同じ
imageName→
作成される一枚絵の名前の指定 つまり用意するのではなく作成されるもの
imageWidth、Height→
一枚絵の大きさの指定 今回は用意した画像は1枚だが、そのサイズよりも大きくないといけない 今回は128x128にすると良い
sprites→
ゲーム内で表示されるテキストとセットで使うアイコンの指定
作成するMODは建築して終わりなので使わない行は削除する(画像赤枠)
zero_116.jpg
削除する際は{}(括弧)を消しすぎ/残しすぎに注意 
括弧がどこまでかかっているのかはインデントや括弧をクリックするとハイライトされた場所で分かる


DiceSpriteSheetMaterial.rscの内容:
DiceSpriteSheetTexture.rscの場所の指定?


DiceSpriteSheetTexture.rscの内容:
生成された1枚絵の指定

備考:
1枚絵はMODのbuild時にbuilding直下にBuildフォルダが生成され、その中に作成される


DiceStringTable.rscの内容:
ゲーム内で表示されるテキストの作成

備考:
DiceSpriteSheet.rsc同様使わない行は削除する この場合profession(職業)の3行とHoneyの1行は削除する
String _name = "Apiary"は建物の名前
String _name = "ApiaryLwr"は不明 ログに流れる場合に使われるか?
String _name = "ApiaryTip";アイコンにマウスを当てた場合に表示される建物の概要
勿論このApiaryの部分もDiceに変更する


【7.B.22. building/Template/Apiary.rsc】
今回のMODには職業と施設から生成される資源はないので20.と21.はスキップします
またここがMOD作成の第二の壁ですので【】で区切ります
テンプレートの内容もなるだけ噛み砕いで説明しますので本当の意味とは少しずれている部分があります
また、多くの部分が完全に理解できていませんので情報求む

リネーム後:
Dice.rsc

内容:
このMODのゲーム内での種類、効果、使用するオブジェクトの指定等のMOD定義全般

準備:
buildフォルダ直下にTemplateフォルダを作成
完成物のファイルをアップロードしました(.txt形式) これを見ながら解説します
井戸と養蜂場のテンプレート.rsc(Well.rsc Apiary.rsc)と見比べる理解が早くなります


  • ComponentDescription resource
zero_117.jpg
この部分で、このMODの何を定義するのかを指定します
例えば「build」はそのMODに必要な資材と労働力を指定します
この項目以下より、ここで指定されたものを定義していきます

UpdatePriority _updatePriorityの部分は不明なのでそのまま 建築の際の段階指定でもなかった


  • RadiusDescription radius
不明 直訳は「半径」だが、幸福等の範囲は別に指定されているので違う


  • ClearAreaDescription cleararea
建築する際の整地の設定
農地等のドラッグ範囲指定系でその場所に資源等の障害物がある際の撤去に割くワーカーの人数や
地面を平らにするか等の指定
今回は空白(デフォルト/null)にする

  • StateMachineDescription statemachine
不明 空白にしてデフォルトにする

  • ZoneDescription zone
不明 空白にしてデフォルトにする


  • DestroyDescription destroy
火事や竜巻等で建物が破壊された時に建物及びそのテクスチャに変化があるかどうかの指定
1にすることでONになる


  • StatusIconDescription statusicon
建築を止めた時にでる一時停止マーク等のアイコンの大きさや位置の指定


  • ParticleDescription particle
火事の発生率等の指定 詳細は不明
Particle _particleの行のFireMedium.rscの部分を変えることで恐らく発生率を制御できる(例:FireSmall.rscに変更)

  • ToolbarDescription toolbar
ツールバーのテキストに使用する.rscの指定
UI/DiceSpriteSheet.rsc等にリンクしている

int _group = の部分は不明


  • StorageDescription storage
貯めこむ資源の指定 主に家に使われる(WoodHouse.rsc参照)
貯めこむ必要はないので何も記入しない


  • CreatePlacedDescription createplaced
PathBits _placeBitsは詳細不明 歩行可能判定を指定している
建築物の大きさや歩行可能判定の指定

width/heightで建築物の大きさを指定 ここで3x3マス

footprintRotation footprintのテクスチャの向きを角度で指定する、基本的には0で良い

PathBits _placeBitArrayも歩行可能指定

Obstacle | Fast | Fasterと書くことで左から0,1,2と割り当てて障害物や歩行速度変化の指定をしている?

String _placeBitmapこの部分で上で指定した数値を使って当たり判定を記入していく 建物を真上から見た図
他のテンプレート.rscを参考にすると分かりやすい


  • MapDescription map
CreatePlacedDescription createplacedと似たようなもの

bool _addToOverhead Color _mapColor共に詳細は不明


  • DecalDescription decal/PickingDescription picking/ModelDescription model/HighlightDescription highlight
使用するモデルを.rscを通して指定 footprintもここで指定

MaterialInstance _materialsでfootprint関連を指定

float _mapWidth = 64.0はfootprintに使う画像のサイズ指定
64x64サイズの画像を使うので64.0に指定
この記事ではfootprintの画像は自由にしてくださいとしているので値の指定注意

DecalLocation _decalLocations
footprint画像のどの範囲を使用するかの指定
今回はオブジェクトは1種類なので範囲指定などはせず、全面を使う 複数はWoodHouse.rsc参照
x0,y0は始点、x1,y1は終点を表す 全面を使うのでそれぞれ0と64を記入


  • InteractDescription interact
points.rscの指定


  • WorkDescription work
非常に説明しにくい
建築及び稼働時の職人の数の自動割り当ての最大数 要求最大ルダー数とは異なるので注意
例えば、要求最大ビルダー(.fbxのbuild_XXXの数)が3でこの数値が1の場合
この建築物の他に建築しなければならない建物があると、この建築物に割り当てられるビルダーは
いくら職業欄でビルダーを増やしても、他に未完成の建築物があると1人になる 勿論、ビルダーが他の建物にも十分に振り分けられると1人より増える

ゲーム内で職業の振り分け直しをした時に、Aの釣り小屋とBの釣り小屋にどちらも均等に
言い換えると中途半端に振り分けられる現象の原因がこれ


  • WorkPlaceDescription workplace
職業の設定 今回は空欄


  • BuildDescription build
建築物の必要資材、資材数及び労働力の指定


  • UIDescription ui
どのUIを使うか指定
このMODにはないが、例えば人が住む場合ResidenceUI(誰が住んでいるか)を指定したり
何かを生産する場合ProductionUI(どれだけ生産できたか)を追加すると、建築物をクリックされた際にそのUIが出てくる


  • GroupDescription groupEmpty
不明


今回のMODに必要な項目は以上
多機能化するほど項目が増えていく



  • 最終更新:2015-03-03 22:11:38

このWIKIを編集するにはパスワード入力が必要です

認証パスワード