Communitygithub.com

Roblox ボックスリグ動物

ヘッドレスBlenderで、ローポリ、スタッド付き、ブロック状(ボックスリグ)の動物やクリーチャーモデルをRoblox向けに作成します。小さなペットから本格的なドラゴンまで対応し、歩行、走行、待機アニメーションと突然変異バリエーションを生成します。

Roblox ボックスリグ動物 とは?

このスキルは、Roblox向けのブロック状(ボックスリグ)動物モデルをヘッドレスBlenderで生成するものです。ユーザーは動物のデータファイル(パレット、ボーン、ボックス、クリップを定義)を作成するだけで、スクリプトがメッシュ、スタッド、リグ、アニメーション、突然変異バリアント、レンダリング、エクスポートを自動で行います。ペンギン、ドラゴン、ライオンなどの実例が付属しており、正しい動物の解剖学的構造をブロックで表現することに重点を置いています。出力はRobloxに最適化されており、1つのドロ―コール、1つの統合メッシュ、頂点カラー、タイル状スタッドテクスチャを使用してパフォーマンスを維持します。また、ゴールド、ダイヤモンド、シャドウの突然変異バリアントを自動生成し、Studio MCPを通じてRoblox Studioで直接テストすることも可能です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/genfire209/roblox-box-animal/tree/HEAD

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Roblox ボックスリグ動物 は何をしますか?

動物ごとに1つの小さなデータファイル(パレット、ボーン、ボックス、クリップ)を作成します。scripts/boxrig.py がそのファイルをメッシュ、スタッド、リグ、アニメーション、突然変異、レンダリング、エクスポートに変換します。

プレビューは examples/previews/ にあります:

  • examples/penguin.py:二足歩行
  • examples/dragon.py:本格的なドラゴン:滑らかなボクセルボディ/S字首/尾 + ボックス製の頭、角、プレート、コウモリの翼、顎と火吹き待機アニメーションを備えています。
  • examples/lion.py:解剖学的に正しいライオンで、ずんぐりした外観:滑らかなボクセルボディ、大きなスタッド、ボクセルグリッド上に描かれたピクセルアートの顔。examples/lion_chibi.py は旧式のちびライオンで、ボックスAPIの例として残されています。

必要条件

  • Blender 4.2以降、ヘッドレスで実行。Windowsでは C:\Program Files\Blender Foundation\Blender */blender.exe、Macでは /Applications/Blender.app/Contents/MacOS/Blender を探してください。5.1でテスト済み。
  • Python 3とPillow、numpy: py -m pip install --user pillow numpy。スクリプトを py -I で実行しないでください。
  • 以下のプレースホルダー: <B> = Blenderの実行可能ファイル、<S> = このスキルのフォルダ。

ワークフロー

  1. 仕様、解剖学が最優先(ユーザールール)。 すべての動物は実際の動物の構造を取得します:実際のボディプラン、プロポーション、シルエットをブロックで構築します。特徴を貼り付けただけの立方体キャラクターにしないでください。
    • reference/anatomy.md を読んでください。実際の動物を調べるか、ユーザーの参考資料を使用します。
    • データファイルにコメントとして、そのプロポーションを肩高で記述します:体長、頭、首、脚、尾。
    • 大きな形状で側面のシルエットを大まかにブロックし、細部を追加する前に一致させます。
    • ちびや「かわいいペット」のプロポーション(大きな頭、短い脚)は、ユーザーから依頼があった場合のみ使用します。
    • 2~4の特徴的な特性とクリップ(デフォルトは Walk、Run、Idle)をメモします。ユーザーの参考画像やモデルが仕様です。
    • スケールを決定します:Robloxキャラクターは約5スタッドの高さ、ペットは4~8スタッド、実物大の生き物は実物大(ドラゴンは約40スタッドの長さ)。大きな動物を縮小しないでください。
  2. 最も近い例をユーザーのフォルダにコピーするか、py <S>/scripts/new_animal.py <名前> quad|biped <フォルダ> を実行します。スキル内では決して編集しないでください。
  3. データを編集します。 最初に reference/design_guide.md を読んでください。
  4. ビルドとレンダリング:
    <B> -b --factory-startup --python <S>/scripts/boxrig.py -- <animal.py> all
    py <S>/scripts/make_sheet.py <out_dir> _v1
    
    • <out_dir> はファイルの隣の out_<名前> です。
    • モードは views(形状確認用、高速)、gif、export、mutations(ビュー、エクスポート、突然変異)、all です。
  5. 確認: <名前>_sheet_vN.png、review_<クリップ>_vN.png、<名前>_mutations_vN.png を確認します。データを修正し、新しいタグで再ビルドします。Readツールは画像をパスでキャッシュするためです。通常3~5ラウンド。
  6. 検証: <B> -b --factory-startup --python <S>/scripts/verify_fbx.py -- <out_dir> が VERIFY_OK と出力する必要があります。
  7. 納品: シート、突然変異シート、GIFを納品します。
  8. Studio: Roblox Studio MCPが接続されている場合。reference/roblox_studio.md に従います:インポート、修正、BoxRigAnim + ポーズとKeyframeSequences用の <名前>Clips、MutationFX、そして計測されたプレイテスト。

データファイルのチートシート

  • 単位と軸: スタッド、Z上、正面 = -Y、動物の左 = +X。
  • ボックス: box(x0,x1, y0,y1, z0,z1, 色, ボーン)。sym(...) はボックスを右側にミラーリングし、% はボーン名で L または R になります。ボーンに % を含む box も同様です。後から定義されたボックスが重なり合う領域で優先されます。
  • ボクセル彫刻(クリーチャーボディのデフォルト): VOXEL を滑らかな曲線に十分小さい値(体長の約1/90:大きなドラゴンで0.5、ライオンで0.2)に設定し、STUD_SIZE を大きく(2~4セル、例:1.0 / 0.8)設定して、スタッドを塊感があり読みやすいままにします。その後:
    • vell(cx,cy,cz, rx,ry,rz, col, bone):楕円体。
    • vcap(p0, p1, r0, r1, col, bone):先細りカプセル(首、脚、尾、角、鼻面に使用)。
    • vbox(...):ボックス。
    • vsheet(origin, u, v, pts, thick, col, bone):平らなポリゴン(翼、ひれ、飾りに使用)。bone に ('a', split, low, high) を指定すると、2つのボーン間で分割されます。
    • オプション:paint=True は既存のボクセルのみを再着色(腹の縞、目、模様)。paint='belly' はその色のセルのみを再着色(縞模様のバンド)。ボーン内の '%' は左右にミラーリング。mirror=True は同じボーン上でミラーリング(角、歯)。
    • すべてが1つのグリッド上でボクセル化され、貪欲にメッシュ化されます。半径は1ボクセル以上に保ってください。そうしないと薄い部分が壊れます。「デフォルトスタイル = 滑らかなSHAPE + 塊感のあるLOOK」を reference/design_guide.md で読んでください。
  • 有機的形状、ボックスベース(古い塊感スタイル):
    • ell(cx,cy,cz, rx,ry,rz, colour, bone) は3つのボックスで作られた丸みを帯びた階段状の塊です。胴体、胸、腰、首のセグメント、太もも、尾のセグメントに使用します。
    • poly([(x,y),...], z0, z1, colour, bone, step=1.0) は上面図の輪郭を塗りつぶします。翼膜、ひれ、飾り、尾の先端に使用します。bone はxの関数にでき、膜を Wing と WingTip に分割します。
    • beam(p0, p1, width, z0, z1, colour, bone) はまっすぐな棒で、腕の骨、翼の指、角に使用します。
  • 翼のある動物: 翼を平らに広げた状態でモデル化し、クリップ内で wing_rest=(raise, tip_droop, sweep) で折りたたみます。ドラゴンは (58, 24, 22) を使用します。VIEW_POSE = ('Idle', 0) を設定して、シートに翼を折りたたんだ状態の動物を表示します。
  • ボーン: BONES[name] = (parent, head, tail)。正確に1つのルートが (0,0,0) にあり、これにはボックスがありません。ヘッドポイントがピボットです。
    • 四足歩行クリップには Body、Head、FrontUpper/Lower_L/R、BackUpper/Lower_L/R が必要です。オプション:尾のチェーン、neck チェーン、wings=('Wing','WingTip')、jaw。
    • 二足歩行クリップには Body、Head、Leg_L/R が必要です。オプション:Foot_L/R、Wing_L/R、尾。
  • クリップ: CLIPS = {'Walk': (fn, frames), ...}、30fps、シームレス、その場で動作。
    • 既製のファクトリ(キーワード引数のみ):
      • quad_walk、quad_run、quad_idle(jaw=, yawn=)、quad_fly
      • biped_walk、biped_run、biped_idle、biped_fly
    • 飛行する動物(ドラゴン、鳥、グリフィン、コウモリ、翼のあるもの全般)、ユーザールール:
      • Walk は地上歩行:脚が動き、翼は静止。quad_walk(..., wings=..., wing_flap=0) または biped_walk(..., wing_flap=0) を使用します。
      • Run は飛行:翼を羽ばたかせ、脚は走らない。脚はたたんで静止。quad_fly(...) または biped_fly(...) を使用し、quad_run や biped_run は使用しません。
      • 脚が走っている間は翼を羽ばたかせないでください。
    • 火吹き(ドラゴンやその他の火を吹く生物):quad_idle(jaw='Jaw', yawn=26, fire=(0.55, 0.75)) に加えて、データファイル内に MOUTH = (x, y, z) と MOUTH_BONE = 'Head' を指定します。
      • クリップは後ろに下がり息を吸い込み、次に顎を開いて前方に突き出します(t0 から t1)。
      • GIFは代用の炎を表示します。Studioでは、assets/FireBreath.lua がクリップのFireStartおよびFireStopマーカーから実際の炎を駆動し、突然変異ごとに色が変わります。
      • 炎はアニメーションエディタでは表示されません。アニメーションエディタはボーンのみを再生するためです。編集モードで表示するには、assets/BoxRigPreview.lua を使用します。
      • 前方を向いた顎は rx + で下に開きます。rx - は上に振れ、頭蓋骨内に消えたように見えます。
    • 典型的な長さ:歩行32~40フレーム、走行18~24、待機90~150。
    • 大きな動物はよりゆっくりと重く動きます:より多くのフレーム、スタッド単位でのより大きな bob と bounce、より低い pitch。
    • カスタムクリップは fn(t) -> {bone: ((rx,ry,rz) 関節でのワールド軸周りの度数、(tx,ty,tz) スタッド)} です。符号:rx + は足を後ろに振り、頭をうなずかせ、尾を持ち上げます。
  • 突然変異(デフォルトでは Gold、Diamond、Shadow)は boxrig.py の MUTATIONS から生成されます。
    • 各突然変異は、パレットの明るさを滑らかなカラーランプにマッピングします。
    • ROLES は目の部分(iris、eye、shine、blush)に名前を付け、突然変異の補色の目の色を取得できるようにします。keep は歯などのキーを変更せずに残します。
    • MUTATIONS = {...} で上書きし、MUTATIONS_USE でサブセットを選択できます。

Robloxフレンドリーな構造(これらは壊さないでください)

  • 1つのドロ―コール: 1つのメッシュ、1つのマテリアル、1つの共有512pxタイル状スタッドテクスチャ。色は頂点カラーで、RobloxがTextureIDで乗算します。
  • リジッドスキニング(1.0ウェイト)と、同じボーン上の別のボックスに隠れた面のカリング。
  • サイズ: ペットで約800トライアングル、ドラゴンで約1,600。モブは約3k未満に保ちます。ハードリミットは20kです。
  • 突然変異は同じリグ上の別々のメッシュです:すべてのアニメーションがすべてのバリアントで機能します。エフェクトは1つのエミッターと、モデルあたり最大1つのライトから生成されます。
  • エクスポート: リーフボーンのないFBX、FBX単位スケール、-Z前方でY上、ルートは原点、クリップごとに1つのFBX。

詳細:reference/design_guide.md、reference/roblox_rules.md、reference/roblox_studio.md、reference/pitfalls.md。

関連スキル