MODの作り方2

 Featuresを作る


それではどんなソフトウェアを作るかを考えていきましょう。

どんなソフトウェアでも(或いはソフトウェア以外でも)良いのですが、他のソフトと繋がりがあった方が面白いと思います。

例えば2Dエディタを使用するソフトならば、自社が2Dエディタしか作っていなくても、AI社がそのソフトを作る事で何かの2Dエディタを使用して、自社にも利益が発生するかもしれません。

今回は「音声読み上げソフト」を作ってみようと思います。棒読みちゃんとかVOCALOIDとかですね(両者は別物ですが)。

まずはどんなFeaturesを組み込むかを設計しましょう。予め設計することで、あとでコードを書く際に間違える可能性を減らせます。

自分に分かればペイントツールで書いても、メモ帳で書いても良いです。


・音声合成エンジン(強制)
↓スコアエディタ(前提ソフト>"音声合成エンジン")
↓声色ライブラリ(前提ソフト>"音声合成エンジン"、オーディオツール"オートチューン")


えらく適当ですがまあ何でも良いでしょう。 解説用だし沢山作るのめんどくさい
皆さんも自分で考えてみてください。

満足行くまでFeaturesを考えたら、いよいよ実際にMODを作っていきます

前回導入したテストMODのxmlを開きましょう

ここで注意ですが、ちょっとMODを日本語化する方法がわかりません。
日本語だけでなく2バイト文字や全角記号を使用すると文字化けしたりエラーを吐いたりするので、今後MODを弄る際は半角モードにする方が無難です。

今回は音声読み上げソフト(TTS)なので、<Name><Category>をTTSにしておきます。
それからOSに依存させておきましょう。


     <Name>TTS</Name>
     <Category>TTS</Category>
     <OSSpecific>TRUE</OSSpecific>


 その後の<Features>と</Features>の間に各Featureを書きます。

↓これ
      <Features>
        <Feature Forced="TRUE">
          <Name>Original Feature</Name>
          <Category>2D</Category>
          <Description>Setumei</Description>
          <Unlock>1</Unlock>
          <DevTime>1</DevTime>
          <Innovation>1</Innovation>
          <Usability>1</Usability>
          <Stability>1</Stability>
          <CodeArt>0</CodeArt>
        </Feature>
      </Features>


各タグの説明と間に挟むものを以下に示します。



<Feature>
Forced=”TRUE”
From=”他のFeature”
Vital=”TRUE”
このタグはFeatureの始点と終点に必ず必要です
中に他の指示を3つ加えられます。
Forcedにすると強制的に選択された状態にします。
他のFeatureからFrom指定されない限り外せません。
Fromには同じソフトの他のFeatureを指定します。
From指定すると互換が出来て、片方を有効にするともう一方は無効になります
Vitalを有効にすると、そのFeatureを搭載しないソフトは市場で悪い評価を受けます
<Name>
文字
Feature名前です。
<Category>
スキル
2DとかAudioとかのスキルを書きます。
このFeature開発するのに必要なスキルを指定します
ArtCategory
アーティストのスキル
(省略可)
このタグを使えば、プログラマーとアーティストに別のスキルを要求することができます
省略すると必要なスキルはどちらも同じです。
<Description>
文字
Featureにマウスを合わせると出る説明文を書きます。
<Unlock>
年代(0~)
(省略可)
このFeatureが解禁される年代を指定します
この年代を過ぎても、FromDependencyで指定してるFeatureが解禁されていないと使えません。
<DevTime>
数字(小数点可)
開発期間、つまりコード量/アート量を指定します。
基本的に11月分です。
<Innovation>
<Usability>
<Stability>
数字
「革新性」「ユーザビリティ」「安定性」に数値を加えます。
それらは、全てのFeatureそれぞれの数字を合計したものの比率で効力が決定されるので、全てにやたら大きい数字を入れても無駄です。
<CodeArt>
01
コード量とアート量のバランスです
DevTimeで指定した数字が割り振られます。
0ならアート100%
1ならコード100%です。
Server
数字
(小数点可)
(省略可)
このタグを使えばそのFeatureをサーバー通信料を要求するように出来ます。
アクティブユーザー1人あたり何メガバイト使用するか指定します。
<Dependency Software="他のソフト ">
他のFeature
必要な前提Featureを指定します。



それでは表を基にFeatureをガシガシ書いていってください。
以下に例を示します。

        <Feature Forced="TRUE">
          <Name>TTS Engine</Name>
          <Category>Audio</Category>
          <Description></Description>
          <Unlock>1980</Unlock>
          <DevTime>3</DevTime>
          <Innovation>1</Innovation>
          <Usability>1</Usability>
          <Stability>1</Stability>
          <CodeArt>1</CodeArt>
        </Feature>

このFeatureは、強制的に選択されていて、プログラマーにAudioスキルが必要で、開発に3ヶ月かかります。

        <Feature Vital="TRUE">
          <Name>Score Editor</Name>
          <Category>Audio</Category>
          <Description></Description>
          <Unlock>1980</Unlock>
          <DevTime>2</DevTime>
          <Innovation>1</Innovation>
          <Usability>3</Usability>
          <Stability>1</Stability>
          <CodeArt>0.8</CodeArt>
          <Dependency Software="TTS">TTS Engine</Dependency>
        </Feature>

このFeatureは、Vitalが有効で、プログラマーとアーティストにAudioスキルが必要です。
更にユーザビリティの割合が増加し、コード:アートは8:2です。
そして「TTS Engine」が前提として必要です。

        <Feature>
          <Name>Voice liverary</Name>
          <Category>Audio</Category>
          <Description></Description>
          <Unlock>1996</Unlock>
          <DevTime>3</DevTime>
          <Innovation>3</Innovation>
          <Usability>1</Usability>
          <Stability>0</Stability>
          <CodeArt>0.3</CodeArt>
          <Dependency Software="TTS">TTS Engine</Dependency>
          <Dependency Software="Audio Tool">Autotune</Dependency>
        </Feature>

このFeatureは1996年に一応は解禁されますが、オーディオツールのオートチューンに依存しているので、オートチューンを搭載したソフトが無ければ選択出来ません。
そして、革新性が向上して安定性が大きく落ちます。


…とまあ、こんな感じで2~3個程Featureを追加したら一度ゲームを起動してみてください

何かを間違えていると警告が出ます。バグみたいなもんです。
深刻でなければ親切にもエラーメッセージでどこを間違えているか教えてくれるので、ゲームを終了して修正してください。

例えば、他のFeatureを指定する際に大文字と小文字を間違えていませんか?
タグそのものや、<>を間違えて消してしまっていませんか?
同じタグや同じ名前のFeatureが存在していませんか?

何度警告が出ても画面を殴っちゃ駄目ですよ。ちなみにこの警告は「85行の<DevTime>タグがおかしい」と言ってます。
一度に多くのFeatureを追加してエラーが出るとどこが悪いのか判明するのに時間がかかりますから、面倒でもちまちまゲームを起動し確認すると吉です。
バグを修正する際はバックアップを取るなどすると、間違えた際に戻すのが簡単です。

警告が出ない場合はミスが無いか、そもそもMODとして認識されていないかのどちらかですが、まあテンプレをコピペしてフォルダ名と場所、ファイルの形式(.txt→.xml)を間違えていなければとりあえずMODとして認識はされます。

 ミスが出なかった方はスゴイ!

無事にミスを取り除けたら、早速有効にしてゲームを始めてみてください。


無事に設計図から選択出来るようですね!
さて、これで"プレイヤー"はこのソフトを作って売ることが出来るようになりましたが…

実はこの状態ではAIの競合他社がこのソフトを作ってくれません

それに製品名もOSのそれを流用していて寂しいです。

どうせなら競合他社にソフトをバンバン作ってもらって、製品名も指定したいですよね。

次は、競合他社に作らせる設定と、ソフトの製品名を作りましょう。


次→ 他社のAIと製品名設定

MOD雛形の導入 ←前

Software Inc. 攻略トップ

MODの作り方1

MODを作ってみよう

このページではMODの作り方を解説しています。
海外wikiを参考にした部分が多々あります。(外部リンク→https://softwareinc.coredumping.com/wiki/index.php?title=Modding

このゲームはとてもMODの作成が簡単になっています。
どのくらい簡単かって?HTML(やその他のマークアップ言語)で「Hello World」って出力するコードを、調べながらでも書ける人なら作れます。
 

 とりあえず、まずは何も考えずに以下のテンプレをメモ帳にでも(※プログラミング用のソフトがある方はそちらに)コピペしてください。

 <SoftwareType>
  <Name>Original Software</Name>
  <Category>Original Category</Category>
  <Description>Setumei</Description>
  <Random>0.6</Random>
  <Popularity>0.3</Popularity>
  <Retention>0.5</Retention>
  <OSSpecific>FALSE</OSSpecific>
  <OneClient>FALSE</OneClient>
  <InHouse>FALSE</InHouse>
  <TimeScale>1</TimeScale>
  <Iterative>0.8</Iterative>
<NameGenerator>OS</NameGenerator>
  <Features>
    <Feature Forced="TRUE">
      <Name>Original Feature</Name>
      <Category>2D</Category>
      <Description>Setumei</Description>
      <Unlock>1</Unlock>
      <DevTime>1</DevTime>
      <Innovation>1</Innovation>
      <Usability>1</Usability>
      <Stability>1</Stability>
      <CodeArt>0</CodeArt>
    </Feature>
  </Features>
</SoftwareType>

 コピペしたら適当に名前をつけて保存し、拡張子.xmlに変更します
 そうしたら、Software Inc.がインストールされているフォルダ(Steamで購入したなら、ドライブ>program files>Steam>steamapps>common>Software Inc)に移動してください。



そこに「Mods」というフォルダがある筈なので、入ります。


TESTという名前で新しくフォルダを作ってください
このフォルダの名前が、ゲームが認識するMODの名前となります。



TEST」 フォルダの中に更に「SoftwareTypes」という名前でフォルダを作ってください



「SoftwareTypes」フォルダの中に先程コピペしたxmlファイルを入れます


 はい。これでMODの導入が終わりました。

早速ゲームを起動して、オプションを見てみましょう。

無事に追加されていますか?もしエラーになっていた方は手順を間違えてないか確かめてください。
追加されていたら「新規ゲーム」を始めてみましょう。


 右下のMODメニューに「TEST」が追加されてますね。
 早速有効にして、なんでも良いのでゲームを起動して、ソフト開発を見てください。



 Original Softwareというソフトが新しく追加されていますか?
追加されていないという方はxmlファイルを「SoftwareTypes」フォルダの中にちゃんと入れたか確かめてください。

おめでとうございます!これでオリジナルのMODの準備が出来ました。

後は、先程コピペしたxmlファイルを弄くり回すだけであなただけのソフトを作ることが出来るようになります!


改めてMODの構造を見てみましょう…

<>で囲まれたものは"タグ"と言います。
タグは<>と</>でワンセットになっていて、その間に挟むものでこうしろああしろと指示を出すわけです。
以下に各タグに挟むものと、 その意味を表で示します。


<SoftwareType>
子タグ
親タグです。この間の子タグでソフトの情報を書いていきます。
<Name>
文字
ソフトの名称です。「OS」「ゲーム」「アンチウイルスソフト」とかいうあれです。
<Category>
文字
カテゴリときたら「パソコン」「RPG」「ワークフロー」とかのやつ?と思うでしょうが違います。
これは、製品をリリースした際に記事で「○○業界では無名だが~」とか書かれる、○○の部分です。
<Description>
文字
ソフトを設計する際、ソフトにマウスを重ねると表示される説明文です。
<Random>
01
01の数値を入れます。(小数点可)
1に近いほど販売数の不確実性が高まり、良いソフトでも必ず全員が買うとは限らなくなります
競合他社とのシェア争奪戦の激しさも緩和します。
<Categories>
子タグ
ここに「パソコン」「RPG」「ワークフロー」などのカテゴリを追加していきます。
無くても良いです。その場合のカテゴリは"デフォルト"になります。
詳細はまた今度。
<Popularity>
01
0から1の数値を入れます。(小数点可)
ソフトがどれほど売れるかを決定します。高いと儲かり過ぎますし、低いと採算が合いません。
OSに依存しないソフトは母数が大きいので低く設定しましょう。
<Retention>
01
0.1から0.9の数値を入れます。(小数点可。01は不可)
使用者がどれほど製品を長く使うかに関わります。
0に近ければ、例えシェアを独占しても転落は一瞬です。
<OSSpecific>
TRUE
FALSE
TLUEFALSEを指定して、そのソフトがOSに依存するかを決定します。
例えばアンチウイルスソフトはTRUECMSFALSEです。
<OneClient>
FALSE
FALSEにしてください。
本来なら、TRUEに入れれば「契約業務」に登場するソフトになる筈ですが、まだ現バージョンでは実装されていないようです。
<InHouse>
TRUE
FALSE
TRUEFALSEで、社内用の開発が出来るか否かを指定します。
2Dエディタやゲームエンジンなどの「他のソフトの前提になる」ソフトならTRUEにする意味はあります。
しかしゲームやCMSといった最終製品を社内用にしても意味が無いです。
<TimeScale>
01
Featuresの製作期間に倍率をかけます。主にカテゴリの差別化に使います。(例えば、ゲームのスポーツは、他より短時間で作れる)
<Iterative>
01
01の数値を入れます。(小数点可)
AI社が続編を作る可能性を指定します。1なら続編ばかり作りますし、0なら新作ばかり作ります。
ナンバリングが並ぶ事が嫌なら低くしましょう。
ただし名前の候補が無くなると続編しか作らなくなります。
<NameGenerator>
txtファイル名
何か指定しないといけませんが、さしあたり「OS」とでも書いておいてください。
<Features>
子タグ
この間にソフトの目玉であるFeatures(機能)を追加していきます。長いので詳細は後ほど。

と言うわけで、MODでオリジナルソフトウェアを作成する前知識が整ったところで、次にどんなMODを作るかを考えて、記述していきましょう。


次→ Featuresを作る

Software Inc. 攻略トップ