目次
Optifineを導入する
Optifineは、既存書き換えのMODの中でも一番導入されているMODと言っても過言ではないでしょう。このOptifineがあるだけで、Minecraftの快適さが違います。そんなOptifineですが、1.6.2になってから導入が難しくなりました。これはMinecraftとForgeが他の既存書き換えのMODの導入を難しくしたためです。しかし、それでも導入することは可能なので、根気よく頑張りましょう!
Optifineをlibrariesに追加する
親記事にもあるように、今回の目的は「既存書き換えのMODを、jarファイルを書き換えること無く、librariesに追加する方法で、Minecraftに導入する」です。このOptifineの導入ができれば、他の既存書き換えのMODも無理なく行うことができるでしょう。
それではまずは、Optifineを用意します。この記事の執筆時点での最新版は 「Oprifine 1.6.2 HD U B4」 でした。
Oprifineのファイル自体は各自で用意して下さい。
早速ですが、その落としてきたOptifineをリネームします。今回用意したOptifineは、「Optifine_1.6.2_HD_U_B4.zip」でした。これを「Optifine-1.6.2_HD_U_B4.jar」にリネームしてください。なお、「.jar」「.zip」は、拡張子というものであり、「こんなのついてない!」という方は、google先生で「拡張子 表示方法」等で調べると幸せになります。(※jarはzipの方法で圧縮されているため、拡張子を変更しても問題ない。)
リネームが終わったらlibrariesに入れるのですが、これが少し変わってます。librariesというフォルダは、「.Minecraft」というフォルダの中にあります。そのlibrariesを開くとこのようなフォルダが並んでいると思います。
このフォルダの中にあるファイルが全て「libraries」というMinecraftの中に導入されるファイル郡です。Minecraftは起動するたびに、jarファイルを確認し、内部に足りないファイルがあれば、この「libraries」から適宜jarファイルの中に導入します。つまり、このlibrariesに既存書き換えのMODも追加してやれば、jarに導入されるということになるのです。
さて今回、このファイルのどれにでもOptifineを入れてやってもいいのですが、今回は新しいフォルダを作りそこにいれてやることにします。今回は、非公式フォーラムで、Minecrat負荷軽減MODを公開している、Auroraさんと同じく、「jarmods」というフォルダを作りました。
そしてそこにOptifineを次のように配置します。
「jarmods」の内部に「Optifine」というフォルダを作り、その中に、「1.6.2_HD_U_B4」というフォルダを作り、そこに先ほどリネームした「Optifine-1.6.2_HD_U_B4.jar」を配置します。このフォルダ名称には法則性があり、リネームしたファイル名がその法則になっています。「Optifine」- 「1.6.2_HD_U_B4」と、リネーム後のファイル名称の「-」の前後がフォルダ名となるのです。
言わば、-の前が「MOD名称」後が「バージョン」と考えれば分かりやすいです。自信があれば、別の名称で管理することができます。たとえば1.6.2が不要であれば「Optifine-HD_U_B4」とリネームしても構いません。(フォルダ名もソレに合わせて変更されますが)他のMODもこのような法則でのリネームが必要です。
これだけの作業で、「Optifine」の配置は終了です。流れとしては
- 法則にもとづきリネーム
- 法則にもとづきフォルダを作成
- 法則にもとづき配置
たったこれだけです。確認しておきますが、法則とは「MOD名称」-「MODバージョン」のことです。
Optifineをjsonに追加する
さて、Optifineをlibrariesに追加するだけでは、いくらMinecraftを起動してもjarにOptifineは追加されません。このOptifineをlibrariesからjarに入れるための「指示書」を記述しなければなりません。それが各jarの隣に配置されている「json」というファイルです。
このjsonを開くとこんな感じです。(画像ではForge導入済みのjsonを、Word Padで開いてます。)
更にこれをずっと下にいくと
jsonに記述されている情報は「minecraftArguments」「libraries」「mainClass」「minimamLauncherVersion」「time」「id」「type」「processArguments」「releaseTime」の9つ(順不問)ですが、MODを導入する上で把握すれば良いのは、「libraries」「id」の2つです。
- libraries
librariesからjarに導入するファイルを指示します。
- id
jsonとjarのファイル名称を定義します。(たぶん)
MODを導入するjarを用意する
それではまず、MODを導入するjarを用意しましょう。今回は、日本非公式フォーラムサーバーにINするためのjarファイルということで名称を「JPF-1.6.2」と設定しました。各自、好きな名称でversionsに用意してください。(但し英語と数字と一部の記号しかつかえません。また、Minecraftのバージョンと同じ名前(例えば「1.6.2」「1.5.2」等)にすると、自動でバニラの状態に更新されるため、絶対に避けて下さい。)
そして、そのファイルに「jar」と「json」も用意します。今回はForgeの導入環境にOptifineを導入するのが目的なので、下準備を参考にして「1.6.2-Forge9.10.0.801」からjarとjsonを用意します。なお、用意したjarとjsonは、あらかじめフォルダ名と同じ名前でリネームをしておいて下さい。
jsonの書き換え「id」
jsonの書き換え「libraries」01
それではいよいよ本命であるlibrariesを書き換えます。
(librariesを書き換えるといっても、「Optifine」をlibrariesからjarに持ってくるという指示を追記してやるだけになります。)
このjsonのlibrariesは、やはりルールにもとづいて記述されていますので、それを把握すれば、次からどんな既存書き換えMODでも、ここに追加してやることができるようになります。
赤色で囲ったのが、librariesを構成する一つの単位です。
{ "url" : "(URL)", "name" : "(?)" },
この構成単位は、他にも下にあるように「url」ではなく、「serverreq」などもありますが、今は考えなくても問題ありません。必要となるのは「name」を正しく書けるかどうかであり、それ以外はここでは考える必要がありません。故に、最低限の構成を示すと次のようになります。
{ "name" : "(?)" },
さて、ではこの(?)なのですが、これは一体何なのでしょうか?ところで、このlibrariesの目的は、「特定のファイルをlibrariesからjarに持ってくるという指示」でしたね。つまりこの(?)がその役割を果たしています。
先ほど赤く囲った指示をみてみてると、
net.minecraftforge:minecraftforge:9.10.0.801
となっています。それでは実際にlibrariesフォルダを見ながら確かめてみましょう。
jsonの書き換え「libraries」02
さてそれでは、librariesのフォルダを開いたのですが、「net.minecraftforge:minecraftforge:9.10.0.801」というのはどのファイルのことなのでしょうか、明らかにこれだろうなとおもわれるのが「net」というフォルダですね。
それでは「net」というフォルダを開いてみましょう
「minecraftforge」というフォルダがありました。ここまで「net」→「minecraftforge」の流れは、「net.minecraftforge:minecraftforge:9.10.0.801」と同じですね。ということはこのminecraftforgeを開くと次はおそらく「minecraftforge」というフォルダがあるのでしょうか?
ありました!ここまできたらもうお分かりですね!
「net.minecraftforge:minecraftforge:9.10.0.801」というのはそのまま「minecraftforge-9.10.0.801.jar」というファイルがlibrariesのどこにあるのかを示す内容なのです。
oprifineをlibrariesのフォルダに収納した時のことを思い出して下さい。DLしてきたzipファイルを「Optifine-1.6.2_HD_U_B4.jar」にリネームし、「Oprifien」というフォルダの中に、「1.6.2_HD_U_b4」というフォルダを作り、その中に格納しましたね。その時の法則が、「MOD名称」-「MODバージョン」でした。
これをする必要があったのは「json」が、この法則にもとづいてlibrariesがどこにあるのかを指定しているからです。フォルダ名称とファイル名をこの法則で整理することにより、jsonはlibrariesからjarを導入することができます。
このminecraftforgeの場合も、「net.minecraftforge:minecraftforge:9.10.0.801」と、この法則に従っています。
jsonの書き換え「libraries」03
それでは、jsonの法則が分かったところで、実際にoptifineをjsonに追加してやりましょう。Optifineは、「Optifine-1.6.2_HD_U_B4.jar」というファイルにリネームして「jarmods/Oprifine/1.6.2_HD_U_B4」というファイルに格納していましたよね?
そして記述するほうほうは、
{ "name" : "(?)" },
で、実際にforgeの記述は
net.minecraftforge:minecraftforge:9.10.0.801
でした。このminecraftforgeの記述に従うと。
{ "name" : "jarmods.Optifine:1.6.2_HD_U_B4" },
とおもわれるかもしれませんが、違います。「jarmods.」ではなく、「jarmods:」と記述して下さい。なぜならが、今回、fogeの構文とは違い、「フォルダを一つ飛ばしている」ためです。Forgeの場合は「minecraftforge」の中にさらに「minecraftfoge」が存在しました。そのため、「net.mincraftforge」という記述がされていました。
これをもう少し詳しく説明すると(ちょっと難しい説明です)
「フォルダスタート位置」:「libraries参照位置」
となります。「libraries参照位置」は法則に基づいた「MOD名称:MODバージョン」ですが、前者の「フォルダスタート位置」とはどのフォルダから「libraries」を参照すればいいのかを意味します。最初に「libraries」を読み込み、次のフォルダを探します。このフォルダスタート位置が「jarmods」だけの場合は、それで完結しますので、「jarmods:」と書けばいいのです。しかしforgeの場合は。「net」の下にさらに「minecraftforge」というフォルダがありました。そのため、「minecraftforge」からスタートさせる必要があります。そのため、「net.minecraftforge」と記述します。この「.」は「まだフォルダのスタート位置ではないですよ!」という意味だと考えればいいと思います。
そのため、これに従い、記述をし直すと
{ "name" : "jarmods:Optifine:1.6.2_HD_U_B4" },
これが正しいjsonへのOptifineの追加方法です。もしも、minecraftforgeと同じように導入したい場合は、「jarmods/Optifine/Optifine/1.6.2_HD_U_B4」と、Optifineというフォルダを途中に一つ増やしてやれば。
{ "name" : "jarmods.Optifine:Optifine:1.6.2_HD_U_B4" },
と記述することができます。細かいことはいいんだよ!って方のために説明すると「Optifine/Optifine」と繰り返しがなければ「.」は使う必要がない。という感じです。
※実はここの「.」に関する記述、割と適当なのであってるか自信ありません。不安なら全部「:」にすれば問題ありません。
jsonの書き換え「libraries」04
さて、これで最後です。
{ "name" : "jarmods:Optifine:1.6.2_HD_U_B4" },
この文章をjsonのlibrariesのどこに追記してやればいいのか、ということです。答えは、「forge」の「上」です。実際に追記したものがこちらになります。
(見やすいように、構文を整えています。また、「,」が隠れていますが、ちゃんとつけてます。)
このjsonの記述は、librariesからファイルを導入しますが、その順番は、「下から上」です。今まで、Forgeを導入した後にOptifineを導入していましたよね?それとまったく同じです。Forgeの後にOptifineを入れてやる必要があるので、forgeの上に記述してやります。これで、jsonの書き換えは終了です。
(つまり、Optifineの他にも既存書き換えのMODを導入したい場合、Optifineの導入手順を参考にして、jsonに追記してやればいいわけです。しかもjsonに記述する順番でMODの導入順番を指示することも可能ということです。)
注意事項
この構文が一つでも間違っていると、ランチャーはjsonが読み取れず、jarを読み込んでくれません。しかも、該当のjarだけならいいのですが、「全てのjarファイル」を読み込まなくなります。Minecraftが起動出来ない場合は、構文が正しいか見なおしてみて下さい。特に「,」の記述わすれや「:」と「.」を間違っていたり、途中に入れる半角スペースを忘れていたりするのなどの間違いが多いので、念入りに確認してください。
Optifineを確認する。(難易度 高 飛ばせます)
それではOptifineが入ったjarを確認してみましょう。ランチャーを起動し、edit profileから、Profile Editerを起動して下さい。そして「Use version」から先ほど制作した「JPF-1.6.2」を選択してみてください。jsonの書き換えが成功していれば選択出来るようになっています。
※ランチャーバージョン 1.1.1の時のProfileEditerの画面です。
ちゃんと書き換えに成功しています!それではこの「JPF-1.6.2」の情報をランチャーの「Local Version Editer(NYI)」で確認してみましょう。
ここで「JPF-1.6.2」というjarの情報を確認することができます。その部分をズームアップしてみましょう。
jarの情報として重要な情報となるのが「Library count」と「Sync status」の二つです。
- Library count
jsonによりjar導入されているlibraryの数。起動時に導入されていないlibraryがあれば、jsonの記述に基づいて導入されます。なお、Forge導入環境だとバニラから+6されていることがわかります。この6のlibraryは、Forgeにより追加されたもので、おなじく、Forge導入環境にOptifineというMODをlibraryに追加した「JPF-1.6.2」は、「1.6.2-Forge9.10.0.801」に+1されています。
括弧内にある「relevant to windows」は、(たぶん)librariesフォルダにあるlibrariesを指す。「JPF-1.6.2」ならば、jarの内部に導入されている全てのlibrary28の内、25がローカルで手元にあるということです。(なおこの部分は推測なのでとんでもない嘘である可能性があります。)
- Sync status
これは「ゲームが始まるときに自動でアップデートするかどうか」という意味になります。「Local onlu」と「Up to date with remote」の二つのステータスが表示され、「Local only」であれば自動でバニラになることはありません。一方で「UP to date with remote」の状態になっていれば、起動時に自動でバニラの状態に初期化されます。これは、MOJANGのサーバーからjarをDLするかどうかなので、jarの名前が、リリースされた、バージョンと同じ名前だった場合、「Up to date with remote」になります。(例えば、「1.6.2」や「1.5.2」)逆にいえば、ソレ以外の名称にjarとjsonを設定しておけば、自動でバニラに初期化されることはありません。