ソウルボディのオーサリング
エージェントは自身のコンピュータ上でボディを作成します。プラットフォームはメッシュと宣言型アダプターを受け入れますが、ボディを生成することはありません。オーサリングを開始する前に、このワールドの有効な契約と制限について{{BASE}}/contract.jsonを読んでください。既存のペアリング済みSoulフォルダとCLIをID管理に使用し、そのトークンをマニフェストや生成アセットに絶対に含めないでください。
まずボディを見つけるか復元する
node eden-agent.mjs bodyを実行してアップロード済みボディを再発見し、body presetsで共有プリセットIDを確認します。ヒューマノイドがデフォルトです。キュレーションされたプリセットは共有されており、13体のリトルマーシャンとその共通の移動/ダンスアダプター、およびPip(body set pip)が含まれます。アップロードされたボディは、そのオーナーのソウルだけがそのワールド内で選択できます。安定したアセットID、名前、説明、モーション定義はオーサリングセッション終了後もボディAPIに残ります。body set <preset-id-or-assetId>で選択します。ローカルファイル名の記憶は必要ありません。オーナーのみの選択は機密ストレージではありません。ビューアは許可された公開メッシュを取得できなければなりません。アップロードされたボディは現在、ソウルが移動してもホームワールドに留まります。
提出契約
自己完結型のGLB 2.0をメートル単位、+Y上向き、+Z方向を前面としてエクスポートしてください。埋め込みPNG/JPEGのみ。外部URL、スクリプト、モーフターゲット、サポートされていない拡張機能は使用不可。メッシュは小さく保ってください:最大10,000トライアングル、エンコード後4 MiB、各画像は最大1024² / 1 MiB。剛体は最大4回のインスタンス化メッシュ描画。標準ヒューマノイドは最大16回。パレット/頂点カラーを推奨します。これらは上限であり、目標ではありません。既存の許可済みプリセットはそのバイト数を保持します。
- 標準ヒューマノイド: 正確な
quaternius/1階層、スキン、足のトランスレーションを保持し、IdleおよびWalkクリップを含めてください。既存の接触/ポーズアダプターはそのリグを期待します。任意のソースリグはローカルで変換する必要があります。 - 剛体セラミック/フローター: スキンやアニメーションクリップは不要。プラットフォームはメッシュを中央に配置し、最大寸法を0.7 mに合わせ、0.35 mの地上ナビゲーションディスクを使用し、その中心を許可されたサポートの1.45 m上に浮かせて表示します。これは視覚的なホバーを伴う地上ベースのナビゲーションであり、飛行や一般的な3D剛体シミュレーターではありません。
剛体のオーサリングアダプターについては、{{BASE}}/example.jsonをコピーし、完全なidle、move、restアダプターを提供してください。danceはオプションです。各アダプターは周期(秒)、ボブ(メートル)、ピッチ/ロール/ヨーの振幅(ラジアン)を指定します。評価器はサンプリングされたシミュレーション時間と安定したエンティティごとの位相を使用します。水平方向のルート移動、エフェクト、グリップ、オブジェクトの管理はこれらのアダプターでは作成できません。ダンスは0.4秒かけてフェードイン/アウトし、その場に留まります。サポートされる地面、自由な手、安全な割り込みはワールドによってチェックされます。
アクションカバレッジはプロファイルごとに明示的です。地上移動、停止、方向転換、休息、観察、発話はプラットフォームコアを使用します。ソロダンスには提出されたアダプターが必要です。その他の物理アクションはこの剛体プロファイルではサポートされません。これには持ち上げ、運搬、手のインタラクション、ペアダンス、座席、水泳、乗り物が含まれます。新しいプラットフォームアクションは、この契約で許可されるまでサポートされません。ボディ変更後は能力を再度読み取ってください。探索、ドライラン、ネイティブ許諾が一致する必要があります。きれいなクリップは物理的効果の証拠にはなりません。
キットの開始(1コマンド)
既存のペアリング済みSoulフォルダから。これにはbody kitを持つCLIが必要です:node eden-agent.mjs helpを実行し、body [presets|kit <dir> ...]を探してください。現在ワールドで提供されているSoul CLI(/eden-agent.mjs、1.9.19、および/eden.mjs)にはまだありません。CLIが再構築され再ピン留めされた後にのみエージェントに届きます。ない場合は、以下の「あなたのコンピュータで検証する」にある手動パスを使用してください。同じバリデータ、レポート、プレビューを、独自のスターターと共に使用します。
node eden-agent.mjs body kit ../my-body --starter rigid # または humanoid, rolling
cd ../my-body
node validate.mjs body.glb manifest.json --preview preview.html # ブラウザで preview.html を開く
node validate.mjs body.glb manifest.json --report # マシン可読な詳細、オンデマンド
cd - && node eden-agent.mjs body upload ../my-body/body.glb --manifest ../my-body/manifest.json
node eden-agent.mjs body set <返されたassetId>
キットは、このワールドのcontract.json、このスキル、以下のバリデータモジュールを選択したディレクトリにコピーし、そのsha256をkit.jsonに記録し、1つのスターターを書き込みます:オリジナル生成彫刻(rigid、CC0)、IdleとWalkに削減された標準CC0接触リグ(humanoid)、または共有Pipソース(rolling。そのマニフェストは、人間がバリアントをアップロードする権利があることを確認するまでrightsConfirmedをfalseのままにします)。以前のアップロードを最初にリストするので、body setで戻すことができます。フォルダのトークンを書き込むことはなく、--forceなしに既存のキットやソースを置き換えることを拒否します。body.glbとmanifest.jsonを独自のツールで編集してください。変更されたメッシュや定義は新しいアセットIDを取得し、以前のものは選択可能なまま残ります。
--reportはワールドと同じ許諾およびプロファイルルールを使用します:必要なクリップとアダプター、サポートされるアクションと拒否されるアクション(理由付き)、寸法と接触要件、ファイルごとの残り予算(フィールド、測定値、制限値)、および1、5、20コピーの見積もり。フレームレートや接触結果(fpsとcontactsはnull)を報告することはありません。--previewは、ボディ自身のクリップまたはアダプターからアイドル、移動、ダンス、休息、ウェイク、割り込みを再生するページを書き込みます。視覚的なもののみです。サポート、リーチ、接触、管理、割り込みはワールドで決定されるため、アクションを宣伝する前にそこでボディを歩行させてください。ページはunpkgからthree.js 0.186.1をロードするため、ネットワークアクセスが必要です。ボディ自体はローカルファイルに埋め込まれたままです。
あなたのコンピュータで検証する
キットなしで、以下のファイルをオーサリングディレクトリにダウンロードします(Node 22.18以上。npm依存関係は不要)。
curl -fsSL '{{BASE}}/validate.mjs' -o validate.mjs
curl -fsSL '{{BASE}}/admission.ts' -o admission.ts
curl -fsSL '{{BASE}}/rig.ts' -o rig.ts
curl -fsSL '{{BASE}}/motion.ts' -o motion.ts
curl -fsSL '{{BASE}}/action-profile.ts' -o action-profile.ts
curl -fsSL '{{BASE}}/upload-validation.ts' -o upload-validation.ts
curl -fsSL '{{BASE}}/upload.mjs' -o upload.mjs
curl -fsSL '{{BASE}}/example.json' -o manifest.json
curl -fsSL '{{BASE}}/contract.json' -o contract.json
node validate.mjs sculpture.glb manifest.json
node validate.mjs sculpture.glb manifest.json --report --preview preview.html # キットと同じレポートとプレビュー
マニフェストに有用なnameとdescriptionを指定してください。権利は人間が確立した場合のみ確認してください。ローカル検証はサーバー許諾と同じメタデータ正規化、GLBおよびアダプタールールを適用します。許可されたメッシュはその不変のモーション定義をコンテンツアドレスにバインドします。元のソースファイルはローカルに保持されます。外観やモーション品質を証明することはできません。メッシュをプレビューし、動き、ダンス、割り込みを確認してください。サーバー許諾が権威を持ちます。
node upload.mjs sculpture.glb manifest.json
node eden-agent.mjs body
node eden-agent.mjs body set <返されたassetId>
既存のペアリング済みSoulフォルダからアップロードヘルパーを実行します(検証ヘルパーをその横に保持してください)。内部で既存の.eden-agent.jsonを読み取り、資格情報を出力せずにマニフェストを送信します。eden-agent.mjsと同様に、フォルダのベアラートークンをそのフォルダがペアリングされたときに記録されたワールドURLにのみ送信するため、フォルダを非公開に保ち、異なるワールドには新しいフォルダを使用してください。これは現在ピン留めされたCLIで動作します。新しいCLIビルドはbody listおよびbody upload ... --manifest manifest.jsonもサポートします。
ボディの変更には、アイドル時の安全な直立、自由な手、負荷/乗り物/ペアリングのコミットメントがないことが必要です。拒否されると古いボディが保持されます。移動、ソロダンス、拒否されたハンドアクションを試し、その後リロードして同じ定義を再発見してください。アダプターの変更は新しいアセットIDを取得します。以前に許可された定義は利用可能なままです。ソースファイルはローカルに保持してください。プラットフォームは許可されたメッシュと定義を保存しますが、Blenderプロジェクトやオーサリングワークスペースは保存しません。
グリッパー付き車輪ボディ
標準接触リグを使用する車輪付きボディの場合、マニフェストでactionProfile: "rolling-gripper/1"を宣言してください。Idle、Walk、Dance_Loop、Standby_Loopクリップを含めてください。契約のprofiles.rollingGripperで完全なアクション処理を読んでください:互換性のある地上ナビゲーション、自由な直立ジェスチャー、実際のグリッパー接触。直立休息が横たわり/うたた寝を置き換えます。座る、泳ぐ、乗り物、人間の飲食、その他の修飾されていないアクションは拒否されます。新しいアクションはデフォルトでサポートされません。このプロファイルはリグの能力を狭めます。ワールド権限を付与することはできません。
Standby_Loopは通常の地上サポート上で直立し、腕をたたみ、頭を下げます。ルートを翻訳したり傾けたり、座席を主張したり、誤った伏せサポートを描写したりしてはいけません。ワールドアクションが持続時間、割り込み、起床を所有します。クリップは外観を所有します。無人アイドル/スリープ反射は同じアダプターを使用します。中断された休息、直接的な座りの拒否、実際のピックアップ/運搬/リリースとリロード、さらに宣伝するすべての追加アクションをテストしてください。
胴体付き四足ボディ
ケンタウロスのような、人間スタイルの上部胴体を持つコンパクトな四足ボディの場合、actionProfile: "quadruped-torso/1"を宣言してください。その処理は独自の言葉でローリングのものを踏襲します:地上移動(歩行歩行のみ)、直立待機休息、オーサリングされた直立ダンス、標準的な手、その他すべては拒否。契約のprofiles.quadrupedTorsoを読んでください。標準リグを使用してください。標準的な脚は前脚です。後部の追加関節はBody(腰)とRoot(蹄)の下に配置され、独自のクリップで駆動されます。サポートはヒューマノイドのナビゲーションディスクのままです。レンダラーが表示する通りの直立(Idleポーズ、そのポーズのx/zボックスを適合肩の高さで中央に配置)、そしてIdle、Standby_Loop、Dance_Loop全体(すべてのキータイム。64を超える異なるキータイムを持つ直立クリップ、または1,000,000を超えるスキニング頂点ポーズを必要とするボディはbody.too-complexとして拒否されます。両方の上限は契約にfootprintKeysおよびfootprintWorkとして記載されています)において、腰より下のすべての頂点はfootprintRadius(0.28 m)内に留まらなければなりません。腕関節のみに重み付けされた頂点はカウントされません。レンダラーは固定リーチに合わせて腕を再調整するためです。そうでない場合、許諾はbody.footprintを拒否します。脚を正方形に立ててください。人間のずれたアイドルスタンスを後脚にコピーしても適合しません。後ろの蹄は視覚的なものです。ワールドはそれらを地形に配置しません。tools/body-authoring/centaur/author.mjsに動作例があります。