feat(characters): ship lena_leafbikini_base_v01 as female Ariki default
Lena with the leaf bikini sculpted into the mesh — a separate character descending from her own Tripo original, not a lena_base_v02. Full-res (1,029,360 v) at 1.777 m, now Ariki_Female_QuatSkin.glb + LOD1. First nearest-surface graft in the rig lane: AccuRig had to be fed a 20:1 decimated bait, so the index-exact graft the two earlier ships used was impossible. The bait recovers AccuRig's 9.346 mm offset in closed form, which makes it a required input forever — copied into the ship folder, and rig-work's "disposable" rule amended to say so. Mesh moved 0 mm, 0 unweighted verts. lena_base_v01 goes superseded, not rolled-back: she lost the default slot but Ariki_Female_QuatSkin_Nude.glb is untouched, so per rule 9 her folder stays put. Also lands the leaf-cut lane (work/lena_leafbikini): hue-keyed seam detection that removes the leaf shell and leaves both holes open by request, registered as a lane milestone with its sha256. Corrects the rig-work trap note — baits do carry embedded textures; it is AccuRig that strips them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
# lena_leafbikini_base_v01 — SHIPPED 2026-08-13
|
||||
|
||||
**Frozen.** Nothing in this folder is ever edited or re-exported (REGISTRY rule 2).
|
||||
Any change at all becomes `lena_leafbikini_base_v02`.
|
||||
|
||||
The game's female base body. Lena wearing a leaf bikini that is **sculpted into the
|
||||
mesh**, not a garment — there is no cloth to fit, no OutfitCatalog entry, and no way to
|
||||
take it off. Full-resolution Tripo scan (999,823 v after weld) on the 65-bone Quaternius
|
||||
skeleton. She replaced the nude `lena_base_v01` body as `Ariki_Female_QuatSkin.glb`.
|
||||
|
||||
First ship for the `lena_leafbikini` character. She is a **separate character lineage**
|
||||
from `lena`, not a `lena_base_v02` — she descends from her own Tripo original
|
||||
(`originals/female/female_lena_leafbikini_tripo.glb`, registered 2026-08-13) and shares
|
||||
no geometry with the nude sculpt.
|
||||
|
||||
## Contents
|
||||
|
||||
| file | what |
|
||||
|---|---|
|
||||
| `lena_leafbikini_base_accurig_glb_v01.glb` | the body as it left this repo — pristine mesh + 3× 4K atlas + AccuRig skeleton, 1,029,360 v / 101 joints |
|
||||
| `rig/lena_leafbikini_base_accurig_fbx_v01/` | **irreplaceable.** Output of a manual AccuRig 1.10.1822.1 session — no script regenerates this. Settings JSON kept alongside as provenance |
|
||||
| `rig/lena_leafbikini_base_decimated_fbx_v01.fbx` | the 51,682 v carrier fed *into* that AccuRig session. Regenerable (`tools/rigbait_decimate.py`) but kept because the graft **cannot run without it** — see "the bait is the bridge" below |
|
||||
| `preview/` | renders of the shipped body; `rigbait_qa_front.png` is the pre-rig carrier for comparison |
|
||||
|
||||
## How she was built
|
||||
|
||||
| step | what happened |
|
||||
|---|---|
|
||||
| bait | `tools/rigbait_decimate.py`, budgets body 24k / head 14k / hands 40k → 51,682 v / 77,999 tris, no scale, no recenter |
|
||||
| rig | AccuRig 1.10.1822.1, manual, on the bait → 101 `CC_Base_*` bones, 38 finger bones, both wrists |
|
||||
| graft | **nearest-surface**, `work/lena_leafbikini/01_graft.py` → weights off the 51,682 v carrier onto the pristine 1,029,360 v mesh. Mesh moved 0.000000 mm, 0 unweighted verts, weight sums exactly 1.0, deformed-at-rest drift 0.000239 mm |
|
||||
| quatskin | `ariki-game/tools/make_lena_fullres_quatskin.py` with `LENA_CLEAR_SPLIT_NORMALS=1` → 65 joints, 1.777 m, rigid-mitt fingers |
|
||||
|
||||
## The bait is the bridge
|
||||
|
||||
This is the one structural difference from `lena_base_v01` and `mako_base_v01`, and it is
|
||||
worth understanding before touching the lane again.
|
||||
|
||||
Both of those grafted **index-exact**: AccuRig was handed the shipping mesh whole and gave
|
||||
back the same vertices in the same order, so weights copied index-to-index. Here AccuRig was
|
||||
handed a carrier decimated **20:1** from the shipping mesh, so there is no index
|
||||
correspondence and proximity is the only available mechanism.
|
||||
|
||||
That leaves the problem of *space*: AccuRig returns the carrier moved (measured here at
|
||||
**9.346 mm** in Y, scale exactly 1.000000 — the same family as the July lane's 4 cm offset
|
||||
trap), so its skeleton is in AccuRig's space, not the GLB's. Nothing is guessed to fix this.
|
||||
The rigged FBX is index-exact against **the bait** (51,682 v both, same order), and the bait
|
||||
is in the GLB's space by construction because `rigbait_decimate.py` applies no scale and no
|
||||
recenter — confirmed exactly, bait and GLB sharing height 0.9792 and half-span 0.4583 to four
|
||||
decimals. So fitting rigged→bait recovers AccuRig's transform in closed form.
|
||||
|
||||
**This is why the bait is in this folder.** Delete it and `01_graft.py` has nothing to fit
|
||||
against and cannot run at all.
|
||||
|
||||
## Three facts that bite
|
||||
|
||||
- **`LENA_CLEAR_SPLIT_NORMALS=1` is load-bearing.** A raw Tripo delivery carries custom split
|
||||
normals *and* a `sharp_edge` layer; left in place they are the "v8 specks"/faceting defect.
|
||||
The converter's default is OFF because its default input is the v02 head-transplant body,
|
||||
which needs them kept. Both layers must go together — clearing only the normals lets Blender
|
||||
re-detect sharpness by angle and the facets come straight back.
|
||||
- **She is single-sided**, unlike `lena_base_v01`, whose README calls `doubleSided=true`
|
||||
load-bearing. That is not a regression: the inward-wound patches that forced it were an
|
||||
artifact of the nude lane's re-atlas/membrane work, and this mesh never went through any of
|
||||
it. Verified against the pristine delivery: `doubleSided` unset on the original.
|
||||
- **AccuRig tidied one armpit.** Rigged-vs-bait residual is p50 **0.0009 mm** — bit-exact for
|
||||
the bulk — with 1.01% of verts over 1 mm, all one cluster at height fraction 0.69–0.75 around
|
||||
x=−0.23. The hands, which is where a bad proximity transfer actually hurts, came back at mean
|
||||
**0.020 mm** / max 1.45 mm. The graft's carrier gate measures the *shape* of that distribution
|
||||
for exactly this reason; an earlier max-only threshold rejected a graft that is fine.
|
||||
|
||||
## Where it went
|
||||
|
||||
Converted by `ariki-game/tools/make_lena_fullres_quatskin.py` and imported as:
|
||||
|
||||
- `Ariki_Female_QuatSkin.glb` — sha256 `b6ca465ae3623e9fb3cc969f521d7cb89ad54b74271bb743fc594374864d56e6`.
|
||||
The body she replaced is kept as `Ariki_Female_QuatSkin_PRESWAP_2026-08-13.glb.bak`.
|
||||
- `Ariki_Female_QuatSkin_LowPoly_40.glb` — LOD1, sha256
|
||||
`e770e4dce506492a28d0dffcaf609b6adbab35a7b63681923bea9028970ce47d`, rebuilt from her by
|
||||
`tools/make_lena_lowpoly.py -- 0.4`. Predecessor kept as
|
||||
`Ariki_Female_QuatSkin_LowPoly_40_PRESWAP_2026-08-13.glb.bak`.
|
||||
|
||||
Textures are packed in the GLB; nothing ships loose.
|
||||
|
||||
**Known decision:** no `Ariki_Female_QuatSkin_LeafBikini.glb` companion file. `lena_base_v01`
|
||||
shipped one (`_Nude.glb`) byte-identical to the canonical body, because that is simply where
|
||||
its converter wrote. Repeating it here would have put a second 79 MB full-res body into LFS and
|
||||
made Godot import a duplicate 1 M-vertex mesh. The converter was pointed at the canonical name
|
||||
via the new `LENA_OUT_GLB` override instead, and this folder is the repo-side master.
|
||||
|
||||
## Rebuilding / continuing
|
||||
|
||||
Recipe is `characters/work/lena_leafbikini/01_graft.py`. It needs three inputs, all preserved:
|
||||
the pristine original, the AccuRig return in `rig/`, and the bait beside it.
|
||||
|
||||
```
|
||||
blender --background --factory-startup --python characters/work/lena_leafbikini/01_graft.py -- \
|
||||
characters/originals/female/female_lena_leafbikini_tripo.glb \
|
||||
<rigged.fbx> <bait.fbx> <out.blend> <out.glb>
|
||||
|
||||
Q_CACHE=<qcache.json> LENA_SRC_BLEND=<out.blend> LENA_CLEAR_SPLIT_NORMALS=1 \
|
||||
LENA_OUT_GLB=<ship.glb> blender --background --factory-startup \
|
||||
--python ariki-game/tools/make_lena_fullres_quatskin.py
|
||||
```
|
||||
BIN
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 315 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 322 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 308 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 304 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 721 KiB |
BIN
Binary file not shown.
+429
@@ -0,0 +1,429 @@
|
||||
{
|
||||
"lena_leafbikini_tripo_rigged": {
|
||||
"Version": "1.10.1822.1",
|
||||
"Scene": {
|
||||
"Name": true,
|
||||
"SupportShaderSelect": true
|
||||
},
|
||||
"Export Directory": "C:/Users/Jeremy/tinqs/animation/characters/rig-work",
|
||||
"Object": {
|
||||
"lena_leafbikini_tripo_rigged": {
|
||||
"Generation": "AccuRig",
|
||||
"Physics": {
|
||||
"Collision Shapes": {
|
||||
"RL_BoneRoot": {},
|
||||
"CC_Base_Hip": {},
|
||||
"CC_Base_Pelvis": {},
|
||||
"CC_Base_L_Thigh": {},
|
||||
"CC_Base_L_Calf": {},
|
||||
"CC_Base_L_Foot": {},
|
||||
"CC_Base_L_ToeBaseShareBone": {},
|
||||
"CC_Base_L_ToeBase": {},
|
||||
"CC_Base_L_PinkyToe1": {},
|
||||
"CC_Base_L_RingToe1": {},
|
||||
"CC_Base_L_MidToe1": {},
|
||||
"CC_Base_L_IndexToe1": {},
|
||||
"CC_Base_L_BigToe1": {},
|
||||
"CC_Base_L_CalfTwist01": {},
|
||||
"CC_Base_L_CalfTwist02": {},
|
||||
"CC_Base_L_KneeShareBone": {},
|
||||
"CC_Base_L_ThighTwist01": {},
|
||||
"CC_Base_L_ThighTwist02": {},
|
||||
"CC_Base_R_Thigh": {},
|
||||
"CC_Base_R_ThighTwist01": {},
|
||||
"CC_Base_R_ThighTwist02": {},
|
||||
"CC_Base_R_Calf": {},
|
||||
"CC_Base_R_Foot": {},
|
||||
"CC_Base_R_ToeBase": {},
|
||||
"CC_Base_R_PinkyToe1": {},
|
||||
"CC_Base_R_BigToe1": {},
|
||||
"CC_Base_R_IndexToe1": {},
|
||||
"CC_Base_R_MidToe1": {},
|
||||
"CC_Base_R_RingToe1": {},
|
||||
"CC_Base_R_ToeBaseShareBone": {},
|
||||
"CC_Base_R_KneeShareBone": {},
|
||||
"CC_Base_R_CalfTwist01": {},
|
||||
"CC_Base_R_CalfTwist02": {},
|
||||
"CC_Base_Waist": {},
|
||||
"CC_Base_Spine01": {},
|
||||
"CC_Base_Spine02": {},
|
||||
"CC_Base_NeckTwist01": {},
|
||||
"CC_Base_NeckTwist02": {},
|
||||
"CC_Base_Head": {},
|
||||
"CC_Base_FacialBone": {},
|
||||
"CC_Base_JawRoot": {},
|
||||
"CC_Base_Tongue01": {},
|
||||
"CC_Base_Tongue02": {},
|
||||
"CC_Base_Tongue03": {},
|
||||
"CC_Base_Teeth02": {},
|
||||
"CC_Base_R_Eye": {},
|
||||
"CC_Base_L_Eye": {},
|
||||
"CC_Base_UpperJaw": {},
|
||||
"CC_Base_Teeth01": {},
|
||||
"CC_Base_L_Clavicle": {},
|
||||
"CC_Base_L_Upperarm": {},
|
||||
"CC_Base_L_Forearm": {},
|
||||
"CC_Base_L_ForearmTwist01": {},
|
||||
"CC_Base_L_ForearmTwist02": {},
|
||||
"CC_Base_L_ElbowShareBone": {},
|
||||
"CC_Base_L_Hand": {},
|
||||
"CC_Base_L_Mid1": {},
|
||||
"CC_Base_L_Mid2": {},
|
||||
"CC_Base_L_Mid3": {},
|
||||
"CC_Base_L_Index1": {},
|
||||
"CC_Base_L_Index2": {},
|
||||
"CC_Base_L_Index3": {},
|
||||
"CC_Base_L_Ring1": {},
|
||||
"CC_Base_L_Ring2": {},
|
||||
"CC_Base_L_Ring3": {},
|
||||
"CC_Base_L_Pinky1": {},
|
||||
"CC_Base_L_Pinky2": {},
|
||||
"CC_Base_L_Pinky3": {},
|
||||
"CC_Base_L_Thumb1": {},
|
||||
"CC_Base_L_Thumb2": {},
|
||||
"CC_Base_L_Thumb3": {},
|
||||
"CC_Base_L_UpperarmTwist01": {},
|
||||
"CC_Base_L_UpperarmTwist02": {},
|
||||
"CC_Base_R_Clavicle": {},
|
||||
"CC_Base_R_Upperarm": {},
|
||||
"CC_Base_R_UpperarmTwist01": {},
|
||||
"CC_Base_R_UpperarmTwist02": {},
|
||||
"CC_Base_R_Forearm": {},
|
||||
"CC_Base_R_ForearmTwist01": {},
|
||||
"CC_Base_R_ForearmTwist02": {},
|
||||
"CC_Base_R_ElbowShareBone": {},
|
||||
"CC_Base_R_Hand": {},
|
||||
"CC_Base_R_Mid1": {},
|
||||
"CC_Base_R_Mid2": {},
|
||||
"CC_Base_R_Mid3": {},
|
||||
"CC_Base_R_Ring1": {},
|
||||
"CC_Base_R_Ring2": {},
|
||||
"CC_Base_R_Ring3": {},
|
||||
"CC_Base_R_Thumb1": {},
|
||||
"CC_Base_R_Thumb2": {},
|
||||
"CC_Base_R_Thumb3": {},
|
||||
"CC_Base_R_Index1": {},
|
||||
"CC_Base_R_Index2": {},
|
||||
"CC_Base_R_Index3": {},
|
||||
"CC_Base_R_Pinky1": {},
|
||||
"CC_Base_R_Pinky2": {},
|
||||
"CC_Base_R_Pinky3": {},
|
||||
"CC_Base_R_RibsTwist": {},
|
||||
"CC_Base_R_Breast": {},
|
||||
"CC_Base_L_RibsTwist": {},
|
||||
"CC_Base_L_Breast": {},
|
||||
"meshes_0_": {}
|
||||
}
|
||||
},
|
||||
"ExpressionSet": "4",
|
||||
"Expression": {
|
||||
"V_None": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Open": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Explosive": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Dental_Lip": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tight_O": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tight": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Wide": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Affricate": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Lip_Open": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_up": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_Raise": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_Out": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_Narrow": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_Lower": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_Curl_U": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_Curl_D": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Brow_Raise_Inner_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Brow_Raise_Inner_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Brow_Raise_Outer_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Brow_Raise_Outer_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Brow_Drop_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Brow_Drop_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Nose_Sneer_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Nose_Sneer_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Cheek_Raise_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Cheek_Raise_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Cheek_Puff_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Cheek_Puff_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Turn_Up": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Turn_Down": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Turn_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Turn_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Tilt_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Tilt_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Forward": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Backward": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Jaw_Open": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Jaw_Forward": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Jaw_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Jaw_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Out": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Up": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Down": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Tip_Up": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Tip_Down": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Narrow": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Wide": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Roll": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Bulge_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Bulge_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_Blink_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_Blink_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_Squint_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_Squint_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_Wide_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_Wide_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_L_Look_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_R_Look_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_L_Look_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_R_Look_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_L_Look_Up": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_R_Look_Up": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_L_Look_Down": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_R_Look_Down": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Smile_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Smile_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Frown_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Frown_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Stretch_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Stretch_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Dimple_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Dimple_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Press_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Press_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Pucker": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Funnel": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Roll_In_Upper": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Roll_In_Lower": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Shrug_Upper": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Shrug_Lower": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Up_Upper_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Up_Upper_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Down_Lower_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Down_Lower_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Close": {
|
||||
"Bones": {}
|
||||
}
|
||||
},
|
||||
"Constraint": {},
|
||||
"Meshes": {
|
||||
"meshes_0_": {
|
||||
"SubD Level": 0,
|
||||
"Materials": {
|
||||
"tripo_material_a8fc2a79_1dd1_4434_92b9_731655894339": {
|
||||
"Material Type": "Pbr",
|
||||
"MultiUV Index": 0,
|
||||
"Two Side": true,
|
||||
"Diffuse Color": [
|
||||
204.0,
|
||||
204.0,
|
||||
204.0
|
||||
],
|
||||
"Ambient Color": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"Specular Color": [
|
||||
204.0,
|
||||
204.0,
|
||||
204.0
|
||||
],
|
||||
"Opacity": 1.0,
|
||||
"Self Illumination": 0.0,
|
||||
"Textures": {},
|
||||
"Resource Textures": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
Binary file not shown.
Reference in New Issue
Block a user