From b723eef325b264831f2b8e272f6e82564820eb03 Mon Sep 17 00:00:00 2001 From: dima_dencep Date: Sat, 28 Feb 2026 01:50:41 +0700 Subject: [PATCH 1/4] Create ceb_editor.html --- static/ceb_editor.html | 1085 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1085 insertions(+) create mode 100644 static/ceb_editor.html diff --git a/static/ceb_editor.html b/static/ceb_editor.html new file mode 100644 index 0000000..f690456 --- /dev/null +++ b/static/ceb_editor.html @@ -0,0 +1,1085 @@ + + + + + + Custom Emote Bones Editor + + + + + + +
+
+
+
Custom Emote Bones Editor
+
Attach Minecraft models to bones · texture atlas builder
+
+
+ + +
+ + +
+
+ +
+ { } + Emote .json here or click + + +
+
+ +
+ +
+ + Drop MC model .json or .bbmodel here + + +
+
+ + +
+ + +
+ +
+ + +
+ + +
+
+ + +
+ + +
+ +
+ +
+ Atlas +
+
+ + +

+
+        
+ 1. Load emote JSON
+ 2. Load Minecraft model (.json or .bbmodel)
+ 3. Map textures (auto for .bbmodel)
+ 4. Select target bone
+ 5. Merge & Save +
+
+
+ + + + + From e2a17e99a361914b7a3125d0310447a6d5516783 Mon Sep 17 00:00:00 2001 From: dima_dencep Date: Sat, 28 Feb 2026 01:55:07 +0700 Subject: [PATCH 2/4] Update custom_pivot_points.md --- emotecraft/creatingemotes/custom_pivot_points.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/emotecraft/creatingemotes/custom_pivot_points.md b/emotecraft/creatingemotes/custom_pivot_points.md index 159caba..3e98675 100644 --- a/emotecraft/creatingemotes/custom_pivot_points.md +++ b/emotecraft/creatingemotes/custom_pivot_points.md @@ -8,6 +8,7 @@ You can add custom bones to the Blockbench model AS LONG AS THEY ARE A CHILD OF For example you could add a hip bone that rotates all the bones except the legs around well... the hips. But for this to work you have to register the new bone you have created by adding something like this to the animation JSON: ```json5 +{ "model": { "bone_name": { "pivot": [0, 12, 0] @@ -18,7 +19,8 @@ But for this to work you have to register the new bone you have created by addin "left_arm": "bone_name", "torso": "bone_name", "head": "bone_name" - }, + } +} ``` You can either add this to the root of the JSON or under a specific animation. Replace `bone_name` with the name of your custom bone. From d5238e6d0508679aaa4f8eaedaf55440135ca089 Mon Sep 17 00:00:00 2001 From: dima_dencep Date: Sat, 28 Feb 2026 02:00:30 +0700 Subject: [PATCH 3/4] Document custom model bones and CEB editor Add documentation for the new custom model bones feature (texture + elements) and link to the Custom Emote Bones Editor tool. Co-Authored-By: Claude Opus 4.6 --- .../creatingemotes/custom_pivot_points.md | 84 ++++++++++++++++--- 1 file changed, 72 insertions(+), 12 deletions(-) diff --git a/emotecraft/creatingemotes/custom_pivot_points.md b/emotecraft/creatingemotes/custom_pivot_points.md index 3e98675..a55bac0 100644 --- a/emotecraft/creatingemotes/custom_pivot_points.md +++ b/emotecraft/creatingemotes/custom_pivot_points.md @@ -4,8 +4,8 @@ description: "How to add custom pivot points and bones to emotes." --- # Custom Pivot Points/Bones -You can add custom bones to the Blockbench model AS LONG AS THEY ARE A CHILD OF THE BODY BONE. -For example you could add a hip bone that rotates all the bones except the legs around well... the hips. +You can add custom bones to the Blockbench model AS LONG AS THEY ARE A CHILD OF THE BODY BONE. +For example you could add a hip bone that rotates all the bones except the legs around well... the hips. But for this to work you have to register the new bone you have created by adding something like this to the animation JSON: ```json5 { @@ -22,17 +22,77 @@ But for this to work you have to register the new bone you have created by addin } } ``` -You can either add this to the root of the JSON or under a specific animation. -Replace `bone_name` with the name of your custom bone. -Replace the bones in parents which whatever bones are the children of your custom bone. -And last but not least replace the pivot value with the pivot point of your custom bone. -You can add as many custom bones as you want, and even have custom bones with other custom bones as their children. -You could also add a bone with no children as some sort of marker. +You can either add this to the root of the JSON or under a specific animation. +Replace `bone_name` with the name of your custom bone. +Replace the bones in parents with whatever bones are the children of your custom bone. +And last but not least replace the pivot value with the pivot point of your custom bone. +You can add as many custom bones as you want, and even have custom bones with other custom bones as their children. +You could also add a bone with no children as some sort of marker. :::warning -If you have read the fading in/out page of the wiki you know that `endTick` uses the easing of the last keyframe. -Well, this does not apply to custom bones. -So if the bones affected by a custom bone have a keyframe their easings will be used, if not then it will default to in out sine. +If you have read the fading in/out page of the wiki you know that `endTick` uses the easing of the last keyframe. +Well, this does not apply to custom bones. +So if the bones affected by a custom bone have a keyframe their easings will be used, if not then it will default to in out sine. -::: \ No newline at end of file +::: + +## Custom Model Bones + +Custom bones can also have their own 3D model attached. This allows you to render custom geometry that moves with the bone during animations. + +To add a model to a custom bone, include `texture` and `elements` fields alongside `pivot` in the `model` section: + +```json5 +{ + "model": { + "bone_name": { + "pivot": [0, 12, 0], + "texture": "", + "elements": [ + { + "from": [0, 0.25, 0], + "to": [16, 0.25, 16], + "faces": { + "down": { "uv": [0, 16, 16, 0], "texture": "#texture", "tintindex": 0 }, + "up": { "uv": [0, 0, 16, 16], "texture": "#texture", "tintindex": 0 } + } + } + ] + } + }, + "animations": { + "my_animation": { + "loop": true, + "bones": { + "bone_name": { + "rotation": { + "vector": [0, "q.anim_time * 20", 0] + } + } + } + } + } +} +``` + +- `texture` — a base64-encoded PNG image used as the texture for the model. +- `elements` — an array of block model elements, using the same format as [Minecraft block models](https://minecraft.wiki/w/Tutorials/Models#Block_models). Each element can have `from`, `to`, `faces`, and `rotation` fields. + +:::info + +`texture` and `elements` are optional. If they are not provided, the bone will act as a regular pivot bone without any visible model. + +::: + +### Custom Emote Bones Editor + +Instead of manually writing the `texture` and `elements` fields, you can use the [Custom Emote Bones Editor](/ceb_editor.html) to attach existing Minecraft models (.json or .bbmodel) to bones in your animation. + +The editor allows you to: +1. Load your emote JSON +2. Load a Minecraft model (.json or .bbmodel) +3. Map textures (automatic for .bbmodel files with embedded textures) +4. Select a target bone +5. Merge the model into the bone and build a texture atlas automatically +6. Save the resulting JSON From 025ae45d08a55734c5be5c9a6e709c806e3546b1 Mon Sep 17 00:00:00 2001 From: dima_dencep Date: Sat, 28 Feb 2026 02:03:14 +0700 Subject: [PATCH 4/4] Fix broken link to ceb_editor.html Use pathname:// protocol for static file link to bypass Docusaurus broken links check. Co-Authored-By: Claude Opus 4.6 --- emotecraft/creatingemotes/custom_pivot_points.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emotecraft/creatingemotes/custom_pivot_points.md b/emotecraft/creatingemotes/custom_pivot_points.md index a55bac0..29b9346 100644 --- a/emotecraft/creatingemotes/custom_pivot_points.md +++ b/emotecraft/creatingemotes/custom_pivot_points.md @@ -87,7 +87,7 @@ To add a model to a custom bone, include `texture` and `elements` fields alongsi ### Custom Emote Bones Editor -Instead of manually writing the `texture` and `elements` fields, you can use the [Custom Emote Bones Editor](/ceb_editor.html) to attach existing Minecraft models (.json or .bbmodel) to bones in your animation. +Instead of manually writing the `texture` and `elements` fields, you can use the [Custom Emote Bones Editor](pathname:///ceb_editor.html) to attach existing Minecraft models (.json or .bbmodel) to bones in your animation. The editor allows you to: 1. Load your emote JSON