OptifineのCEM Animationを学んでみる。その4(テクスチャの変更)

イクラJava版の動物を可愛くする試み、Renewed Animal。それを作る過程でいろいろ分かったので、自分用のメモのためと同じようにモブをいじりたいと思う方に何らかの情報を提供できれば、という趣旨の記事です。

 

今回から具体的に動物モブをいじっていくわけですが、敷居の低い作業から順にやっていこうと思います。今回はテクスチャをいじって、リソースパックとして利用する方法です。

 

まず用意するのはこちら。

1.マイクラで使用されているモブのテクスチャデータ

2.BlockBench

前回の記事ではお絵かきソフトがあれば、と書いていましたが、後々BlockBenchは必ず使うのでここで慣れておいた方が良いです。

 

*モブのテクスチャの入手*

では順番に。まずはモブのテクスチャを入手しましょう。このデータはマイクラフォルダの中にあるので、場所さえわかれば簡単に用意できます。まずマイクラがインストールされているフォルダを開きます。通常は

Cドライブ>ユーザー>(ユーザー名)>AppData>Roaming 内から…

.minecraft>version

と開いていくと、今まで遊んだマイクラのバージョンに応じてフォルダがズラッと並んでいると思います。動物に限らず、ブロックやエンティティはバージョンごとに細かい仕様がかなり違います。使用するデータも、実際に遊びたいマイクラのバージョンから持ってこないと不具合のもとになります。

 

ここでは、現行の最新バージョンである1.17.1のデータを使用することにしましょう。フォルダを開くとこんな感じになっていると思います。

f:id:Messron_ME:20211012181247p:plain

上のjarファイルに大量のマイクラ用データが圧縮されていますので、これを適当な解凍ファイルで開きます。うちの環境だと 右クリック>7-zip>展開 ですね。これで下の画像の状態になります。

f:id:Messron_ME:20211012181609p:plain

今回必要な、モブのテクスチャは下記の場所にあります。

1.17.1>assets>minecraft>textures>entity

f:id:Messron_ME:20211012181843p:plain

動物以外にも、モンスターやアーマースタンド(鎧立て)など様々なフォルダがありますが、ここにあるのが全て「エンティティ」と言われるものです。それぞれのフォルダに各モブのテクスチャが配置されているので、見てみると面白いです。ここまで分かれば一つ準備が終わったことになります。

 

*BlockBenchの入手*

次は、実際にモブの見た目を変更する際に必要になるソフトの入手です。BlockBenchはテクスチャの変更だけでなく、モデル(形)そのものをいじることが出来るソフトです(というかそっちが本業)。フリーソフトなので気軽に使うことが出来ます。マイクラに最近追加されたヤギもこのソフトを使って作成されたと話題になりましたが、いわば半公式ソフトといってもいいものですね。下記のリンクからダウンロードできます。

www.blockbench.net

ダウンロードしたファイルを解凍すると、起動ファイルが出てきます。使い方はいろいろな動画やブログで紹介されているのでその辺も参考にしていただきたいですが、まず必要なのは

・日本語

・マイクラのエンティティのモデルデータ一式

を有効にすることです。

 

BlockBenchを日本語にするには、設定を変更します。「settings」をクリックすると

f:id:Messron_ME:20211012183409p:plain

 

こういうのが出ますので「日本語」を選択して右上の「×」をクリック。

f:id:Messron_ME:20211012183528p:plain

一度BlockBenchを落としてから立ち上げ直すと、設定の変更が反映されて日本語になります。

 

次はマイクラのモブをいじれるようにするために、モデルデータがそろった「プラグイン」を入手します。これもBlockBench内で完結します。

ここをクリックすると

f:id:Messron_ME:20211012183846p:plain

 

これが出てきます。

f:id:Messron_ME:20211012184103p:plain

ここでは既にいくつかインストール済みなので、初めての状態で表示されるものとは違うと思います。その中で、「利用可能」タブにある「CEM Template Loader」をインストールします。

 

これで、テクスチャを自由に描きかえる準備が出来ました。

 

*BlockBenchを使ってみよう*

では、モデルを読み込んでみましょう。テクスチャをお絵かきソフトで開くだけでも作業は出来るのですが、BlockBenchでモデルに貼り付けて作業する方がイメージしやすく、楽です。

f:id:Messron_ME:20211012191221p:plain

上の様にクリックすると…

 

f:id:Messron_ME:20211012191323p:plain

この様に、BlockBenchが対応しているエンティティが表示されます。楽しくなりますね。ただ、最新追加モブであるウーパールーパーやヤギは現時点でまだ対応していないのが残念。今回はキツネを開いてみましょう。

 

下の様に、モデルだけが表示されます。

f:id:Messron_ME:20211012191623p:plain

左クリックを押したままマウスを動かすと、モデルの向きを変更出来ます。

マウスホイールでカメラ位置を寄せたり離したり。

右クリックしたままでマウスを動かすと、カメラを平行移動できます。

 

次に、このモデルにテクスチャを適用します。

画面左側の空きスペースで右クリックすると

f:id:Messron_ME:20211012191919p:plain

このようなメニューが出ます。「インポート」を選択するとテクスチャを読み込めます。先ほど確認したマイクラのテクスチャの中から、キツネのテクスチャを選択。

.minecraft>versions>1.17.1>1.17.1>assets>minecraft>textures>entity>fox>fox.png

ですね。

 

すると、

f:id:Messron_ME:20211012192425p:plain

上の様になります。上に配置されている仮テクスチャが優先して読み込まれているので、削除しましょう。

 

f:id:Messron_ME:20211012192544p:plain

右クリックで削除を選択すると…

 

f:id:Messron_ME:20211012192649p:plain

読み込まれました!ぐりぐり動かしてみましょう。キツネはバニラのも可愛いですね。

 

では早速、テクスチャをいじってみましょう。まずはモードを変える必要があります。

f:id:Messron_ME:20211012192918p:plain

右上の「Paint」をクリックするとテクスチャを描きかえるモードに変更されます。

 

f:id:Messron_ME:20211012193049p:plain

個人的にマス目があった方が分かりやすいのですが、不要な場合は「ペイントグリッド」を切れば表示されなくなります。

「b」でブラシ(塗り)、「i」でスポイト(欲しい色をブラシに適用する)、「e」で色を消す、など、基本的なお絵かきソフトと同じショートカットが使えます。

 

個人的な好みでいつも動物の白目を消しているので、それをやってみます。

「i」のスポイトで適当な茶色をキツネの体から選択して、「b」のブラシで目を消します。

鼻から黒の色を貰って、好きな場所に目を置きます。間違えたら「Ctrl」+「z」で一手戻せます。

f:id:Messron_ME:20211012193808p:plain

うーん、やはりつぶらな目はそれだけで可愛い…。

 

さて。マイクラのゲーム内に反映させるためにこれを保存する訳ですが、少し準備が要ります。BlockBenchはこのままの状態でとりあえず置いておきます。

 

*リソースパックを作る*

記事があまりにも長くなってきました。もうひと踏ん張りです。まずは基本的なリソースパックの作り方ですが…

一番最初に開いた「.minecraft」をまた開きます。このフォルダは何度も何度も開くので、デスクトップにショートカットを作っておくと楽です。

では次に…

.minecraft>resourcepacks

内に、適当な名前のフォルダを用意します。モブの色を変えるリソースパックだと判る名前が好ましいです。さらにその中を下記のような状態にします。

f:id:Messron_ME:20211012203848p:plain

assets」は右クリックから新規作成>フォルダで作ります。

pack.mcmeta」も右クリックの新規作成>テキストドキュメントで作成します。

使うソフトはメモ帳など何でもいいです。

pack.png」は縦横128ピクセルの画像なら何でもいいです。今回はBlockBenchの画像をスクリーンショットで撮影し、「ペイント」で画像にしました。

 

撮影した画像を貼り付けたら画像の様にすると良い感じになります。

f:id:Messron_ME:20211012204626p:plain

 

もう少し作業が続きます。

作成したモブのテクスチャを配置する為の場所を作成します。先ほどの「assets」フォルダの下層にどんどんフォルダを作っていきます。

assets>minecraft>textures>entity>fox

 

下の画像の様になるはずです。

f:id:Messron_ME:20211012205109p:plain

 

次に、同じく先ほど作った「pack.mcmeta」をダブルクリックで開きます。何も書かれていないテキストファイルが開かれます。そこに、下記の画像と同じように記述します。

f:id:Messron_ME:20211012205431p:plain

コピペ用に用意しました。

{
  "pack": {
    "pack_format":7,
    "description": "doubutsu_no_mitame_wo_kaeruyo"
  }
}

よく見ればわかってもらえると思いますが、"description"の後の記述はどうでもいいです。ゲーム中でリソースパックの説明文として表示されるので、見た人が分かれば良いです。

 

さて!テクスチャを保存する準備が出来ました。BlockBenchに戻りましょう。

 

*テクスチャをリソースパックに配置する*

テクスチャを右クリックして、「保存」を選択します。

f:id:Messron_ME:20211012205740p:plain

 

先ほど作成したリソースパックの場所を開いていき、「fox」フォルダ内にそのままの名前で保存します。

f:id:Messron_ME:20211012210035p:plain

 

これで、マイクラ内でキツネの表示を変えることが出来ます。リソースパックはネットにあげたりする場合には「assets」「pack.mcmeta」「pack.png」の3つのファイルをzip形式で圧縮する必要がありますが、ただ自分で使うだけならこのままフォルダの状態でOKです。

 

では、マイクラの1.17.1を起動してみましょう。手っ取り早くクリエイティブのワールドを作成して試してみます。まずはスポーンエッグでバニラのキツネを呼び出します。

f:id:Messron_ME:20211012211046p:plain

バニラのキツネです。

 

「esc」からのメニューで「設定」から「リソースパック」を開くと…

f:id:Messron_ME:20211012211313p:plain

先ほど作ったリソースパックが表示されています。右向きの三角をクリックすると

f:id:Messron_ME:20211012211439p:plain

選択中の一覧に入るので、「完了」をクリック。

 

すると…

f:id:Messron_ME:20211012211626p:plain

出来ましたー!この瞬間は何度やっても嬉しいです。

 

大変長くなりましたが、これでいろんなモブの見た目を簡単に帰ることが出来るようになりました。

 

次回は、Optifineの導入と「ランダムエンティティ」について触れていきたいと思います。

OptifineのCEM Animationを学んでみる。その3

*初めに*

イクラの動物たちを可愛くしたい!という強い情熱(バニラの動物のデザインが許せないという思い)の元、リソースパックの作り方を勉強してきました。

 

その結果できたのがこちら。かなり完成に近づいてきました。

Renewed Animal

なぜ「Animal”s”」にしなかったのかと悔やまれます。まぁ、それだけで英語苦手ってのが伝わるからいいんですけど。

 

このためにいろいろ調べてきました。ここらで一旦、現状把握できている事をまとめておきたいと思います。マイクラ環境はJava版です。また、Optifineの使用を前提としています。

この記事以前に描いている、その1とその2の記事は書いていた時点での知識をメモ書きしたものなので、こちらの方が少し正確だし分かりやすいと思います。というか、自分が後で見たときにそう思えるように書くつもりです。

 

*動物(エンティティ)の見た目を変える*

イクラの世界を構成するものには世界そのものを形づくる「ブロック」、一定の法則のもとで動いたり、プレイヤーが干渉して変化を与えられるオブジェクト「エンティティ」、プレイヤーのインベントリに入れることが可能な「アイテム」があると思いますが、その「エンティティ」の中でも自ら動き回ることが可能な「モブ」、さらにその中でも現実世界の動物を模した種類のもの達をいじっていきます。

 

基本的に「既存のモブに変更を加える」という事だけやります。「新しいエンティティやモブをゲーム内に追加する」というのは自分の守備範囲ですし、恐らくリソースパックの範疇を超えていると思います。分りませんので、その方法には触れません。

 

モブの外見等を変える際には、以下の3つの方法があります。

1.テクスチャを変更する

荒めのドットで描かれた、モブの外見の絵を変更します。これには:

・「リソースパック」作成の知識

・簡単なお絵かきソフト(若しくはBlockBench)

が必須です。

イクラに含まれる各モブのテクスチャデータを何らかのソフトで読み込み、描き換えて適切なフォルダ構成で配置してZipファイルにしてやればOK。ただし、特定の条件下でのみ描画されるテクスチャや、バニラにはカラー無いカラーバリエーションをランダムで表示させる、といった場合にはマイクラのMODである「Optifine」の力を借りる必要があります。この方法は「ランダムエンティティ」と言う機能になりますが、ネットでやり方を調べようと思っても意外とストレートに出てこないです。

 

で、実はOptifine自体の中に説明書が入っています。Optifineを解凍ソフトで開くと、docフォルダの中にズラッと仕様書が並んでいます。その中の「random_entities.properties」というファイルがそれですね。英語ですが、翻訳ソフト使えばどうにかなると思います。要はリソースパックとしてOptifineが認識できるフォルダ構成を作って、適切な形のテクスチャを配置してやれば良いです。

 

これらの機能を使って動物の色や顔を変えてやるだけでも相当に印象は変わります。が、形はどうにもできません。尻尾が無かったり、体形のバランスを変更したりといった事は次の方法を使う必要があります。

 

2.モデルを変更する

イクラのモブはキューブで構成されていますが、その形を変更してしまいます。これには

・Optifine

・BlockBench

の二つが必須になります。モデルの形の情報は簡単なテキストファイルでOptifineに認識させるので、厳密に言うとBlockBenchは必要が無いのですが、テキストの打ち込みだけでモデルを作れる人はきっと能力者です。常人には不可能だと思いますので、素直にBlockBenchを使いましょう。フリーソフトです。

 

モデルの変更は、Optifineの中でも「CEM」、カスタムエンティティモデルという機能を利用します。これはBlockBenchの使い方と共に日本語でもブログで紹介されていたり、Youtubeの動画にも詳しいやり方が紹介されています。英語しかないと思いますが、字幕と翻訳機能でどうにかなるでしょう。

 

簡単に説明すると、BlockBench側でマイクラで使用されているモブと同じ形のモデルデータを読み込み、変更を加えたものを「jem」ファイルとして出力、それをOptifineが認識できるように配置してリソースパックとして読み込む、という感じです。ただしBlockBenchとOptifineの間に少し変な癖があります。胴が90度回転して表示されたり、テクスチャを貼り付けたモデルを保存するとマイクラ内でそのモデルが認識されない…など、変なところでつまづきます。対応方法を覚えながらの作業になります。

 

3.アニメーションを追加、変更する

これはOptifineの「CEM Animation」という機能です。モブが持つ元々の動きを変更したり、本来なら動かない部分を動かしたり、追加したパーツに動きを加えたり、といった事が可能です。これがまた日本語での情報が少ない。プログラムの知識があればOptifine内の説明書でも分かるのかもしれませんが、それが無い人には結構な難しさです。

 

これは2の手順で作成したjemファイルに、アニメーションに関する記述を書き加えることで可能となります。ただし、モデルの変更の様にその場で結果を確認できるソフトはありません。記述を加えたり変更したりするたびに保存し直して、マイクラ側でリソースパックを読み込みなおして実際に動きを確認して…という作業を繰り返す必要があります。かなり地道。

 

かなり長くなってしまったので、それぞれ別に記事を立てようと思います。この記事の最後に、現時点での自分の集大成を見ていただきます。ブタのテクスチャ、モデル、アニメーションをすべて変更して生まれ変わったブタさんです。

www.youtube.com

Slash’EMのメモ 道具・宝石

目次アイテムについて>道具・宝石

2021/9/28 新規追加

 

道具類と宝石類のうち、Slash'emで追加されたものから書いていきます。従来の物もそのうち書くかもしれませんが、しばらく先になりそうです。

道具類


魔法の蝋燭

 無限に燃え続ける、正に魔法のろうそく。照明店に低確率で生成される。それ以外での入手はかなり希少。軽くて扱いやすいので永久光源として非常に優秀。他の蠟燭と価格の桁が違うので、判別も容易。

松明

 片手に装備して使う照明。こん棒スキルで武器として扱うことも出来るが、すぐに燃え尽きるのであまり役には立たない。ノームの鉱山で使い捨てよう。

薬鞄

 知識を持ったものが正しく使えば、適切な効果を得られる治療器具のセット。薬師と吸血鬼のテクニックで使用するほか、薬師、僧侶、武闘家、アンデッドスレイヤーは使うことで状態異常を確率で癒すことが出来る。生成率はかなり低い。

釣竿

 食糧事情を劇的に改善させる序盤の優良アイテム。水たまりや掘りに向かって使うことで、一定確率でクラムや靴を釣ることが出来る。失敗して自分がダメージを受けることもあるが、待機して回復する時間を考慮しても、空腹度が進行するよりもトータルで見ればクラムが増えるペースの方が早い。序盤につるはしと合わせて入手できれば、相当楽になるのは間違いない。離れた場所のアイテムを引き寄せることも出来る。

ライトサーベル類(武器の項を参照)

 

宝石類


砥石

 錆びついたりマイナスになった武器の強化値を0に戻すことが出来るアイテム。ただし水場に立っている必要があります。手軽なのは泉。灰色の石の中で判別する際も、きちんと識別された適当な短剣で地面をひっかいた後に、何度か使ってみればよい。マイナス値が無くなると言っても、呪いを除去する訳ではない。

 

回復の石

 インベントリにあるだけで自然回復力を高める石。必ず呪われた状態で生成され、そのままでは逆に回復力が低下する。その場合は出来れば袋に入れておく方がよい。

 通常の状態よりも祝福されている方が早く、より多く体力が回復するようになる。この石の効果は複数所持していれば効果が重複するため、数が集まるほどに飛躍的に生存率が上がる。ただしインベントリにただ重ねておいているだけでは一度にまとめて呪われたりするので、個別に名前を付けて別々にしておくと保険になる。(個別に付けた名前がきちんと表示されない?インベントリでスタックしなくなることは確認。)

 因みに火打石をアップグレードすると50%の確率でこのアイテムになる。

JSlash’EMのメモ モンスターについて

目次>モンスターについて

2021/9/22 記事作成

 

記事タイトルをモンスターについて、とはしましたが、全て書いていくとするとキリがないので、主にSlash’em で追加されたり変更点のあるモンスターについて、という事になると思います。

Slash’em で独自に追加されたモンスター


a b c d e f g h i j k l n o q r s u w x z

A B D F G H J M O P Q S T U V W Y Z 

' @ _ & ; : % $ u e L 

*編集中*

死体から耐性や能力が獲得できるモンスター


Slash'emでもNetHackと同じく、一部の敵の死体を食べることで「耐性」を獲得できます。この耐性は非常に強力で、一度獲得すればそれ以後は半永久的に特定のダメージや悪影響を無効化できます。耐性はキャラクターへの直接的なものにとどまらず、ビンが凍ったり沸騰して割れることも防いでくれるなど、効果は所持品にも及びます。序盤~中盤にかけて、いかに耐性を揃えられるかが攻略の鍵と言っていいくらいです。

リストを埋めるのはかなり時間がかかるので、追々追加することになります。

 

毒耐性獲得

 毒は最序盤からプレイヤーにとっての脅威で、可能な限り早く獲得する事が求められます。蜂やサソリなど毒を持った敵からの攻撃、毒を塗られた武器での攻撃、落とし穴の針に毒が塗ってある場合など、いつ毒の被害を受けてもおかしくありません。

 耐性を獲得する最も手っ取り早い手段は毒を持った生き物の肉を食べることですが、当然その際は毒の悪影響を受け、強さが下がったり、最悪致死量の毒を摂取して死ぬこともあります。一部の「安全に耐性を獲得できる」死体か、缶詰にしてから食べる、解毒方法を確保してから食べる、又は指輪やアミュレットで一時的に耐性を得てから食べる、などの対策が必要になります。

兵隊蟻 イモムシ サソリ類 蜂類 ヘビ 水ヘビ 巨大カブト虫 狂暴ネズミ 巨大グモ ピロリスク 震えるブロッブ(安全)ユニコーン(安全) 洞窟蜘蛛(安全)等

 

眠り耐性

 眠りは受けてしまうと長いターン完全に無防備になってしまうため、これも大変危険な状態異常です。被害を受ける機会は多くはありませんが、眠りの罠やホムンクルスの通常攻撃、眠りの杖を振られた場合などはいつ起こるか分かりません。序盤に耐性を得る機会は多くは無いので、チャンスを逃さないようにしたいものです。

イモムシ エルフ類 ゼラチンキューブ 等

 

炎耐性

 炎耐性はゲームの中盤あたりから被害を受けることが多くなり、ゲーム最終盤までずっと必要になる耐性です。炎の杖やブレス、罠などダメージ源は多数存在するので早く獲得するに越したことはありません。比較的、獲得できる死体の判断が付きやすいのが特徴です。ただし炎のダメージによる装備やアイテムの燃焼、液体の沸騰による瓶の破損などは防げません。

赤色モールド 火蟻 茶色プリン ゼラチンキューブ ピロリスク 等

 

寒さ耐性

 この割れたりすることが無くなるのは大変ありがたい。やはりダメージ無効というのは大変ありがたい。ただし冷気ダメージは瓶を凍らせて割ってしまうので、耐性を持っていても注意が必要。獲得自体は比較的容易。

茶色モールド 雪蟻 イエティ ゼラチンキューブ 等

 

電撃耐性

 電撃攻撃は再序盤からバグ系の敵が繰り出してくるにも拘らず、耐性が獲得しにくい厄介な存在です。ダメージは無効化されますが、指輪や杖の爆発は防げません。危険を感じた際は杖や指輪を床に落としたり、出来る限り速やかに相手を無力化するなどの対策が必要になります。

茶色プリン 黒色プリン ゼラチンキューブ 等

 

粉砕耐性

 粉砕攻撃は食らう事も耐性の獲得も機会が少ないですが、受けてしまうと致命的な被害を被ります。防具が跡形もなく破壊され、自身が直接受けてしまうと即死します。基本的に黒ドラゴンのブレスでしか起こり得ず、反射能力を持っていれば被害は受けませんが、防具の選択肢を広げるためにも耐性として獲得する事が望ましいでしょう。

黒ドラゴン

 

テレパシー能力

 視界外の、思考を持つものを認識する能力。目隠しやタオルで視界をふさいだ際に発動する能力。安全確保のためや、アイテムを盗んで逃げている敵を追い際など、役立つ場面はゲームを通じて多い。Slash'emでは祝福された遠視の薬からも獲得できるようになったので、運が良ければ再序盤から獲得できる。

さまよう目 等

 

変化能力

 不定期に変身してしまうようになる能力。併せて「変化制御能力」を持っていないと、とてもまともにプレイできなくなるので注意。ただし、それさえあれば非常に強力。状況に応じて自由に姿を変えることは戦術と生存率を飛躍的に高める。

ミミック 遺伝子工学者 等

 

瞬間移動能力

 不定期に瞬間移動してしまう能力。これも不用意に獲得してしまうと、非常に面倒でまともにプレイできなくなる。変化と同様に、制御できれば非常に快適な移動が可能になる。

ニンフ レプラコーン フェアリー 天狗 等

 

瞬間移動制御能力

 瞬間移動を制御する能力。不定期に瞬間移動するかどうか尋ねられるのが面倒といえば面倒だが、個人的には出来るだけ取りたい能力。コスト無しで瞬間移動できるのは余りにも強力。ただし獲得方法は多くは無い。

天狗 イェンダーの魔法使い

 

早く行動する能力

 一つの行動で消費されるターンが少なくて済むようになる。敵よりも手数が多くなり、早く移動できるようになる大変重要な能力。

量子物理学者

 

以下編集中

 

対策が無く食べると危険なモンスター


死体には有益な効果だけではなく、毒の様に有害なものもある。中には数ターンで死に至る場合もあるので、細心の注意を払う必要がある。とは言え、食べてしまったとしても一応すべての場合に対策が用意されている。毒に関しては戦術の通りなので割愛。

アンデッド・古すぎる死体の肉

名前から判別できないが、元がゾンビであったり死体になって一定以上の時間が経過したものを食べると「食毒」状態になり数ターンで死亡してしまう。完全回復の薬かユニコーンの角で迅速に治療する、或いは神に祈る必要がある。

コボルトの肉はこれとは違うが、強力な毒性で同じような状態に陥る。この場合も対応策は同じ。

酸性の死体

ブロッブ系のモンスターや緑ドラゴン(及びその幼体)等は食べた際にダメージ受ける。10~20程度のダメージだが、序盤は危険。これは素直に体力の余裕のある時に食べるか、錬金術師の作業着で酸に対する耐性を得た状態で食べる、などの方法になる。

獣人系の死体

ジャッカル男/女やネズミ男/女などの死体は死ぬと動物の名前しか残らないので非常に判別しにくいが、食べると「獣化病」にかかってしまう。ランダムなタイミングで動物に変身してしまい、武器や防具が装備から外れたり、能力値が激減して荷物が運べなくなったりする。これも致命的なので、うっかり食べないように。対策としては聖水を飲む、トリカブトを食べる、神に祈るとやや特殊。

変身するモンスタ

獣人の肉と似ているが、カメレオンやドッペルゲンガーの事。彼らの肉を食べると「変身」能力が身についてしまい、ランダムなタイミングでランダムなモンスターに偏してしまうようになる。装備や能力が全く安定しなくなるので、とてもまともにプレイは出来ない。指輪などで「変身制御」の能力を獲得できるなら、むしろ選択肢が広がりとても強い。ただし、都度変身するかどうか聞かれるのはやや面倒ではある。

自分と同種族の死体

オークは例外的にこのペナルティを受けないが、人間やドッペルゲンガーの際に人間を食べる、ホビットの際にホビットを食べるなどすると神の怒りを買い「反感」を獲得してしまう。眠っているモンスターが起きやすくなったりするので大変やりにくくなる。これは対策がほとんどなく、グレムリンに能力自体をランダムで「盗んで」もらうか、「吸魔の怪物」の死体を食べてランダムに能力が削除されることに期待するしかないとの事。

瞬間移動するモンスター

ニンフやレプラコーン、フェアリー、天狗など。「吠える蜘蛛」とかもそうだった気がする…。彼らの肉を食べると「瞬間移動」能力が付いてしまい、ランダムなタイミングでランダムな場所に瞬間移動してしまうようになる。まともにプレイできなくなるほど大変なので、一時的にでも「瞬間移動制御」の能力を獲得できる状態で食べること。個人的には、その二つが揃った状態は大変強いと思う。

*他にもあるかも*

 

虐殺候補のモンスター


「虐殺の巻物」を読むことで、指定したモンスターをゲーム中から取り除くことが出来る。これは非常に強力な効果で、現時点で配置されているモンスターはもちろん、将来的にも一切登場しなくなる。呪われていない巻物ならモンスターを1種類指定、祝福されていればアルファベットで指定し、該当するモンスター全てをゲームから取り除く。

 この巻物はやや貴重で、あまり気軽には使えないので、使うタイミングと対象は慎重に選ぶ必要がある。例えば吸血鬼の類は強力な種類が多く、虐殺候補の一つ。しかし、彼らは必ず「オペラクローク」を装備しており、このアイテムの供給源としても有用。敵として生成される前に虐殺されると、クローク入手の機会が大きく減ってしまう事となる。ある程度の数がランダムで生成されたのを確認してから虐殺すると、その跡にはオペラクロークが遺されている、ということになる。このように、ただ面倒な敵だから虐殺すればいい、という訳ではない。

 

祝福された虐殺の巻物(文字種単位で虐殺)

L

リッチ系。単純に能力が高いのもあるが、アイテム呪いとアンデッド召喚(新規追加魔法)が非常に厄介。混沌クエストのヴェクナもリッチだが、彼は流石に虐殺できない。

;

海の怪物系。特にウナギ類のまきつき攻撃は即死の危険性がある。対抗策はあるが装備の付け替えが面倒。slash'emではカニさんが追加されているが、そちらは大した脅威ではない。と思う。

R

この文字種には2種類の怪物しかいないが、そのどちらもが完全に虐殺対象。錆びの怪物と吸魔の怪物である。武具を見る見るうちに弱体化させてゆく様は、軽くパニックに陥るほど。しかも動きが早く、あっという間に接近されて1ターンに複数回殴られてしまう。Elberethが効くので遠くから確認できれば対処の仕様はあるが、何があるか分からないのがこの迷宮。油断はしない方がいい。

V

NetHackでは吸血鬼は強力ではあるが、そこまで手に負えない怪物ではなかった。しかしSlash’em で追加された「吸血鬼の魔術師」と「星の吸血鬼」は別格。厄介者の召喚や高ダメージの触手攻撃など、高スペックな能力で非常に嫌な特殊行動を行ってくる。

 

以下編集中

OptifineのCEM Animationを学んでみる。その2

Optifineの仕様テキストとにらめっこしたり、海外の方の動画を見ながら真似したりしてどうにかこうにかモデルにアニメーションを追加する事に成功しました。

 

試験的に導入してみたのは、

「ブタの尻尾を足と同じタイミングで振らせる」

というもの。ちょっと分かりにくいですがこちら。

 

 

 

参考にさせてもらった動画はこちら。

www.youtube.com

 

 

で、今回jemファイルに追加したのが下の画像で反転させてる部分。

f:id:Messron_ME:20210815074348p:plain

尻尾パーツの「tale」を動かしたいから、その下にアニメーションの記述を追加。

いろんな部位のパーツのアニメーションを並べて記述も出来るはずなんだけど、動画では該当するパーツの下に書き加えてたからそれに倣った。見やすいしね。

 

この記述の意味は、

”tale.rx”  尻尾パーツをx軸で回転運動させるよ

:             この後の記述がその動きだよ

"leg1.rx"  その動きはleg1の動きをコピーしたものだよ

/2    *これは動きの速さを替えたつもりだったけど意味ないかも。

 

ていうことみたいです。

 

尻尾は歩行と関係なく一定間隔で動くようにしたくて、それももっとプルプルって二回振ってしばらく休んで…みたいにしたい。みたいにしたい!

 

とりあえず忘れないように今回の成果を記録しました。誰かのためになれ。

OptifineのCEM Animationを学んでみる。

イクラに登場する動物たちの外見を自分好みに変更する為にテクスチャの変更方法に加えてモデルのいじり方も学んできたわけですが、Optifineにはまだ機能があります。

 

アニメーションを変化する機能、CEM Animationです。他の方が作ったリソースパックにFresh Animationsというマイクラのモブたちに驚異的な動きをさせるものがありまして、それに触発されました。

 

Fresh Animations

https://www.curseforge.com/minecraft/texture-packs/fresh-animations

その紹介動画

www.youtube.com

 

自作のリソパ「Renewed Animal」もこんな風に動いたらすごそう!という訳で、Optifineの説明テキストを翻訳してみるところから始めてみます。

 

どうかなー。分かるかなー。

 

######################################################################

# カスタムエンティティモデルアニメーション

# Optifineのカスタムエンティティモデルのファイル参照機能のカスタマイズ方法

######################################################################

# アニメーションさせるための各モデルの動き(variable)には、特定の式が割り当てられます。

# その式はモデルがレンダリングされるたびに動きに割り当てられます。

# 変数と式は、Jsonエンティティモデル(JEM)の"animations"セクションで定義されます。

基本の形

"animations":

[

{

"動き1": "記述1",

"動き2": "記述2,

...

}

]

 

# 動き

# モデルの動きは次の形式で指定します

   "<model>.<variable_name>"

# model は以下の形式をとることが出来ます:

# "this" - 現在のカスタムモデル

# "part" - カスタムモデルが追加されている、オリジナルのモデルパーツ

# "<part>" - オリジナルのモデルの中のパーツの名前

# "<id>" - カスタムモデルのID

# "<part>:<sub_id>:<sub_sub_id>:..." - (階層的) オリジナルのパーツ名からそれに付随するものへと辿ります

# "<id>:<sub_id>:<sub_sub_id>:..." - (階層的)オリジナルのIDからそれに付随するものへと辿ります

# 記述が重複する場合、早く記述されているモデルが使用されます。

# IDによるモデル検索は、階層を指定する場合でも深くなります。(?)

 

# 階層で指定することで、jsonパーツのモデルグループを様々なパーツで再利用できます。

# 例えば片手のモデル ("shoulder:upper_arm:elbow:forearm:palm:finger[1.5]" は左右両方に使用できます。

# この場合、アニメーションでは 左の親指に"left_hand:finger1" 、右の親指に"right_hand:finger1" と指定します。

# また、階層指定で途中に位置するものはスキップすることが出来ます。

 

# 動きの名前の短縮形

# tx, ty, tz - translation x, y, z  (訳注:直線移動?)

# rx, ry, rz - rotation x, y, z    (訳注:回転運動?)

# sx, sy, sz - scale x, y, z      (訳注:大きさ変更?)

 

記述

# 記述は<>、定数、変数、演算子、関数を使用した一般的なものです。

 

# 定数 Constants として使用できるもの

# 不動小数点数 floating point number 

# pi - 3.1415926

# true

# false

 

# 変数 Variables として使用できるもの

# <model>.<var> - モデル変数。モデル変数の仕様を参照して下さい。

# time - ティック単位でのワールド内の時間

 

# レンダリングパラメータ

# limb_swing - 手足のアニメーションカウンター(動かす回数?)

# limb_speed - 手足のアニメーションの速度

# age - ティック単位での年齢(?)

# head_yaw - 頭部の横振り運動

# head_pitch - 頭部の傾け

 

# エンティティパラメータ (float型 値で指定?)

# health (ヘルスの状態を指定)

# hurt_time (ダメージを受ける時間)

# idle_time (何もしない時間?)

# max_health (最大ヘルスの状態)

# move_forward (前に歩く)

# move_strafing (低空飛行で掃射する…?或いは非難する…どゆこと?)

# pos_x, pos_y, pos_z

# revenge_time (反撃する時間)

# swing_progress (振る 進捗 ?)

 

# エンティティパラメータ (boolean型 true false で指定?)特定の条件下でのアニメーションを作成できる?

# is_alive (生きている場合)

# is_burning (燃えている場合)

# is_child (子どもの場合)

# is_glowing (光っている場合?)

# is_hurt (ダメージを受けている場合)

# is_in_hand (装備されている場合?)

# is_in_ground (地中にいる場合)

# is_in_gui (メニュー内で表示されている場合?)

# is_in_lava (マグマの中にいる場合)

# is_in_water (水中にいる場合)

# is_invisible (透明な場合)

# is_on_ground (地上にいる場合)

# is_ridden (騎乗している場合?)

# is_riding (騎乗している場合?)

# is_sneaking (スニーク中の場合)

# is_sprinting (走っている場合)

# is_wet (濡れている場合)

 

# 演算子 Operators として使えるもの

# +, -, *, /, %

# !, &&, ||

# >, >=, <, <=, ==, !=

 

# 関数 Functions として使用できるもの

# sin(x) 短い範囲での運動を繰り返す

# cos(x) 短い範囲での運動を繰り返す(sinと同じ?)

# asin(x) 短い範囲での運動を繰り返す(sinの倍の速さ?)

# acos(x) 短い範囲での運動を繰り返す(asinと同じ?)

# tan(x) 反復運動ではなく、一方向への短い範囲での動きを繰り返す

# atan(x) 分からず

# atan2(y, x)

# torad(deg) 運動の角度?軸の向きを変える

# todeg(rad)

# min(x, y ,...)

# max(x, y, ...)

# clamp(x, min, max)  最大値と最小値を指定し、その範囲の値だけが有効になります

# abs(x) 円運動

# floor(x) absと同じ?

# ceil(x) absと同じ?

# exp(x) 良く分からない。鼻消えた

# frac(x) 超小刻みな振動

# log(x) 90度下を向いたまま

# pow(x) テクスチャ壊れ

# random(x) テクスチャ壊れ

# round(x) 円運動

# signum(x) 動かない?軸が向いてる向きが変わる?

# sqrt(x) 分からず。鼻消えた

# fmod(x, y) Math.floorMod()に近いです(?)

# if(cond, val, [cond2, val2, ...], val_else) 複数の条件に基づいて値を選択します。

 

# ブール関数 Boolean functions (True False のどちらかでのみ指定できる)

# between(x, min, max) 値が最小値と最大値の間にあるかどうかをチェックします

# equals(x, y, epsilon) 二つのフロート値をエラーマージンと比較します(?)

# in(x, val1, val2, ...) 値が指定されたいずれかのものと等しいかどうかをチェックします

 

以上を踏まえた記述例

# ...

# "animations":

# [

#  {

#   "this.rx": "clamp(-0.5 * part.rx, 0, 90)",  このパーツのx軸の回転は-0.5単位で0~90の範囲で動く

#   "this.tx": "3 * sin(limb_swing / 4) - 2",   やっべ全然分からん…手足の振り方なんだろうけど

#   "this:Hoof.rx": "if(leg4:Hoof.rx > 90, leg4:Hoof.rx - 90, 0)" 足4の蹄パーツが指定された場書にある場合?か?

#   ...

#  }

# ]

#

 

馬に蹄で地面を掻くようなアニメーションをさせるって記述かなぁ…?全然違ったりして。

ちょっと難しすぎるな…さすがにプログラムの勉強が要りそう。

ちょっとFresh Animationsの中身を見せてもらおう。参考になればいいけど…。

MINECRAFTがEドライブのSSDにある場合のFORGEの入れ方メモ

これ、毎回良く分からなくなるんすよね。

 

とりあえず、マイクラをHDDのCドライブに入れとくのが嫌だったので

ここ

を参考にさせてもらいSSDのEドライブに入れました。デスクトップにショートカットを置いて、そこからランチャーを立ち上げる様にしています。

 

で、その時にバージョン別のFORGEの入れ方がいつも分からなくなる。

毎回「あれ?あれ?」ってなるんですよ。

なので1.17.1を実際に入れながらメモする事に。これで今後も大丈夫だろ!

 

まずはForgeをダウンロード

Chromeなので、ブラウザ最下部に表示されるダウンロード済みファイルをダブルクリックして起動。

デフォルトでCドライブが指定されてる(ここにはインストールできないので赤字)ので、

E:\Minecraft\.minecraft

を指定。字が黒くなる。そのまま実行するとダウンロードが始まり、別ウインドウで成功のお知らせ。よしよし。

 

でー、Eドライブの

minecraft>.minecraft>Version

フォルダと辿っていくと、

1.17.1-forge-37.0.12

ってフォルダが出来てる。

 

次にマイクラのランチャーを起動させて、起動構成から新規の構成を作成。

名前は自分が分かる様に適当に。

バージョンは release 1.17.1-forge-37.0.12 というのが出てるのでそれを選択。

ゲームディレクトリはうちだと

E:\Minecraft\.minecraft\versions\1.17.1-forge-37.0.12

になる。

これで一応起動するはず!その他のオプションから引数いじったりもするけどその辺はお好みで。

 

で・・・・

f:id:Messron_ME:20210727132740p:plain

よっしゃ成功!だいぶ慣れたなー。

Optifineも入れるか!