Minecraft(Mod)のあれこれ

MincraftのMod(1.12.2 or later)について解説します。ForgeやOptifineの導入といった基本的なことから、一つ一つの小さなことまで様々なことに手を出す予定.GOOGLE ANALYTICSを利用中

InGameInfoxml でF3スクリーンをスマートにする/編集例

簡単な説明

InGame Info XML(以下、igi)はF3スクリーンをより見やすく、わかりやすくします。フォーマットはXML,JSON,TXTがサポートされているそうですが、今回はXMLを利用します。Modバージョンは1.12.2-2.8.2.94です。最後にxmlファイルの一例が記載されています。

f:id:hisui_kawasemi:20190307134824p:plain
一例

目次

配布場所

InGame Info XML

LunatriusCore (前提Mod)

必要なもの

  • XMLを編集するためのエディタ。 Notepad++など。メモ帳でもできないわけではありませんが、あると便利です。

チュートリアル

  1. Minecraftのフォルダ/config/ においてください。
  2. /igi load 作成したファイル名 で設定を更新できます。
  3. 今読み込まれているファイルを変更した場合は /igi reloadで変更を反映させることができます
    • このとき、ランチャーを開いたままにしておくと、エラーが起きたときに対処しやすくなります。ログにエラーが起きた場所が出力されるからです。 一例) [Fatal Error] :16:4: The end-tag for element type "str" must end with a '>' delimiter. この場合、16行目で近辺で<>が閉じられていないことがわかります。
  4. igiは /igi enable で有効に /igi disable で無効にできます。
  5. /igi taglist で確認できる事柄を確認できます。

実際に編集してみる

簡単なものを作る

サンプル、長いので畳んであります

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<config> <!-- (1) -->
  <lines at="topleft"> <!-- (2) -->
    <line> <!-- (3) -->
      <str>Hello World! </str> <!-- (4) -->
      <str> Current fps is {fps}</str> <!-- (5) -->
    </line>
  </lines>
</config>

f:id:hisui_kawasemi:20190307152322p:plain
出力

1から順に解説します。

  • (1) はルート要素です。もっとも外側にあり、そのファイル内には一つしか存在しません。
  • (2) は含まれる要素をどこに出力させるかです。at属性で指定します。
A\B left center right
top
middle
bottom

A->Bの順で指定します。今回の例だとtopleftといった具合です。

  • (3)の内側にその行の具体的な処理を書いていきます。(4),(5)のように複数の要素を持たせることも可能です。
  • (4)は要素が文字列であることを示します。これに関連するタグは次の三つです。
タグ名 意味
str 文字列
var 変数、例えばfps
num 定数、例えば 30

ただし、numとvarの厳密な使い分けはないようです。

  • (5)変数を{}で囲うとその値が出力されます。今回は今現在のfpsです。
演算

サンプル、長いので畳んであります

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<config>
  <lines at="topleft">
    <line>
      <str>fps+30:</str>
      <add>
         <var>fps</var>
         <num>30</num>
      </add>
    </line>
    <line>
      <str>fps/30:</str>
      <div>
         <var>fps</var>
         <num>30</num>
      </div>
    </line>
  </lines>
</config>

f:id:hisui_kawasemi:20190307154450p:plain
出力例
使い方

<OperationType>
  数値1
  数値2
</OperationType>

結果: 数値1 OperationType 数値2が返ります。 OperationTypeの種類は下表を参照してください

タグ名 演算の種類
add
sub
mul
div
mod 余り
modi 整数値の余り
pct パーセント(%)
四捨五入

サンプル、長いので畳んであります

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<config>
  <lines at="topleft">
    <line>
      <str>fps/30:</str>
      <round>
        <div>
           <var>fps</var>
           <num>30</num>
        </div>
        <num>0</num>
      </round>
    </line>
  </lines>
</config>

f:id:hisui_kawasemi:20190307161643p:plain
出力例
使い方

<round>
  数値 
  <num> 四捨五入する位置 </num>
</round>

四捨五入する位置は、小数点以下第一位を0としてより詳しくするには正の値を、おおざっぱにするには負の値を指定します。 例えば、数値が 1810.893のとき、結果は次のようになります。

位置 結果
2 1810.89
0 1811
-2 1800
条件分岐1 if

サンプル、長いので畳んであります

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<config>
  <lines at="topleft">
    <line>
      <if>
        <var>daytime</var>
        <str>昼です</str>
        <str>夜です</str>
      </if>
    </line>
  </lines>
</config>

f:id:hisui_kawasemi:20190307170021p:plain
出力例
使い方

<if>
  真偽値
  真の時の処理
  負の時の処理
</if>
条件分岐2 operation

サンプル、長いので畳んであります

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<config>
  <lines at="topleft">
    <line>
      <str>Direction = </str>
      <operation>
        <str>ge</str>
        <var>direction</var>
        <!-- 180 ~ 90 ~ 0 ~ -90 ~ -180 -->
        <!--  N     W   S     E     N  -->
        <num>168.75</num>
        <num>123.75</num>
        <num>78.25</num>
        <num>11.25</num>
        <num>-11.25</num>
        <num>-78.25</num>
        <num>-123.75</num>
        <num>-168.75</num>
        <num>-180</num>
                
        <str>(N)</str>
        <str>(NW)</str>
        <str>(W)</str>
        <str>(SW)</str>
        <str>(S)</str>
        <str>(SE)</str>
        <str>(E)</str>
        <str>(NE)</str>
        <str>(N)</str>            
      </operation>
    </line>
  </lines>
</config>

f:id:hisui_kawasemi:20190307183934p:plain
出力例
サンプルは次のように展開されます

auto operation(double direction)
{
    if(direction >= 168.75) { return "N"; }
    else if(direction >= 123.75) { return "NW"; }
 //以下省略
}

使い方

<operation>
  <str>OperationType</str>
  <var>変数</var>
  
  条件1
  ...
  条件N

  処理1
  ...
  処理N
</operation>
OperationType 内容
gt >
lt <
ge >=
le <=
eq ==
ne !=
条件分岐3 max,min

サンプル、長いので畳んであります

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<config>
  <lines at="topleft">
    <line>
      <max>
        <var>chestplatedamageleft</var>
        <num>0.5</num>
        <round>
          <pct>
            <var>chestplatedamageleft</var>
            <var>chestplatemaxdamage</var>
          </pct>
          <num>1</num>
        </round>
        <str/>
      </max>
    </line>
  </lines>
</config>

f:id:hisui_kawasemi:20190307194028p:plain
出力例

使い方

<max>
  A
  B
  
  A>Bの時の処理
  !(A>B)の時の処理
</max>
文字列を修飾する
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<config>
  <lines at="topleft">
    <line>
      <str>$1こ$2の$3よ$4う$5に$6文$7字$8列$9は$a修$b飾$cで$eき$fま$kす。$l太字や$m打消し線、$n下線、$o斜体$rを$r$1$l$o左にあるように複数効果を重ねて$r利用可能です</str>
    </line>
  </lines>
</config>

f:id:hisui_kawasemi:20190307195341p:plain
出力例

次の色が指定できます:

記号 記号 記号 記号
$0 $1 $2 $3
$4 $5 $6 $7
$8 $9 $a $b
$c $d $e $f

次の効果が指定できます(重複可)

記号 効果 記号 効果
$k* 効果* $l 太字
$m 打消し線 $n 下線
$o 斜体 $r 効果・色のリセット

wikiのみに記載あり、効果なし

一番最初のスクリーンショットxmlです。

長いので畳んであります

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
Copylight (C) hisui_kawasemi 2019-

If you want to distribute this,licensed under the CC BY-NC-SA 4.0
see details https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode

Otherwise,licensed under CC0 1.0
see details https://creativecommons.org/publicdomain/zero/1.0/deed.en

このファイルを二次配布したい場合はCC 表示-非営利-継承 4.0ライセンスの下で利用できます
詳しくは https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.ja

そうでなければCC0ライセンスの下で利用可能です。
https://creativecommons.org/publicdomain/zero/1.0/deed.ja

-->
<config>
  <lines at = "topleft">
    <!-- 経過日数と時間について -->
    <line>
      <str>$9$l</str>
      <add>
        <var>day</var>
        <num>1</num>
      </add>
      <str>日目 $7ゲーム内時間:$9$l{mctime}$7(</str>
      <if>
        <var>daytime</var>
        <str>$b$l昼</str>
        <str>$c$l夜</str>
      </if>
      <str>$7)</str>
      <str> 時間:$9$l{rltime}</str>
    </line>
    <!-- FPS,メモリについて -->
    <line>
      <str>$7FPS:</str>
      <operation>
        <!-- 
                   if(fps >= 30) { ... }
                   else if(fps > ...
               -->
        <str>ge</str>
        <var>fps</var>
        <num>45</num>
        <num>25</num>
        <num>15</num>
        <num>7</num>
        <num>0</num>
        <str>$d$l</str>
        <str>$b$l</str>
        <str>$a$l</str>
        <str>$e$l</str>
        <str>$c$l</str>
      </operation>
      <str>{fps} $7メモリ利用率:</str>
      <operation>
        <str>lt</str>
        <round>
          <mul>
            <div>
              <num> {memused} </num>
              <num> {memmax}</num>
            </div>
            <num>100</num>
          </mul>
          <num>0</num>
        </round>
        <num>60</num>
        <num>74</num>
        <num>85</num>
        <num>94</num>
        <num>100</num>
        <str>$d$l</str>
        <str>$b$l</str>
        <str>$a$l</str>
        <str>$e$l</str>
        <str>$c$l</str>
      </operation>
      <round>
        <pct>
          <var>memused</var>
          <var>memmax</var>
        </pct>
        <num>0</num>
      </round>
      <str>%</str>
    </line>
    <!-- プレイヤーの座標、バイオーム-->
    <line>
      <str>$7$l(X,Y,Z) = $9$l(</str>
      <!--プレイヤーの向いている向きが座標をどのように変化させるかを書き出す-->
      <!--増加するとき$e,減少するとき$2-->
      <operation>
        <str>ge</str>
        <var>direction</var>
        <!-- 180 ~ 90 ~ 0 ~ -90 ~ -180 -->
        <!--  N     W   S     E     N  -->
        <!-- N  -Z,W -X -->
        <num>168.75</num>
        <num>123.75</num>
        <num>78.25</num>
        <num>11.25</num>
        <num>-11.25</num>
        <num>-78.25</num>
        <num>-123.75</num>
        <num>-168.75</num>
        <num>-180</num>

        <str>{xi},{yi},$2$l{zi}$9$l)($c$lN$9$l)</str>
        <str>$2$l{xi}$9$l,{yi},$2$l{zi}$9$l)(NW)</str>
        <str>$2$l{xi}$9$l,{yi},{zi})(W)</str>
        <str>$2$l{xi}$9$l,{yi},$e$l{zi}$9$l)(SW)</str>
        <str>{xi},{yi},$e$l{zi}$9$l)(S)</str>
        <str>$e$l{xi}$9$l,{yi},$e$l{zi}$9$l)(SE)</str>
        <str>$e$l{xi}$9$l,{yi},{zi})(E)</str>
        <str>$e$l{xi}$9$l,{yi},$2$l{zi}$9$l)(NE)</str>
        <str>{xi},{yi},$2$l{zi}$9$l)($c$lN$9$l)</str>

      </operation>
    </line>
    <line>
      <str>$7$l(ChunkOffsetX,ChunkOffstZ) = $9$l({chunkoffsetx},{chunkoffsetz})</str>
      <if>
        <var>slimes</var>
        <str>$9$l(スライムチャンク)$7</str>
      </if>
    </line>
    <line>
      <str>$7$lBiome:$9$l{biome} $7$lDimension:$9$l{dimension}</str>
    </line>
    <line>
      <str>$7月のの位相:$9$l{moonphase} </str>
      <str>$7天気:$9$l</str>
      <if>
        <var>thundering</var>
        <str>雷雨</str>
        <if>
          <var>snowing</var>
          <str></str>
          <if>
            <var>raining</var>
            <str></str>
            <str>晴れ</str>
          </if>
        </if>
      </if>
    </line>
    <!--モンスターの沸き条件-->
    <line>
      <str>$7明るさ:$b$l</str>
      <operation>
        <str>lt</str>
        <var>light</var>
        <num>7.5</num>
        <str>$c$l</str>
      </operation>
      <str>{light} </str>
    </line>
    <line>
      <str>$7難易度:$9$l{difficulty} $7(地域難易度: $9$l{localdifficulty}$7) </str>
    </line>
    <!--        <line>
           <str>$7ハードコア:</str>
           <if>
               <var>hardcore</var>
               <str>$c$lはい</str>
               <str>$b$lいいえ</str>
           </if>
       </line> -->
    <line>
      <operation>
        <str>lt</str>
        <var>airticks</var>
        <var>maxairticks</var>
        <str>$7酸素ゲージ持続時間:$9$l</str>
      </operation>
      <operation>
        <str>lt</str>
        <var>airticks</var>
        <var>maxairticks</var>
        <round>
          <div>
            <var>airticks</var>
            <num>20</num>
          </div>
          <num>1</num>
        </round>
      </operation>
      <operation>
        <str>lt</str>
        <var>airticks</var>
        <var>maxairticks</var>
        <str></str>
      </operation>
    </line>
    <line>
      <str> </str>
    </line>
<!--ポーションによる効果について。それぞれについてつぶしていく(最大で16個)-->
    <!--        <line><str> </str></line> -->
    <line>
      <max>
        <var>potiondurationticks0</var>
        <num>0.5</num>
        <if>
          <var>potionnegative0</var>
          <str>$c$l{potionduration0} {potioneffect0} $r{potionicon0}</str>
          <str>$b$l{potionduration0} {potioneffect0} $r{potionicon0}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks1</var>
        <num>0.5</num>
        <if>
          <var>potionnegative1</var>
          <str>$c$l{potionduration1} {potioneffect1} $r{potionicon1}</str>
          <str>$b$l{potionduration1} {potioneffect1} $r{potionicon1}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks2</var>
        <num>0.5</num>
        <if>
          <var>potionnegative2</var>
          <str>$c$l{potionduration2} {potioneffect2} $r{potionicon2}</str>
          <str>$b$l{potionduration2} {potioneffect2} $r{potionicon2}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks3</var>
        <num>0.5</num>
        <if>
          <var>potionnegative3</var>
          <str>$c$l{potionduration3} {potioneffect3} $r{potionicon3}</str>
          <str>$b$l{potionduration3} {potioneffect3} $r{potionicon3}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks4</var>
        <num>0.5</num>
        <if>
          <var>potionnegative4</var>
          <str>$c$l{potionduration4} {potioneffect4} $r{potionicon4}</str>
          <str>$b$l{potionduration4} {potioneffect4} $r{potionicon4}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks5</var>
        <num>0.5</num>
        <if>
          <var>potionnegative5</var>
          <str>$c$l{potionduration5} {potioneffect5} $r{potionicon5}</str>
          <str>$b$l{potionduration5} {potioneffect5} $r{potionicon5}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks6</var>
        <num>0.5</num>
        <if>
          <var>potionnegative6</var>
          <str>$c$l{potionduration6} {potioneffect6} $r{potionicon6}</str>
          <str>$b$l{potionduration6} {potioneffect6} $r{potionicon6}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks7</var>
        <num>0.5</num>
        <if>
          <var>potionnegative7</var>
          <str>$c$l{potionduration7} {potioneffect7} $r{potionicon7}</str>
          <str>$b$l{potionduration7} {potioneffect7} $r{potionicon7}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks8</var>
        <num>0.5</num>
        <if>
          <var>potionnegative8</var>
          <str>$c$l{potionduration8} {potioneffect8} $r{potionicon8}</str>
          <str>$b$l{potionduration8} {potioneffect8} $r{potionicon8}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks9</var>
        <num>0.5</num>
        <if>
          <var>potionnegative9</var>
          <str>$c$l{potionduration9} {potioneffect9} $r{potionicon9}</str>
          <str>$b$l{potionduration9} {potioneffect9} $r{potionicon9}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks10</var>
        <num>0.5</num>
        <if>
          <var>potionnegative10</var>
          <str>$c$l{potionduration10} {potioneffect10} $r{potionicon10}</str>
          <str>$b$l{potionduration10} {potioneffect10} $r{potionicon10}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks11</var>
        <num>0.5</num>
        <if>
          <var>potionnegative11</var>
          <str>$c$l{potionduration11} {potioneffect11} $r{potionicon11}</str>
          <str>$b$l{potionduration11} {potioneffect11} $r{potionicon11}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks12</var>
        <num>0.5</num>
        <if>
          <var>potionnegative12</var>
          <str>$c$l{potionduration12} {potioneffect12} $r{potionicon12}</str>
          <str>$b$l{potionduration12} {potioneffect12} $r{potionicon12}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks13</var>
        <num>0.5</num>
        <if>
          <var>potionnegative13</var>
          <str>$c$l{potionduration13} {potioneffect13} $r{potionicon13}</str>
          <str>$b$l{potionduration13} {potioneffect13} $r{potionicon13}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks14</var>
        <num>0.5</num>
        <if>
          <var>potionnegative14</var>
          <str>$c$l{potionduration14} {potioneffect14} $r{potionicon14}</str>
          <str>$b$l{potionduration14} {potioneffect14} $r{potionicon14}</str>
        </if>
        <str/>
      </max>
    </line>
    <line>
      <max>
        <var>potiondurationticks15</var>
        <num>0.5</num>
        <if>
          <var>potionnegative15</var>
          <str>$c$l{potionduration15} {potioneffect15} $r{potionicon15}</str>
          <str>$b$l{potionduration15} {potioneffect15} $r{potionicon15}</str>
        </if>
        <str/>
      </max>
    </line>
<!--防具など-->
    <!--ヘルメット-->
    <line>
      <max>
        <var>helmetdamageleft</var>
        <num>0.5</num>
        <str>$7ヘルメットの耐久値: </str>
        <str/>
        <!--ダミー(追加しないとうまくいかない)-->
      </max>
      <operation>
        <str>gt</str>
        <pct>
          <var>helmetdamageleft</var>
          <var>helmetmaxdamage</var>
        </pct>
        <num>60</num>
        <num>30</num>
        <num>15</num>
        <num>7</num>
        <num>0</num>
        <str>$d$l</str>
        <str>$b$l</str>
        <str>$a$l</str>
        <str>$e$l</str>
        <str>$c$l</str>
      </operation>
      <max>
        <var>helmetdamageleft</var>
        <num>0.5</num>
        <round>
          <pct>
            <var>helmetdamageleft</var>
            <var>helmetmaxdamage</var>
          </pct>
          <num>1</num>
        </round>
        <str/>
      </max>
      <max>
        <var>helmetdamageleft</var>
        <num>0.5</num>
        <str>% </str>
        <str/>
      </max>
      <var>helmeticon</var>
    </line>
    <!--チェストプレート-->
    <line>
      <max>
        <var>chestplatedamageleft</var>
        <num>0.5</num>
        <str>$7チェストプレートの耐久値: </str>
        <str/>
        <!--ダミー(追加しないとうまくいかない)-->
      </max>
      <operation>
        <str>gt</str>
        <pct>
          <var>chestplatedamageleft</var>
          <var>chestplatemaxdamage</var>
        </pct>
        <num>60</num>
        <num>30</num>
        <num>15</num>
        <num>7</num>
        <num>0</num>
        <str>$d$l</str>
        <str>$b$l</str>
        <str>$a$l</str>
        <str>$e$l</str>
        <str>$c$l</str>
      </operation>
      <max>
        <var>chestplatedamageleft</var>
        <num>0.5</num>
        <round>
          <pct>
            <var>chestplatedamageleft</var>
            <var>chestplatemaxdamage</var>
          </pct>
          <num>1</num>
        </round>
        <str/>
      </max>
      <max>
        <var>chestplatedamageleft</var>
        <num>0.5</num>
        <str>% </str>
        <str/>
      </max>
      <var>chestplateicon</var>
    </line>
    <!--レギンス-->
    <line>
      <max>
        <var>leggingsdamageleft</var>
        <num>0.5</num>
        <str>$7レギンスの耐久値: </str>
        <str/>
        <!--ダミー(追加しないとうまくいかない)-->
      </max>
      <operation>
        <str>gt</str>
        <pct>
          <var>leggingsdamageleft</var>
          <var>leggingsmaxdamage</var>
        </pct>
        <num>60</num>
        <num>30</num>
        <num>15</num>
        <num>7</num>
        <num>0</num>
        <str>$d$l</str>
        <str>$b$l</str>
        <str>$a$l</str>
        <str>$e$l</str>
        <str>$c$l</str>
      </operation>
      <max>
        <var>leggingsdamageleft</var>
        <num>0.5</num>
        <round>
          <pct>
            <var>leggingsdamageleft</var>
            <var>leggingsmaxdamage</var>
          </pct>
          <num>1</num>
        </round>
        <str/>
      </max>
      <max>
        <var>leggingsdamageleft</var>
        <num>0.5</num>
        <str>% </str>
        <str/>
      </max>
      <var>leggingsicon</var>
    </line>
    <!--ブーツ-->
    <line>
      <max>
        <var>bootsdamageleft</var>
        <num>0.5</num>
        <str>$7ブーツの耐久値: </str>
        <str/>
        <!--ダミー(追加しないとうまくいかない)-->
      </max>
      <operation>
        <str>gt</str>
        <pct>
          <var>bootsdamageleft</var>
          <var>bootsmaxdamage</var>
        </pct>
        <num>60</num>
        <num>30</num>
        <num>15</num>
        <num>7</num>
        <num>0</num>
        <str>$d$l</str>
        <str>$b$l</str>
        <str>$a$l</str>
        <str>$e$l</str>
        <str>$c$l</str>
      </operation>
      <max>
        <var>bootsdamageleft</var>
        <num>0.5</num>
        <round>
          <pct>
            <var>bootsdamageleft</var>
            <var>bootsmaxdamage</var>
          </pct>
          <num>1</num>
        </round>
        <str/>
      </max>
      <max>
        <var>bootsdamageleft</var>
        <num>0.5</num>
        <str>% </str>
        <str/>
      </max>
      <var>bootsicon</var>
    </line>
    <line>
      <str>$7防御ポイント:$9$l{armor}</str>
    </line>
    <line>
      <str> </str>
    </line>
    <!--メインハンド-->
    <line>
      <max>
        <var>mainhanddamageleft</var>
        <num>0.5</num>
        <str>$7メインハンドアイテムの耐久値: </str>
        <str/>
        <!--ダミー(追加しないとうまくいかない)-->
      </max>
      <operation>
        <str>gt</str>
        <pct>
          <var>mainhanddamageleft</var>
          <var>mainhandmaxdamage</var>
        </pct>
        <num>60</num>
        <num>30</num>
        <num>15</num>
        <num>7</num>
        <num>0</num>
        <str>$d$l</str>
        <str>$b$l</str>
        <str>$a$l</str>
        <str>$e$l</str>
        <str>$c$l</str>
      </operation>
      <max>
        <var>mainhanddamageleft</var>
        <num>0.5</num>
        <round>
          <pct>
            <var>mainhanddamageleft</var>
            <var>mainhandmaxdamage</var>
          </pct>
          <num>1</num>
        </round>
        <str/>
      </max>
      <max>
        <var>mainhanddamageleft</var>
        <num>0.5</num>
        <str>% </str>
        <str/>
      </max>
      <max>
        <var>mainhanddamageleft</var>
        <num>0.5</num>
        <var>mainhandicon</var>
        <str/>
        <!--ダミー(追加しないとうまくいかない)-->
      </max>
    </line>
    <!--オフハンド-->
    <line>
      <max>
        <var>offhanddamageleft</var>
        <num>0.5</num>
        <str>$7オフハンドアイテムの耐久値: </str>
        <str/>
        <!--ダミー(追加しないとうまくいかない)-->
      </max>
      <operation>
        <str>gt</str>
        <pct>
          <var>offhanddamageleft</var>
          <var>offhandmaxdamage</var>
        </pct>
        <num>60</num>
        <num>30</num>
        <num>15</num>
        <num>7</num>
        <num>0</num>
        <str>$d$l</str>
        <str>$b$l</str>
        <str>$a$l</str>
        <str>$e$l</str>
        <str>$c$l</str>
      </operation>
      <max>
        <var>offhanddamageleft</var>
        <num>0.5</num>
        <round>
          <pct>
            <var>offhanddamageleft</var>
            <var>offhandmaxdamage</var>
          </pct>
          <num>1</num>
        </round>
        <str/>
      </max>
      <max>
        <var>offhanddamageleft</var>
        <num>0.5</num>
        <str>% </str>
        <str/>
      </max>
      <max>
        <var>offhanddamageleft</var>
        <num>0.5</num>
        <var>offhandicon</var>
        <str/>
        <!--ダミー(追加しないとうまくいかない)-->
      </max>
    </line>
  </lines>
</config>

最後に

  • わからないことがある場合や誤りを見つけた場合はコメントください。
  • 参考: igiのWiki

Twitchを使ったMod管理

Twitchクライアントを使うことによって、CurseForge上のModのアップデートやインストールを非常に簡単に行えます。特にModのインストールは、前提Modも自動でダウンロードされるため非常に管理をしやすくなります。

目次

Twitch用のMinecraftのインストールとModの導入

これまで遊んできたMinecraftとは別にマインクラフトをインストールする必要があります。

必要なもの
  • Twitchアカウント
Twitchのインストール

クライアントをお持ちの場合はこの項目は飛ばしていただいて構いません。

  1. twitchにアクセスして"ダウンロード"をクリック

  2. ダウンロードしたものを立ち上げてTwitchをインストールする。インストール先を指定したい場合は、右下の高度な設定を選択する。

  3. すでにアカウントがある場合はログインを、そうでない場合は登録をクリックして誘導に従う。

Minecraftのインストール

f:id:hisui_kawasemi:20190306162327p:plain
Mods->Minecraftの順に選択
f:id:hisui_kawasemi:20190306162612p:plain
minecraftをインストールする。うまくいかないときは、右下の"高度な設定"からインストールするパスを変えてみてください。

プロファイルを作る

うまくインストールできた場合、Mods->Minecraft->カスタムプロファイルで新しいプロファイルを作成できます。

f:id:hisui_kawasemi:20190306163932p:plain
カスタムプロファイルの作成画面

  • プロファイル名は新規作成するプロファイル名をセットしてください。

  • バージョンはマインクラフトのバージョンです。(現時点での)おすすめは1.12.2です。

  • ModローダーにはForgeのバージョンを指定します。

作成し終えたプロフィルの"再生する"をクリックするとランチャーが立ち上がりますので必要な場合はログインをしてください。

Modを導入してみよう

プロファイルを選択して、右上の"もっとコンテンツを取得する"を選択するとMod一覧が表示されます。今回は例として、Not Enough Itemsを導入します。

f:id:hisui_kawasemi:20190306170024p:plain
左上に検索バーがあるのでそこにMod名を入力、目的のModにカーソルを合わせると"インストールする"と表示されるのでそれをクリックするだけです

細かな設定をする

Modのバージョンを変更する
  • バージョンを変更したいMod名をクリック->バージョンリストから選択できます。ただし、そのModに紐づいているほかのModは自動で変更されないので注意。
Minecraftの設定を変更する

f:id:hisui_kawasemi:20190306173006p:plain
左上の三をクリック(もしくはCtrl+,)、File->Settings->Minecraftで設定を変更できます。変更できる設定は次のものがあります。

  1. 希望するリリースの種類:より新しい機能(バグが多いかもしれません)を選択したい場合はベータやアルファを選んでください。
  2. 解像度
  3. ランチャーの設定:Minecraftはデフォルトでは同梱されているJAVAを利用しますが、より新しいバージョンのJAVAを使いたい場合はJARランチャーにチェックを入れてください。
  4. JAVAの設定:割り当てメモリやJVM引数をここで設定します。
OptifineのようなCurse上にないModをインストールする

f:id:hisui_kawasemi:20190306224446p:plain
...をクリックしてフォルダーを開くをクリック

  1. modsフォルダを開く
  2. Optifineをダウンロードする
  3. ダウンロードされたものをModsフォルダへ移動させる
forgeのバージョンを変更する
  • ...をクリック、"プロファイルのオプション"をクリック
    f:id:hisui_kawasemi:20190306225416p:plain
    Modローダーの現在のバージョンから変更可能です