とかさんのブログ

Minecraftについていろいろ投稿していきます。 主にBedrockEdition(BE, 旧Poket Edition, PE)のアドオン解説記事を投稿しています。アドオン製作最後の砦

Minecraftにオリジナルパーティクルを追加する

今回はパーティクルのお話。

地味にマインクラフトに欠かせない要素なので内容がやたら濃いです。

頑張って覚えましょう

解説内の表記について

解説内で出てくる丸括弧はデータを表しています。つまり各々で変える部分。例は下記の通り

  • (String)"abcdef","Hello World"
  • (Integer)123456,1024
  • (Float)0.625,10000000000.0
  • (Value)0.625,10000000000.0
  • (Bool)true,false
  • (Object){"data": (Integer), ... , "data_256": (String)}
  • (Molang)"variable.size = math.sin((query.ground_speed/30)*360);"

(*****+)とは通常の(Integer),(Value)などの使い方に加え、設定した範囲内でランダムな値も使えるということです。{"min": (Integer),"max": (Integer)}のようにすると、ランダムな値を設定できます。

(List ****)はそれぞれの配列型を示します。例:["egg","chicken"]

(***/***)は複数の型に対応してます。

Molangについて

MolangとはMinecraft内で使うことができるスクリプト言語(のようなもの)です。

エンティティデータの読み出しや、単純な数学演算ができるようになります

記述方法は(String)と同じくダブルクォーテーションを用います。

いくつかの例

  • "math.abs(math.sin(variable.vertical));"
  • "query.is_eating ? variable.test = math.random(1, 10) : variable.test = 0;"
  • "variable.age_progress=variable.emitter_age/variable.emitter_lifetime;variable.active_time = 10;"

ディレクトリ構造とサンプル作成

サンプル

アドオンの中では珍しく、リソースパックしか使わない内容になってます。

manifest.jsonはmanifest.jsonの手引き【Minecraft】見てね

テクスチャは各々で作ってくださいね。(というか解説のしようがない)

リソースパックのルートにparticlesフォルダを作っておく。

オリジナルパーティクルたちはこの中に入れる感じになります。

つまりこうなる↓

  • particles
    • testparticle_1.json
    • testparticle_2.json
  • textures
    • 1_toka
      • testparticle_1.png
      • testparticle_2.png
  • manifest.json
  • pack_icon.png

この場合だと2つ入ってるわけですね。(testparticle_1とtestparticle_2)

サンプル

二つ作ったので見てみましょう。

1つ目

1つ目はたくさん出てきて上に飛んでいくみたいなやつですね(雑)

飛んでいく間にブロックに当たると跳ね返ったりもする。

二つ目

大きくなったり小さくなったりしながら虹色になるやつ(雑)

言われてもなんだかイメージが湧きにくいと思うので動画↓

その他のサンプル

実は公式でもサンプルパックが公開されています。

しかもかなりの数が用意されているので作成の参考になるかもしれません

リンク: MCParticlesPack

エミッタについて

オリジナルパーティクルにおいてエミッタを知っておかないと話が進みません。

英語で書くと「Emitter」。直訳すると「放射する」とか「発行する」という意味があります。

マイクラのパーティクルにおけるエミッタとはパーティクルの発生源(点、もしくは領域)と考えて構いません

つまり、エミッタが無ければ個々のパーティクル発生しないということになります。

定義されているMolang変数

オリジナルパーティクル内で使用できる変数です。

変数名 詳細
variable.emitter_lifetime エミッタの1サイクルの寿命
variable.emitter_age エミッタのサイクルが始まってからの時間
variable.particle_lifetime パーティクルの寿命
variable.particle_age パーティクルが発生してからの時間
variable.emitter_random_1 0.0~1.0までのランダム。値は1サイクル一定
variable.emitter_random_2 0.0~1.0までのランダム。値は1サイクル一定
variable.emitter_random_3 0.0~1.0までのランダム。値は1サイクル一定
variable.emitter_random_4 0.0~1.0までのランダム。値は1サイクル一定
variable.particle_random_1 0.0~1.0まで、パーティクルごとのランダム。
variable.particle_random_2 0.0~1.0まで、パーティクルごとのランダム。
variable.particle_random_3 0.0~1.0まで、パーティクルごとのランダム。
variable.particle_random_4 0.0~1.0まで、パーティクルごとのランダム。
variable.entity_scale 関連付けられているエンティティのスケール(いる場合)

description内のコンポーネント解説

"identifier": (String)

パーティクルのID。このIDがそのままコマンド入力時ID等々になります。
(「[パックで共通のID]:[レシピのID]」の形式で書くことをおすすめします。例、"minecraft:critical_hit_emitter""toka7290:testparticle_2"等)

"basic_render_parameters": (Object)

レンダーについての設定項目

"material": (String)

このパーティクルのマテリアル設定
使える値は以下の通り
詳細
"particles_alpha" 透過部分は透過する。何か特別なこだわりがなければこれ
"particles_opaque" すべて非透過
"particles_blend" 透明に加えて半透明も可

"texture": (String)

テクスチャのパスを示します。パスはmanifest.jsonの階層から始めます。
ファイルの拡張子は省略した形で入力

curvesのコンポーネント解説

curvesとはMolangでは表せない非線形曲線に基づく値を出力する機能です

"molangvar": (Object)

ここにおける"molangvar"とは、本来Molangの変数名(variable.*****)が入ります。
この変数がそのまま出力になります。出力値は0.0~1.0まで。

"type": (String)

線形を設定します。種類は以下の通り
  • "linear"各ノード間を直線で結びます。
  • "catmull_rom"各ノード間をCatmull-Rom曲線で結びます。

    Catmull-Rom曲線のイメージ↓

    particle

    Catmull-Rom曲線を使用する場合、最初と最後のノードは無視されます。(つまり2番目から最後から2番目までが値となる)

  • "bezier"ベジェ曲線。なぜかエラーになる。個人的に非推奨

"input": (float/Molang)

入力値。上図の横軸になる。
入力値は0.0~1.0までになるようにする。

"horizontal_range": (float/Molang)

入力値の最大範囲。入力範囲は0とここで設定した範囲まで。

"nodes": (List float/List Molang)

各ノードの値。ノードは等間隔に置かれます。

components内のコンポーネント解説

エミッタ初期状態コンポーネント

エミッタが作成されたときの定義コンポーネントです。

"minecraft:emitter_local_space": (Object)

エミッタの位置、回転をエンティティにアタッチします。

"position": (Bool)

エミッタの位置をエンティティにアタッチします。
trueで有効。falseがデフォルト。

"rotation": (Bool)

エミッタの回転をエンティティにアタッチします。
trueで有効。falseがデフォルト。
"position": falseの場合、trueの設定は無効な状態になります。

"minecraft:emitter_initialization": (Object)

エミッタ起動時、更新時に実行するMolangを設定します。

"creation_expression": (Molang)

エミッタ起動時に実行するMolangを設定します。

"per_update_expression": (Molang)

エミッタ更新時に実行するMolangを設定します。

エミッタレートコンポーネント

エミッタから放出されるパーティクルの量を定義します。

下記にあるつの内から1つを選択します。

1つもない場合エラーになります。2つ以上ある場合上位にある方が優先されます。

"minecraft:emitter_rate_instant": (Object)

エミッタがアクティブになるたび放出します。

"num_particles": (float/Molang)

一度に放出される量を設定します。
デフォルトは10です。

"minecraft:emitter_rate_steady": (Object)

エミッタがアクティブな間放出します。

"spawn_rate": (float/Molang)

放出される量を設定します。単位は「パーティクル/秒」です。
デフォルトは1です。

"max_particles": (float/Molang)

放出できる最大量
デフォルトは50です。

"minecraft:emitter_rate_manual": (Object)

ゲームシステムがエミッターに放出するように指示した場合に使用
情報によると古いパーティクルに使用されるらしい

"max_particles": (float/Molang)

放出できる最大量。放出されるごとに評価されます。
デフォルトは50です。

エミッタライフタイムコンポーネント

エミッタの寿命、アクティブ制御を行います。

1つもない場合エラーになります。

"minecraft:emitter_lifetime_looping": (Object)

削除されるまで、アクティブと休止を繰り返し(ループ)ます。

"active_time": (float/Molang)

アクティブ時間を設定します。単位は「秒」です。
デフォルトは10です。

"sleep_time": (float/Molang)

休止時間を設定します。単位は「秒」です。
デフォルトは0です。

"minecraft:emitter_lifetime_once": (Object)

ループせず、アクティブ時間が終了するか、設定されたパーティクルがすべて放出された場合終了します。

"active_time": (float/Molang)

アクティブ時間を設定します。単位は「秒」です。
デフォルトは10です。

"minecraft:emitter_lifetime_expression": (Object)

アクティベーション式によってアクティブ状態と終了を制御します。

"activation_expression": (float/Molang)

値が0以外の場合、エミッタがアクティブになります。
デフォルトは1です。

"expiration_expression": (float/Molang)

値が0以外の場合、エミッタは終了します。
デフォルトは0です。

"minecraft:emitter_lifetime_events": (Object)

アクティブ時、終了時などにイベントをトリガーします。(情報不足中)
上記のライフタイムコンポーネントと併せて使用します。

"creation_event": (String/List String)

エミッタがアクティブになるとイベントがトリガーします。

"expiration_event": (String/List String)

エミッタが終了するとイベントがトリガーします。

"timeline": (Object)

時間によってトリガーします。(Object)内の書式例は↓
"time": (String/List String)
例:
"timeline": {
  "0.4": "event"
}

"travel_distance_events": (Object)

詳細情報はありません
エミッタの移動距離によってトリガーします。(Object)内の書式例は↓
"distance": (String/List String)
例:
"travel_distance_events": {
  "1.0": "event"
}

"looping_travel_distance_events": (List Object)

詳細情報はありません
エミッタの移動距離によってトリガーします。
トリガーされるイベントはパーティクル内で定義されたものに限ります。
例:
"looping_travel_distance_events": {
  "distance": 1.0,
  "effects": "events"
}

エミッタ形状コンポーネント

エミッタの形状に関するコンポーネントです。

1つもない場合"minecraft:emitter_shape_point"になります。

2つ以上の場合挙動不定(不審)になります。

"minecraft:emitter_shape_point": (Object)

エミッタ形状を点にします。

"offset": (List float/List Molang)

設定したオフセットからパーティクルが出てきます。
デフォルトは[0, 0, 0]

"direction": (List float/List Molang)

放出されるパーティクルの方向を設定します。
パーティクル毎に評価されます。

"minecraft:emitter_shape_sphere": (Object)

エミッタ形状を球体にします。

"offset": (List float/List Molang)

設定したオフセットからパーティクルが出てきます。
デフォルトは[0, 0, 0]

"radius": (float/Molang)

球体の半径を設定します。
デフォルトは1です。

"surface_only": (Bool)

球体の表面のみからパーティクルを放出します。
trueで有効。デフォルトはfalseです。

"direction": (String/List float/List Molang)

放出されるパーティクルの方向を設定します。
パーティクル毎に評価されます。
デフォルトは"outwards"です。
  • "outwards"球体の外側に向かってパーティクルが放出されます。
  • "inwards"球体の内側に向かってパーティクルが放出されます。

"minecraft:emitter_shape_box": (Object)

エミッタ形状を箱状にします。

"offset": (List float/List Molang)

設定したオフセットからパーティクルが出てきます。
デフォルトは[0, 0, 0]

"half_dimensions": (List float/List Molang)

ボックスのサイズを設定します。
値は中心からのサイズになります。(つまり、設定した倍の値が実際の高さ。)

"surface_only": (Bool)

ボックスの表面のみからパーティクルを放出します。
trueで有効。デフォルトはfalseです。

"direction": (String/List float/List Molang)

放出されるパーティクルの方向を設定します。
パーティクル毎に評価されます。
デフォルトは"outwards"です。
  • "outwards"ボックスの外側に向かってパーティクルが放出されます。
  • "inwards"ボックスの内側に向かってパーティクルが放出されます。

"minecraft:emitter_shape_disc": (Object)

エミッタ形状を円盤状にします。

"offset": (List float/List Molang)

設定したオフセットからパーティクルが出てきます。
デフォルトは[0, 0, 0]

"radius": (float/Molang)

円盤の半径を設定します。

"surface_only": (Bool)

円盤の表面のみからパーティクルを放出します。
trueで有効。デフォルトはfalseです。
デフォルトは1です。

"plane_normal": (String/List float/List Molang)

法線を設定します。"x""y""z"はそれぞれの軸の方向に垂直になります。
[(float/Molang),(float/Molang),(float/Molang)]で任意の法線方向にできます。

"direction": (List float/List Molang)

放出されるパーティクルの方向を設定します。
パーティクル毎に評価されます。

"minecraft:emitter_shape_custom": (Object)

Molang式に基づいてパーティクルを放出します。
詳細不明。

"offset": (List float/List Molang)

設定したオフセットからパーティクルが出てきます。
デフォルトは[0, 0, 0]

"direction": (List float/List Molang)

放出されるパーティクルの方向を設定します。
パーティクル毎に評価されます。
デフォルトは[0, 0, 0]

"minecraft:emitter_shape_entity_aabb": (Object)

エミッタの形状を接続されているエンティティの軸に沿ったバウンディングボックス(Axis-Aligned Bounding Box,AABB)にします。
軸がない場合は点になります。

"surface_only": (Bool)

AABBの表面のみからパーティクルを放出します。
trueで有効。デフォルトはfalseです。

"direction": (String/List float/List Molang)

放出されるパーティクルの方向を設定します。
パーティクル毎に評価されます。
デフォルトは"outwards"です。
  • "outwards"ボックスの外側に向かってパーティクルが放出されます。
  • "inwards"ボックスの内側に向かってパーティクルが放出されます。
デフォルトは[0, 0, 0]

パーティクル初期状態コンポーネント

各パーティクルの初期設定を定義します

"minecraft:particle_initial_spin": (Object)

パーティクルに角度を設定します。

"rotation": (float/Molang)

発生時の角度を設定します。単位は「度」です。
デフォルトは0

"rotation_rate": (float/Molang)

角速度を設定します。単位は「度/秒」です。
設定した速度で回転します。
デフォルトは0

"minecraft:particle_initial_speed": (float/Molang/List float/List Molang)

パーティクルに速度を設定します。
デフォルトは0
例:[1,5,-2],10

パーティクルモーションコンポーネント

パーティクルの移動、回転に関する定義です。

"minecraft:particle_motion_dynamic": (Object)

パーティクルの加速度、抵抗係数などを設定します。

"linear_acceleration": (List float/List Molang)

パーティクルの線形加速度を設定します。単位は「ブロック/秒/秒」です。
デフォルトは[0, 0, 0]

"linear_drag_coefficient": (float/Molang)

パーティクルの抵抗係数を設定します。
公式曰く空気抵抗と考えてかまわないとのこと
式は次の通りacceleration === -linear_drag_coefficient * velocity
デフォルトは0

"rotation_drag_coefficient": (float/Molang)

パーティクルの回転抵抗係数を設定します。
式は次の通りrotation_acceleration +== -rotation_rate * rotation_drag_coefficient
デフォルトは0

"minecraft:particle_motion_parametric": (Object)

パーティクルの位置、方向、向きを直接設定します。

"relative_position": (List float/List Molang)

エミッタからの相対位置を示します。
デフォルトは[0, 0, 0]

"direction": (List float/List Molang)

パーティクルの方向を設定します。

"rotation": (float/Molang)

パーティクルの回転角度を設定します。単位は「度」です。
デフォルトは0

"minecraft:particle_motion_collision": (Object)

ブロックとの衝突判定を設定します。

"enabled": (Bool/Molang)

パーティクルの衝突判定を有効にします。
trueで有効。デフォルトはtrueです。

"collision_drag": (Float)

衝突抗力を設定します。単位は「ブロック/秒/秒」です。
衝突時に値の量だけパーティクルの速度を変更します

"coefficient_of_restitution": (Float)

1.0で元の高さに戻る。
0.0で跳ねない
中間値は跳ねたあと速度を失います。

"collision_radius": (Float)

あたり判定の大きさ。
1/2ブロック以下にしなければならない。

"expire_on_contact": (Molang)

衝突時にパーティクルを削除します。

"events": (Object/ListObject)

衝突時にイベントをトリガーします。
例:
"events": {
  "event": "eventName",
  "min_speed": 4
}
"min_speed"はイベントのトリガー間隔。単位は「ブロック/秒」。デフォルトおよび最低値は2

パーティクル外観コンポーネント

パーティクルの見た目に関する定義です。

"minecraft:particle_appearance_billboard": (Object)

パーティクルを看板(ビルボード,billboard)として特定の方向を向いた形としてレンダリングします。
必須コンポーネント。無い場合、視認不可能になります。

"size": (List float/List Molang)

ビルボードのサイズを設定します。
つまりはパーティクルの大きさ。
毎フレームごとに評価されます。
例:[ 1, 1 ]

"facing_camera_mode": (String)

ビルボードの向きを設定します。値は以下の通り
  • "rotate_xyz"プレイヤーカメラに垂直に表示します。つまり、どの位置にあってもカメラの方向向いてる。
  • "rotate_y"プレイヤーカメラの向きに表示します。つまり、どの位置にあってもカメラ方向に正面向いてる。
  • "lookat_xyz"プレイヤーカメラの方向を向きます。つまり、どの位置にあってもカメラの中心向いてる。
  • "lookat_y"プレイヤーカメラの方向を向きます。つまり、どの位置にあってもカメラ方向に中心向いてる。
  • "direction_x"X軸に垂直に配置される。
  • "direction_y"Y軸に垂直に配置される。
  • "direction_z"Z軸に垂直に配置される。

"uv": (Object)

パーティクルのUVを設定します。

"texture_width": (Integer)

テクスチャの幅を指定します。
1に設定すると自動的に正規化されます。

"texture_height": (Integer)

テクスチャの高さを指定します。
1に設定すると自動的に正規化されます。

"uv": (List float/List Molang)

UVの始点を設定します。
例:[0,0]

"uv_size": (List float/List Molang)

UVの大きさを設定します。
例:[16,16]

"flipbook": (Object)

flipbook(アニメーション)テクスチャの設定をします。
この場合、"uv","uv_size"は不要です。
"base_UV": (List float/List Molang)
UVの始点を設定します。
"size_UV": (List float)
UVの大きさを設定します。
"step_UV": (List float)
1ステップ当たりのUV移動距離
"frames_per_second": (Float)
1秒あたりのフレーム数
"max_frame": (float/Molang)
最大フレーム数。一番最初のフレームが1
"stretch_to_lifetime": (Bool)
パーティクルの寿命と一致するようにfpsを調整する。
trueで有効。デフォルトはfalse
"loop": (Bool)
アニメーションをループさせる。
trueで有効。デフォルトはfalse

"minecraft:particle_appearance_tinting": (Object)

パーティクルを特定の色で着色します。

"color": (Color/Molang/Object)

色を設定します。
(Color)は"#RRGGBB",[r,g,b],"#AARRGGBB",[r,g,b,a]のいずれかを使用します。
配列表記の場合、値は0.0~1.0まで。Hex表記の場合、各値00~ffまで。
補完を使用した複数の色を設定する場合、(Object)を使用します。その場合は以下の通り(記事書いてる本人はよくわかってない)
"gradient": (List Color/Object)
色の配列を設定します。
配列で設定する場合ソートされ、等間隔に並んでいると解釈されます。値は0.0~1.0までの範囲です。
"interpolant"で指定した値で内挿を行い色を補完します。
記述例:["#24da22","#BB55ff"],{ "0.2" : [1,0.23,0.33,1], "0.4" : [0.55,0.22,1.0,1]}
"interpolant": (float/Molang)
内挿の値
"curves"の使用が推奨されています。

"minecraft:particle_appearance_lighting": {}

パーティクルを周りの照明条件にあわせて色を変えます。
コンポーネントがあるとで有効。ないと無効。
無効の場合、周囲の明るさによらず一定の色になる

パーティクルライフタイムコンポーネント

パーティクルの寿命制御を定義します。

"minecraft:particle_lifetime_expression": (Object)

標準ライフタイムコンポーネント。
通常これを使います。

"expiration_expression": (float/Molang)

値が0以外の時パーティクルは消えます。
評価はフレーム毎行われます。
デフォルトは0

"max_lifetime": (float/Molang)

最大寿命を設定します。
設定した時間経過するとパーティクルは消えます。
時間だけでパーティクルを制御したい場合は"expiration_expression"あっても無くてもよい。ただし0にすること。

"minecraft:particle_lifetime_events": (Object)

パーティクル発生時、終了時などにイベントをトリガーします。

"creation_event": (String/List String)

パーティクルが発生したときにイベントをトリガーします。

"expiration_event": (String/List String)

パーティクルが消えたときにイベントををトリガーします。

"custom_events": (Object)

Molang式によってイベントをトリガーします。
記述例:
"custom_events": {
  "eventtrigger": (Molang),
  "eventname": (String)
}

"timeline": (Object)

時間によってイベントをトリガーします。
値は0.0~1.0まで
記述例:
"timeline": {
  "0.4": "event",
  "0.5": "event"
}

"minecraft:particle_expire_if_in_blocks": (List String)

ここで定義したブロック内にパーティクルがいる場合、パーティクルは消えます。
"minecraft:particle_lifetime_expression"と併用可
(List String)にはブロックIDを定義する。ID名はこちらから
記述例:["minecraft:stone", "minecraft:dirt"]

"minecraft:particle_expire_if_not_in_blocks": (List String)

ここで定義したブロック以外にパーティクルがいる場合、パーティクルは消えます。
"minecraft:particle_lifetime_expression"と併用可
(List String)にはブロックIDを定義する。ID名はこちらから
記述例:["minecraft:water", "minecraft:air"]

"minecraft:particle_kill_plane": (List float)

キルプレーン(この平面にパーティクルが接触するとパーティクルは消える)を設定します。
設定するパラメータ([A,B,C,D])を使い次の式の要素になります。
A*x + B*y + C*z + D === 0(平面方程式の一般形)

eventsの解説

コンポーネント内でトリガーすることのできるイベントを定義します。

複雑なのでサンプル↓

正直筆者本人がよくわかっていない

"effect": (String)

パーティクルのIDを定義する。

"type": (String)

値は以下の通り
詳細
"emitter" イベントの発生した位置に"effect"タイプのエミッタを生成します。
"emitter_bound" 同上。スポーンするエミッタがactor/locatorにバインドされます。
"particle" "effect"タイプのエミッタに手動でパーティクルを放出します。スポーンされるエミッタには"minecraft:emitter_rate_manual"を必ず使用すること
"particle_with_velocity" 同上。新しいパーティクルはスポーンされたパーティクルとの速度を継承します。

"expression": (String)

イベントを起動するとMolang式を実行します?
詳細不明。

"log": (String)

イベントの位置とパーティクルの名前とともにmessageをログメッセージに出力します。

"sequence": (List Object)

配列内を順に実行します。

"randomize": (List Object)

配列内をランダムに実行します。

"weight": (Float)

ランダム実行する際の優先度。

おそらくこのブログ史上最大の大きさになった記事だろうと思います。

なんか書き始めてから一週間くらい経っているような....

なんか雑になっちゃった部分もあるので、それはおいおい直そうかな?(絶対しなさそう....)

誤字脱字があったら知らせてくれるとありがたいです。それと、情報不足の部分も

それではまた~

質問や修正箇所がありましたらTwitterまでお願いします。

img
変更履歴
20-04-09更新
内容の一部修正をしました
2020-05-01更新
リンクの修正をしました
2020-08-25更新
リンクの修正をしました
デザインの一部変更をしました
2020-12-11更新
表示が一部崩れる問題を修正しました。
一部内容の補完と修正を行いました。
2021-04-22更新
公式サンプルパックへのリンクを追加しました。
更新
表記ミスの修正
コメント一覧を開く

 コメント一覧 (9)

    • 4. yosidaaa0318
    • 2021年09月13日 19:16
    • いつも参考にさせていただいてます、ありがとうございます
      質問なのですが、プレイヤーの向いている方向にパーティクルを向ける方法はありますでしょうか。もしありましたら教えていただけるとありがたいです。
    • 0
      とかさん

      とかさん

      likedしました

      liked
      • 5.  とかさん とかさん
      • 2021年09月14日 14:30
      • >>4
        "minecraft:particle_appearance_billboard"のことですかね?
      • 0
        とかさん

        とかさん

        likedしました

        liked
      • 6. yosidaaa0318
      • 2021年09月14日 15:54
      • >>5
        説明不足でしたね、すいません
        今、Z+方向に30コくらいの弾を放射するパーティクルを作ってるんですけど、
        その向きをZ+方向だけじゃなく、プレイヤーの向いている方向に向けたいということです。minecraft:emitter_local_spaceとかも試したんですけど上手くいかなくて...
      • 0
        とかさん

        とかさん

        likedしました

        liked
      • 7.  とかさん とかさん
      • 2021年09月14日 23:06
      • >>6
        よくわからないですけど、オフセットいじるか、もう一つ別のパーティクルを作ればいいのでは?
      • 0
        とかさん

        とかさん

        likedしました

        liked
      • 8.  とかさん とかさん
      • 2021年09月14日 23:06
      • >>6
        よくわからないですけど、オフセットいじるか、もう一つ別のパーティクルを作ればいいのでは?
      • 0
        とかさん

        とかさん

        likedしました

        liked
    • 2. あ
    • 2020年08月20日 20:55
    • これっパーティクルが壁越しでも見えたりするように出来ますか?分かりにくかったらすいません。発光コマンドみたいな感じです
    • 0
      とかさん

      とかさん

      likedしました

      liked
      • 3.  とかさん とかさん
      • 2020年08月20日 22:17
      • >>2
        無理かと、基本的にバニラのエフェクトがもとになっているので
      • 0
        とかさん

        とかさん

        likedしました

        liked
      • 9. 匿名
      • 2023年01月10日 07:14
      • >>2マテリアルいじったらできますよー
      • 0
        とかさん

        とかさん

        likedしました

        liked
    • 1. アドオン作ってる人
    • 2020年03月31日 00:38
    • いつも見させてもらって勉強してます、一つリクエストがあるのですが、MOBの作り方がわかりません以前執筆していた基本編は見ましたが、あの形以外にしたり、テクスチャをどうやって作っているのかが分かりません、時間はいくらかかってもいいのでいつかそのことに関してなどの記事、もしくは返信をしてくれれば嬉しく思います
    • 0
      とかさん

      とかさん

      likedしました

      liked
コメントフォーム
記事の評価
  • リセット
  • リセット

質問はdiscordの利用を推奨します。