SEUS PTGIで任意のブロックを光源にしたり、不透過にしたりする
SEUS PTGIはレイトレーシング(パストレーシング)を用いた影MODです。以前は支援者向けに配布していましたが、今はだれでも無料でダウンロードすることができます。
光源に対して光が遮られる場所に影ができたり、周りのブロックに反射した光が描写されたりします。すごい。きれい。
ただ一方で、光源の処理が特殊なために従来のシェーダーとは少し勝手が違います。
1つ目の問題点は、明るさを持つブロックをそのまま置いても光ってくれないことがあることです。ビーコンやエンドロッドはそのままだと光らないままです。MODで追加したブロックも光りません。
2つ目の問題点は、MODで追加したブロックが光を透過することです。
光源が光らない問題は、バージョン1.14以降(多分)ではシェーダーのファイル内にあるblock.propertiesファイルをいじることで解決できます。わかりやすく解説している動画Youtubeにありましたので、そちらが参考になると思います。ありがたい。
redditでの記事を見るに同様の方法でMODのブロックも対応できるようです。
MODのブロックが透過してしまう問題も、block.propertiesの透過しないブロックのところに加筆すれば解決できると思います(多分)。
問題はそれより前のバージョン、1.12とかでは、この方法では対応できないということです。ということでソースコードをいじります。この手の改造はあくまで自己責任で行うものということには留意してください。
シェーダーは記事執筆時での最新版であるSEUS PTGI HRR Test 2.1を使います。
1つ目の問題点を解決するには、まずgbuffers_terrain.vshを開きます。一番下まで行きます。
if(mc_Entity.x==133)
materialIDs=MAT_ID_GLOWSTONE;
と書かれていますが、これはブロックIDが133のブロック(エメラルドブロック)を光らせる処理です。SEUS PTGIではエメラルドブロックが光るように設定されています。
同じように
if(mc_Entity.x==56)
materialIDs=MAT_ID_GLOWSTONE;
というのを追加してみましょう。ブロックIDが56のブロック(ダイヤモンドブロック)を光らせることができます。
この状態でシェーダーを読み込むと、
ダイヤモンドブロックは光りますが、影ができます。周りのブロックへの光の反射もありません。
次にshadow.vshを開きます。一番下まで行きます。
vMaterialIDs=mc_Entity.x-255.+39.;
の下に
if(mc_Entity.x==56)
vMaterialIDs=31.;
を書きます。
シェーダーを読み込むと、
しっかり光るようになりました!!
同様の処理を増やしていけば、好きなブロックを光らせることができます。ブロックIDが4096以上のブロックも問題なく対応できました。
ブロックIDを調べるにはworldeditを導入したのち、アイテムをもって//infoってコマンドをうち、そのアイテムで調べたいブロックを右クリックすると表示されます。ただ自分の環境ではブロックIDが4096以上のブロックに対して右クリックすると、表示してくれませんでした。どなたか、マイクラ内で4096以上のブロックIDを調べる簡単な方法を教えてください…。
話を本筋に戻すと、ブロックの光らせ方は何種類かあります。materialIDsはMAT_ID_GLOWSTONE、MAT_ID_TORCHのいずれかにすると光ります(MAT_ID_LAVAも光りますが、違いがよくわからない)。またvMaterialIDsは31か241で光ります。下の画像で違いがわかるかと思います。
もともとのソースコードではブロックで光るものにMAT_ID_GLOWSTONE、31を割り当て、松明にMAT_ID_TORCH、241を割り当てていました。ブロックを光らせたいときには前者、松明のような小さい物を光らせたいときは後者にするといいと思います。
さて、2つ目の問題点であった、MODで追加したブロックが光を透過してしまう問題を解決します。shadow.vshを開いて、先ほどの
vMaterialIDs=mc_Entity.x-255.+39.;
を
vMaterialIDs=30.;
にします。
すると
ちゃんと不透過になっています。左の光源はMODで追加したブロックに、右の光源はクォーツブロックで取り囲まれています。
しかし、この方法だとMODで追加したブロックがすべて不透過になります。光を透過させたいブロックは個別に
if(mc_Entity.x==(透過させたいブロックのブロックID))
vMaterialIDs=1.;
を追加してください。色付きガラスのようにしたい場合はvMaterialIDsを240にしてください(1と240の違いはわかりませんが…)。
なおハーフブロックとかを置くと影が変なところにでますが、これはバージョンが古いために起きます。少なくと1.16.5では起きませんでした。初めて1.12.2の古さを痛感しました…。
追記
書いた後にマイクラしながら感じましたが、建築するのが基本昼間で、太陽光は通常のシェーダーと同様に処理されるので、わざわざシェーダーをいじる必要はあまりないのかなって…。むしろ太陽光の影の処理が変になっちゃうのでしないほうがいいと思います。夜間や室内で光源の処理を生かしたスクリーンショットをとるくらいには使えるはずなので、そうしていただければ幸いです。
(2021/9/23)
ハーフブロックの影が変になる現象ですが、シェーダーのオプション設定/Raytracing Options/Geometry Trace Qualityを0にすると多少は軽減されます。
もっともこれでもやっぱりおかしなことにはなっていて、
ハーフブロックをたくさん並べると上のようになります。
また、シェーダーのオプション設定/Raytracing Options/Screen-Space GI TracingをONにした状態で小さなブロックなどにvMaterialIDs=256.;とかを設定すると
それっぽい影がつきます。
補足ですが、MODで追加したブロックをまとめて
vMaterialIDs=mc_Entity.x-255.+39.;
を
vMaterialIDs=30.;
とするよりかは、一つ一つのブロックIDを指定してあれこれしたほうがいい気がします。
また、同じMODの構成であってもワールドごとにブロックとブロックIDの対応関係が異なることがあり(各々のセーブデータのlevel.dat内に記載されている)、それにあわせてシェーダーを改変することになります。一連の流れを自動化するならForgeUtilsでextrablocks.jsonを作って、それのデータを参照してしかるべきソースコードを出力するものを作ることになると思います。ForgeUtilsに関しては以下の記事をご覧下さい。
(2021/10/20)
ニコニコのブロマガにあるマイクラ建築向け解説記事のウェブアーカイブ
ニコニコのユーザーブロマガが2021年10月7日(予定)に閉鎖されるということで、MODやプラグイン、その他いろいろの解説記事などのウェブアーカイブのリンク集です。Wayback Machineを利用しています。他サービスに移行したものについては、確認できた限りでそちらのリンクを(も)張っています。
余談ですが、非公式フォーラムで配布されていたMODやプラグインでウェブアーカイブを介してダウンロードできるものもあります。TSPプラグイン、ExtendRenderDistanceなどがあります。
cocricotで1.7.10から1.12.2にワールドデータを(大体)移すやり方
はじめに
cocricotの1.12.2のmodが配信され、1.12.2で建築する人も大分多くなったように思います。cocricotを使ったり動作の軽量化をしたりするためにも、私も1.12.2でプレイしたいのですが、1.7.10のcocricotで作業途中のワールドがあるため、これをどうにかしない限り本腰を入れられません。このデータを1.12.2に移せればなぁ、と思っていました。1.7.10以前のマイクラにしかないメタデータをフル活用しているため、1.12.2へはワールドデータが通常移せないのです。
しかしながら、1.7.10のconquestから1.12.2のconquest reforgedへ移行する際にはメタデータの問題を例外的に回避することができます。それが下のリンクのページにあるConverter for Minecraft 1.7 Conquest Metadata to Conquest Reforged Mod(以下converter)というものです。
※追記もご覧ください。
1.7.10以降ではメタが使えずブロック数が減ってしまうために、conquestではmodでブロックを補いました(cocricotと同じですね)。このconverterは1.7.10と1.12.2のconquestで共通のテクスチャを持つブロックに対して変換をしてくれます。何が何に変換できるかは内部ファイルで指定されていますが、ソフトウェアの中を覗いてみたところ、cocricot向け(それ以外でも)に改造が可能みたいです。この記事はその解説です。
また何が何に変換するかを指定するのは手作業になる都合上、使用しているメタの種類数が少ないワールドの方が移行が簡単です。
あと必ずワールドデータなど全てバックアップを取っておきましょう。USBなどの外部メディアやクラウドなどに保存しとけば、PCがたとえ壊れても安心です。
mappngs.jsonの解説
converterをダウンロードして、中を見てみましょう。jarファイルなので、zipファイルと同じように解凍できます。元のjarファイルはとっておいてください。解凍されたファイルにあるmappings.jsonを開いてみてください。
上の画像のようになっていると思いますが、重要なのは以下のワンセットです。
{
"name": "minecraft:stone",
"min": 1,
"max": 1,
"biome": -1,
"to": {
"name": "conquest:stone_full_14",
"data": 6
}
},
変換前のブロックと変換後のブロックの指定をしています。これを書き換えることで、cocricot用のものが作れます。一番最後のワンセットには最終行のカンマはありません。注意しましょう。また、変換前と変換後の指定を行わないと、1.7.10特有のブロックは変換後に消滅します。
各行について解説していきます。
2行目のminecraft:stoneは変換の対象になるブロックのblockstatesを表しています。blockstatesとはプログラム上のブロック名みたいなものです(おそらく)。一つのブロックIDにつき一つ割り当てられています。バニラにあるブロックのblockstatesを調べるのは以下のサイトでできます。
minecraft-ids.grahamedgecombe.com
尚、cocricotでctmが割り当てられているブロックのブロックIDとblockstatesの対応表を後に記します。
3行目、4行目のminとmaxの値はメタデータの値を表しています。なぜminとmaxという形で指定しているかは謎です。
5行目のbiomeの値はバイオームIDを表しています。-1の場合は、全てのバイオームが対象になります。ctmのプロパティで使われるバイオームの表記とバイオームIDとの対応表を後に記します。
7行目のconquest:stone_full_14は変換後のブロックのblockstatesを表しています。1.12.2でblockstatesを調べるには、マイクラを起動してF3キーを押してデバッグ画面を表示させ、ブロックに視点を合わせると、そのブロックのblockstatesがデバッグ画面の右下に表示させることができます。F3+Hを押してから、インベントリを開いてブロックにカーソルを合わせることでもできるみたいです。
8行目のdataの値は変換後のブロックのメタデータの値を表しています。
私の場合、なぜかblockstatesの最後一文字だけ確認できない状況になったので、cocricotMOD for 1.12.2 v0.3\assets\cocricotmod\blockstatesのあたりからそれっぽい名前のファイル名を探しました。
上記のワンセットを繰り返す以外では、以下のような記述が必要となります。
{
"blocks": [(変換前のブロックと変換後のブロックのワンセットを必要な分だけ繰り返す)
],
"copy_below": [],
"remove_blocks": {}
}
私の場合、エクセルに自分のワールドで変更が必要なブロックを書き出し、VBAでmappings.jsonを作成しました。変更が必要なブロックの種類が少ないほど、1.7.10のブロックと1.12.2のブロックの対応表を作るのは楽になり、mappings.jsonも楽です。
converterの中身のいじり方
mappings.jsonを用意できたら(死ぬほど大変ですが)、それをconverterの中にあるmappings.jsonに直接上書きします。大抵のzip解凍ソフトにはjarファイルを解凍せずに、中身を閲覧したり、上書きしたりする機能があります。jarファイルは一旦解凍すると、再度圧縮しても使い物にならないので、ご注意ください。
次に、1.12.2でcocricotのmodが導入された環境で適当にワールドを作ります。スーパーフラットで構いません。そのワールドデータにあるlevel.datをconverterにあるlevel.datに上書きします。level.datにはブロックIDとblockstatesの対応表が入っており、それを参照してブロックを変換していると思われます。cocricotのmodが導入された環境で生成されるlevel.datには、cocricotで追加されるブロックのブロックIDとblockstatesの対応表が入っています。元々のlevel.datはconquest用のものなので今回は使用できません。
ここまでやれば、converterの準備が終わります。
converterの使い方
jarファイルなので実行にはjavaが必要です。ダウンロードしていない場合はしましょう。
https://www.java.com/ja/download/
jarファイルをダブルクリックすると、このような画面がでてきます。
Chooseをクリックします。
このような画面になるので、変換したいワールドを選択します。
Skipで大丈夫です。このChooseが何なのかいまいちよくわかっていません
Threadsはスレッドをいくつ使うかという指定です。そのままで問題ありません。Startを押しましょう。
このような画面がでてきます。この画面が出てこない場合はどこかの手順で間違っていることになります。
このような画面になって……
名前に-convertedが加えられた変換後のワールドが生成されます。これで1.12.2で使用できます。
できないこと色々
上記のようにすれば一応は変換ができます。ただし変換が難しいものもあります。
1つ目は1.7.10にはあって1.12.2にはないブロックの存在です。これに関してはcocricotの制作者であるきぃこさんが対応していくということをおっしゃっています。温かく待ちましょう。一時的な対応策としては、似通ったブロックに変換するといいと思います。また、テクスチャをいじるという手もあります。
2つ目は1.7.10にも1.12.2に同様のブロックがあるけれども、微妙に仕様の違うブロックの存在です。例えば、1.7.10での階段の手すり(101:5など)は1.12.2では3種のブロックを使うことによって、ctmのごり押しから改善がなされています。こうしたものは直接の変換ができず、手作業などで対応する必要があります。
3つ目は1.7.10においてctmを使い複数の画像を同じブロックに対してランダムに出現させていて、1.12.2ではそれぞれが独立したブロックになっているものです。例えば船の模型と地球儀は1.7.10では同じ39:6となっており、ランダムで(厳密には座標に依存して)描画されています。1.12.2ではそれぞれ独立したブロックとなっており、1対1対応ではないので、上記の方法ではどうにもなりません。
終わりに
この記事が誰かの建築の一助となれたら幸いです。願わくば、cocricotに1.7.10のブロックが追加された後で、全てのブロックを変換できるmappings.jsonを誰かが配布してほしい(他力本願)。ともあれ、お読みいただきありがとうございました。
なお、この記事で不利益を被ったとしても責任を負いかねますので、ご理解の程お願い申し上げます。
追記
8行目のdataの解説を追加しました。すっかり書いたつもりになっていて、書き忘れていたのは大変恥ずかしい限りです。
ついでとはいってなんですが、実際に私がデータ移行に使ったexcelファイルとmappings.jsonを配布します。これで許して
excelファイル
cocricot converter_sample.xlsm - Google ドライブ
マクロでmappings.jsonが出力されます。
mappings.json
mappings(sample).json - Google ドライブ
(2020/05/21)
どうやらConquest Reforgedが1.15向けの新たなModを出したのに合わせて、それ向けにデータを変換できるWorldConverterを配布しているようです。
この記事で解説しているのは、Conquest ReforgedのサイトのDownloadsのWorldConvertersの左側、1.7.10->ModからダウンロードできるConquest Reforged 1.7.10-1.10.2 Converter.jarです。1.10.2って書いてありますけど全然1.12.2にもいけちゃいます。
ところで、今見たらサイトの見出しがConverter for Minecraft 1.7 Conquest Metadata to Conquest Reforged ModからWorldConvertersに変わっていて、時代の流れを感じています。まさか複数形になっているとは…。
(2021/05/20)
対応表
cocricotでctmが割り当てられているブロックのブロックIDとblockstatesの対応表です。
blockID | blockstates |
1 | minecraft:stone |
2 | minecraft:grass |
3 | minecraft:dirt |
4 | minecraft:cobblestone |
5 | minecraft:planks |
12 | minecraft:sand |
13 | minecraft:gravel |
14 | minecraft:gold_ore |
15 | minecraft:iron_ore |
16 | minecraft:coal_ore |
17 | minecraft:log |
20 | minecraft:glass |
21 | minecraft:lapis_ore |
22 | minecraft:lapis_block |
23 | minecraft:dispenser |
24 | minecraft:sandstone |
30 | minecraft:web |
31 | minecraft:tallgrass |
35 | minecraft:wool |
37 | minecraft:yellow_flower |
38 | minecraft:red_flower |
39 | minecraft:brown_mushroom |
40 | minecraft:red_mushroom |
42 | minecraft:iron_block |
43 | minecraft:double_stone_slab |
44 | minecraft:stone_slab |
45 | minecraft:brick_block |
47 | minecraft:bookshelf |
48 | minecraft:mossy_cobblestone |
49 | minecraft:obsidian |
53 | minecraft:oak_stairs |
56 | minecraft:diamond_ore |
57 | minecraft:diamond_block |
58 | minecraft:crafting_table |
65 | minecraft:ladder |
66 | minecraft:rail |
67 | minecraft:stone_stairs |
70 | minecraft:stone_pressure_plate |
72 | minecraft:wooden_pressure_plate |
77 | minecraft:stone_button |
78 | minecraft:snow_layer |
80 | minecraft:snow |
84 | minecraft:jukebox |
85 | minecraft:fence |
89 | minecraft:glowstone |
95 | minecraft:stained_glass |
96 | minecraft:trapdoor |
98 | minecraft:stonebrick |
101 | minecraft:iron_bars |
102 | minecraft:glass_pane |
106 | minecraft:vine |
107 | minecraft:fence_gate |
108 | minecraft:brick_stairs |
109 | minecraft:stone_brick_stairs |
112 | minecraft:nether_brick |
114 | minecraft:nether_brick_stairs |
120 | minecraft:end_portal_frame |
121 | minecraft:end_stone |
125 | minecraft:double_wooden_slab |
126 | minecraft:wooden_slab |
128 | minecraft:sandstone_stairs |
129 | minecraft:emerald_ore |
133 | minecraft:emerald_block |
134 | minecraft:spruce_stairs |
135 | minecraft:birch_stairs |
136 | minecraft:jungle_stairs |
139 | minecraft:cobblestone_wall |
145 | minecraft:anvil |
154 | minecraft:hopper |
155 | minecraft:quartz_block |
156 | minecraft:quartz_stairs |
158 | minecraft:dropper |
159 | minecraft:stained_hardened_clay |
160 | minecraft:stained_glass_pane |
161 | minecraft:leaves2 |
162 | minecraft:log2 |
163 | minecraft:acacia_stairs |
164 | minecraft:dark_oak_stairs |
171 | minecraft:carpet |
172 | minecraft:hardened_clay |
173 | minecraft:coal_block |
354 | minecraft:cake |
380 | minecraft:cauldron |
390 | minecraft:flower_pot |
ctmで用いられるバイオームの表記とバイオームIDの対応表です。PlateauMは存在しないバイオームですが、20:14、30:3、30:8、44:4、44:12、101:1、101:4、106、108:0~7、128:8~15、172:0のプロパティで記述されています。MesaPlateauMの誤植だと思います。おちゃめ
biomes | biomeID |
Ocean | 0 |
Plains | 1 |
SunflowerPlains | 129 |
Desert | 2 |
DesertM | 130 |
ExtremeHills | 3 |
ExtremeHillsM | 131 |
Forest | 4 |
FlowerForest | 132 |
Taiga | 5 |
TaigaM | 133 |
Swampland | 6 |
SwamplandM | 134 |
River | 7 |
Hell | 8 |
Sky | 9 |
FrozenOcean | 10 |
FrozenRiver | 11 |
IcePlains | 12 |
IcePlainsSpikes | 140 |
IceMountains | 13 |
MushroomIsland | 14 |
MushroomIslandShore | 15 |
Beach | 16 |
DesertHills | 17 |
ForestHills | 18 |
TaigaHills | 19 |
ExtremeHillsEdge | 20 |
Jungle | 21 |
JungleM | 149 |
JungleHills | 22 |
JungleEdge | 23 |
JungleEdgeM | 151 |
DeepOcean | 24 |
StoneBeach | 25 |
ColdBeach | 26 |
BirchForest | 27 |
BirchForestM | 155 |
BirchForestHills | 28 |
BirchForestHillsM | 156 |
RoofedForest | 29 |
RoofedForestM | 157 |
ColdTaiga | 30 |
ColdTaigaM | 158 |
ColdTaigaHills | 31 |
MegaTaiga | 32 |
MegaSpruceTaiga | 160 |
MegaTaigaHills | 33 |
MegaSpruceTaigaHills | 161 |
ExtremeHills+ | 34 |
ExtremeHills+M | 162 |
Savanna | 35 |
SavannaM | 163 |
SavannaPlateau | 36 |
SavannaPlateauM | 164 |
Mesa | 37 |
Mesa(Bryce) | 165 |
MesaPlateauF | 38 |
MesaPlateauFM | 166 |
MesaPlateau | 39 |
MesaPlateauM | 167 |
PlateauM | 167 |
トラップドアを壊さないプラグイン。ManySmallTweaks導入方法
ManySmallTweaks
このプラグインはトラップドアの破壊を防ぐ機能などがあります。めちゃ便利です。しかしながら現在では、jarファイルが配布されていません。それで困っている方が、一人か二人はいらっしゃると思います。そんな方への手引きになれば幸いです
ManySmallTweaksのbukkitのページ。現在はない様子
さて、じゃあどうやって導入するかというと、githubで公開されているソースコードを使います。これからjarファイルをつくり、導入します。私はそんなにプラグラムに詳しいわけではなく、間違いも多々あるかもしれません。この記事において不利益を被った場合において、一切の責任を負いかねますので、その点はご容赦ください。
今回は「Thermos」向けに解説します。「Cauldron」では上手くいくかよくわかりません。下からダウンロードをどうぞ。
ちなみに、Thermos鯖は最新版である58では、wouldeditの木の斧で左クリックするとブロックが壊れます。一つ前の57を使いましょう。鯖建ての方法は以下を参照。
1.導入の前に
導入方法の解説の前に、メモ書き程度に残したいことがあります。トラップドアを設置する方法は別に、このプラグインに限りません。というか、このプラグインの導入は手間が相応にかかります。時と場合では、他の方法の方がいいと思います。復習がてら、思い当たる方法を記しておきます。ただしこの場では詳しくは解説しませんので、リンクから方法をご確認ください
LotMetaBlockPack
現在ではこちらで配布されています。
FAWE
観覧車mod
観覧車modを用いるのは、だいぶアクロバティックな方法です。普段使いにはおすすめできません。最終手段とでも思ってください。このmodを使えば、実に様々なことができますが、その分、一回一回の手間暇が必要になります。正直、トラップドア設置には向きません。
こちら過去の観覧車MODダウンロードリンクです
— MOTTY.fsh (@tera_motty) 2020年3月1日
よろしくどうぞ
通常:https://t.co/lgxo9AZIYT
水シェーダー対応版:https://t.co/sc4NZOR0UB
2.Eclipseの起動
それではまず、ManySmallTweaksのソースコードをダウンロードしましょう
緑色の「Clone or Download」をクリックしたのち「Download ZIP」をクリックして、ダウンロードしてください。そのZIPファイルを解凍してください。
こっから、ソースコードをjarファイルに変えるために、Eclipseというソフトを使います。これは統合開発環境というもので、プログラマー向けの色んな機能が備わっています。日本語化されているものをダウンロードします
Eclipse 日本語化 | MergeDoc Project
Ultimateをダウンロードしてください。もしくはjavaでも十分かもしれませんが、特に理由がないなら、javaにする意味はないとおもいます。正直よくわかんない。
ダウンロードしたものを解凍し、eclipse.exeを起動しましょう
このような画面が出たら、成功です
3.ソースコードの読み込み
マイクラのプラグインはjavaでかかれているため、ファイル>新規>Javaプロジェクトを選択
プロジェクト名に「ManySmallTweaks」と入力します。
こんな感じになったと思います。
先ほどダウンロードしたソースコードのファイルを開いてください
Eclipseに表示されている「src」というファイルとダウンロードしたファイルにある「src」は対応しています。なので、ダウンロードしたファイルの「src」の中にある「redsgreens」を「src」に移動させます
ファイルおよびフォルダーをコピーを選択。
続いて「plugin.yml」も同様にして、「ManySmallTweaks」に移動します。「plugin.yml」の中にプラグインの名称が書かれており、多分プロジェクト名と異なると上手くできません。
このようになりましたでしょうか。なんかいっぱいエラーが出てるので、解消していきましょう。
4.エラーの解消
パッケージ・エクスプローラーの「redsgreens.ManySmallTweaks」をクリックすると、「~.java」っていうのがいくつか表示されていると思いますが、それをポチポチ押してみてください。
なんだかよくわかんないですね。これが、いわゆるプログラムっていう奴です。それはさておき、赤線の波線が引かれているのが、エラーを起こしている場所です。よく見ると、
import org.bukkit.event.EventHandler;
と書かれた一行があります。「bukkkit」って書いてありますね。これは「import」はその後の書いてある処理を別のファイルから受け継ぐことの宣言をしています。めっちゃ大事。なので、「org.bukkit.event.EventHandler」っていうところの処理を受け継ぎます。処理を借りてくる、っていう感じだと思います。
難しい処理を書くのは大変だから、誰しもが使えるように、プラグイン開発向けに色んな処理をまとめて、それ使って、作ってね~。っていうのが「bukkit」です。
エラーが起きているのは、この「org.bukkit.event.EventHandler」っていうのと、このプロジェクトが関連付けられてないからです。この処理はサーバーのjarの中にありますので、サーバーのjarを関連付けます。
「ManySmallTweaks」を右クリックし、ビルド・パス>ビルド・パスの構成を選択。
「ライブラリー」を選択し、外部JARの追加をクリック。
ライブラリーっていうのはbukkitみたいに、難しい処理を単純に扱えるようにいろんな処理をまとめたものです。多分。
「bukkit」が含まれていることを確認したサーバーのjarを選択。このとき、すでにサーバー建てしたものを使ってください。「libraries」も同時に読み込むためです。
適用して閉じます。
エラーが一気に9個まで減りました。警告は無視して結構です。さて、また、なんらかをライブラリーに必要とするみたいです。お気づきの方もいるとは思いますが、エラーの項目を見てください。「WorldGuardPlugin」が足りないようです。そう、「WorldGuard」から処理をかりてきているのです。どうやら、前提プラグインとして「WorldGuard」が必要っぽいです。入れてない方はこれを機会に、どうぞ導入してみてください。
https://dev.bukkit.org/projects/worldguard
ちなみに「WorldGuard」の前提プラグインは「WorldEdit」ですので、サーバーに追加しとくのを抜かりなく。
さて先ほどと同様に、ライブラリーに「WorldGuard」を追加しましょう。
終わりました。ついにエラーがなくなりました。
5.jarファイルへの出力
エラーがなくなったので、いよいよjarファイルへ出力します。
ファイル>エクスポートを選択
Java>JARファイルを選択。次へをクリック
「ManySmallTweaks」を選択。「.classpath」「.project」のチェックボックスを外します。エクスポート先を参照から指定します。名称を「ManySmallTweaks.jar」にします。
完了をクリック。これでjarファイルが生成されています。警告は無視していいです。
生成されています。
6.利用方法
いつも通り「plugins」フォルダにいれて、サーバーを起動してください。
plと打って、表示されれば、導入成功です。お疲れさまでした。
とはまだ早いです。
このままだと壊れます。configをいじらないとデフォルトでは壊れるようになっています。
なのでconfigを開いてみると
えっ...!?
config君迫真の白紙です。
覚えていますでしょうか。githubからダウンロードしたプラグインのソースコードには、一緒に「config.yml」がついてきています。
これで上書き保存してください。また、中身を書き換えていきます。
VerboseStartup: No 冗長なスタート(おそらく負荷軽減)
Defaults:
FloatingLadders: No はしごの破壊を防ぐ
FloatingRails: No レールの破壊を防ぐ
FloatingHatch: No トラップドアの破壊を防ぐ
ButtonsOnMoreBlocks: No ボタンが更に多くのブロックに設置できる(?)
ProjectileTriggers: No トリガーを発射する(??)
RedstoneIgnitesNetherrack: No レッドストーンでネザーラックを燃やす
InfiniteCauldrons: No 無限の大釜(??)
KeepSaddleOnPigDeath: No 豚が死んでもサドルがなくならない(?)
PigsReproduceQuick: No 豚が早く繁殖する
PercentSaddledPigs: 0 サドルのついた豚が生成される確率
PercentColorSheep: 0 色の違う羊が生成される確率
RedstoneIgnitesPumpkins: No レッドストーンでカボチャとジャック・オ・ランタンのきり変えができる
FloatingPaintings: No 絵画の破壊を防ぐ
MineCobwebsWithShears: No くもの巣をはさみで刈り取れるWorlds:
change_me:
FloatingLadders: No
FloatingRails: No
FloatingHatch: No
ButtonsOnMoreBlocks: No
ProjectileTriggers: No
RedstoneIgnitesNetherrack: No
InfiniteCauldrons: No
KeepSaddleOnPigDeath: No
PigsReproduceQuick: No
PercentSaddledPigs: 0
PercentColorSheep: 0
RedstoneIgnitesPumpkins: No
FloatingPaintings: No
MineCobwebsWithShears: No
多分こんな意味。一部の機能しか試してないのでよくわからないところがあります。あんまり、建築には関係なさそうですが。使う際には「Defaults」の方のYesとNoを切り替えて使ってください。
トラップドアがやっと自立しました。では、良き建築ライフを!
7.参考にしたサイト
上記URLに加えて、おおいに参考になったものがありますので、この場で感謝とともに紹介させてもらいます。
以上に加え、沢山のサイトにお世話になりました。謹んでお礼申し上げます。