roavatar-renderer 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/index.d.ts +159 -10
- package/dist/index.js +14664 -932
- package/package.json +8 -1
package/README.md
CHANGED
|
@@ -8,6 +8,10 @@ Also available on npm: https://www.npmjs.com/package/roavatar-renderer
|
|
|
8
8
|
IMPORTANT: Assets are NOT included in the npm module or this repository, you have to get them from the main RoAvatar repository
|
|
9
9
|
|
|
10
10
|
Basic (not really) example on how to load an avatar, that is also untested:
|
|
11
|
+
```html
|
|
12
|
+
<!--I know this is kind of terrible but... it has to be included-->
|
|
13
|
+
<script src="/draco_decoder.js"></script>
|
|
14
|
+
```
|
|
11
15
|
```ts
|
|
12
16
|
//setup instance wrappers and renderer
|
|
13
17
|
RegisterWrappers()
|
package/dist/index.d.ts
CHANGED
|
@@ -57,6 +57,8 @@ export declare const AccessoryType: {
|
|
|
57
57
|
|
|
58
58
|
export declare const ActualBundleTypes: string[];
|
|
59
59
|
|
|
60
|
+
export declare function add(v0: Vec3, v1: Vec3): Vec3;
|
|
61
|
+
|
|
60
62
|
export declare const AllAccessorySorts: ItemSort[];
|
|
61
63
|
|
|
62
64
|
export declare const AllAnimations: AnimationProp[];
|
|
@@ -429,6 +431,8 @@ export declare const AvatarType: {
|
|
|
429
431
|
[K in AvatarType]: AvatarType;
|
|
430
432
|
};
|
|
431
433
|
|
|
434
|
+
export declare function barycentric(p: Vec3, triangle: Triangle): Vec3;
|
|
435
|
+
|
|
432
436
|
export declare function base64ToArrayBuffer(base64: string): ArrayBuffer;
|
|
433
437
|
|
|
434
438
|
declare class BaseKeyframe {
|
|
@@ -583,6 +587,8 @@ export declare interface BundleDetails_Result {
|
|
|
583
587
|
|
|
584
588
|
export declare const BundleTypes: string[];
|
|
585
589
|
|
|
590
|
+
export declare function calculateMagnitude3D(x: number, y: number, z: number): number;
|
|
591
|
+
|
|
586
592
|
export declare function calculateMotor6Doffset(motor: Instance, includeTransform?: boolean): CFrame;
|
|
587
593
|
|
|
588
594
|
export declare const CatalogBundleTypes: string[];
|
|
@@ -609,10 +615,14 @@ export declare class CFrame {
|
|
|
609
615
|
isSame(other: CFrame): boolean;
|
|
610
616
|
}
|
|
611
617
|
|
|
618
|
+
export declare function clamp(v0: Vec3, lower: Vec3, higher: Vec3): Vec3;
|
|
619
|
+
|
|
612
620
|
export declare function clonePrimitiveArray<T>(arr: T[]): T[];
|
|
613
621
|
|
|
614
622
|
export declare function cloneSearch_Payload(data: Search_Payload): Search_Payload;
|
|
615
623
|
|
|
624
|
+
export declare function closestPointTriangle(p: Vec3, triangle: Triangle): Vec3;
|
|
625
|
+
|
|
616
626
|
declare type ClothingDiffType = "Shirt" | "Pants" | "GraphicTShirt";
|
|
617
627
|
|
|
618
628
|
export declare class Color3 {
|
|
@@ -680,6 +690,18 @@ declare class COREMESH {
|
|
|
680
690
|
getTouchingVerts(index: number): number[];
|
|
681
691
|
}
|
|
682
692
|
|
|
693
|
+
export declare function createMeshChunks(mesh: FileMesh, widthSplit: number, heightSplit: number, depthSplit: number): MeshChunk[];
|
|
694
|
+
|
|
695
|
+
/**THIS FUNCTION IS SO EXPENSIVE IT NEEDS TO BE ASYNC SO JS DOESNT CRASH, USE CHUNKED VERSION INSTEAD
|
|
696
|
+
*/
|
|
697
|
+
export declare function createWeightsForMesh(mesh: FileMesh, ref_mesh: FileMesh): Promise<number[][]>;
|
|
698
|
+
|
|
699
|
+
export declare function createWeightsForMeshChunked(mesh: FileMesh, ref_mesh: FileMesh): WeightChunk[];
|
|
700
|
+
|
|
701
|
+
export declare function createWeightsForMeshChunkedOLD(mesh: FileMesh, ref_mesh: FileMesh): WeightChunk[];
|
|
702
|
+
|
|
703
|
+
export declare function cross(a: Vec3, b: Vec3): Vec3;
|
|
704
|
+
|
|
683
705
|
export declare const DataType: {
|
|
684
706
|
String: number;
|
|
685
707
|
Bool: number;
|
|
@@ -736,6 +758,8 @@ export declare const defaultShirtAssetIds: number[];
|
|
|
736
758
|
|
|
737
759
|
export declare const defaultShirtTemplateAssetIds: number[];
|
|
738
760
|
|
|
761
|
+
export declare function deformReferenceToBaseBodyParts(reference: FileMesh, targetCages: FileMesh[], targetSizes: Vector3[], targetCFrames: CFrame[]): number[];
|
|
762
|
+
|
|
739
763
|
export declare function deg(radians: number): number;
|
|
740
764
|
|
|
741
765
|
declare class DisposableDesc {
|
|
@@ -745,6 +769,12 @@ declare class DisposableDesc {
|
|
|
745
769
|
dispose(_renderer: THREE.WebGLRenderer, _scene: THREE.Scene): void;
|
|
746
770
|
}
|
|
747
771
|
|
|
772
|
+
export declare function distance(v0: Vec3, v1: Vec3): number;
|
|
773
|
+
|
|
774
|
+
export declare function divide(v0: Vec3, v1: Vec3): Vec3;
|
|
775
|
+
|
|
776
|
+
export declare function dot(v0: Vec3, v1: Vec3): number;
|
|
777
|
+
|
|
748
778
|
export declare function download(filename: string, text: string): void;
|
|
749
779
|
|
|
750
780
|
export declare const EmitterGroupDescClassTypes: string[];
|
|
@@ -794,7 +824,7 @@ declare class FACS {
|
|
|
794
824
|
clone(): FACS;
|
|
795
825
|
}
|
|
796
826
|
|
|
797
|
-
declare class FileMesh {
|
|
827
|
+
export declare class FileMesh {
|
|
798
828
|
version: string;
|
|
799
829
|
facsDataFormat: number;
|
|
800
830
|
sizeOfFacsData: number;
|
|
@@ -848,13 +878,13 @@ declare class FileMeshFace {
|
|
|
848
878
|
clone(): FileMeshFace;
|
|
849
879
|
}
|
|
850
880
|
|
|
851
|
-
declare class FileMeshSkinning {
|
|
881
|
+
export declare class FileMeshSkinning {
|
|
852
882
|
subsetIndices: Vec4;
|
|
853
883
|
boneWeights: Vec4;
|
|
854
884
|
clone(): FileMeshSkinning;
|
|
855
885
|
}
|
|
856
886
|
|
|
857
|
-
declare class FileMeshSubset {
|
|
887
|
+
export declare class FileMeshSubset {
|
|
858
888
|
facesBegin: number;
|
|
859
889
|
facesLength: number;
|
|
860
890
|
vertsBegin: number;
|
|
@@ -864,7 +894,7 @@ declare class FileMeshSubset {
|
|
|
864
894
|
clone(): FileMeshSubset;
|
|
865
895
|
}
|
|
866
896
|
|
|
867
|
-
declare class FileMeshVertex {
|
|
897
|
+
export declare class FileMeshVertex {
|
|
868
898
|
position: Vec3;
|
|
869
899
|
normal: Vec3;
|
|
870
900
|
uv: Vec2;
|
|
@@ -916,12 +946,22 @@ declare class FloatCurveKey {
|
|
|
916
946
|
rightTangent?: number;
|
|
917
947
|
}
|
|
918
948
|
|
|
949
|
+
export declare function floor(v0: Vec3): Vec3;
|
|
950
|
+
|
|
919
951
|
export declare const FullBodyColors: string[];
|
|
920
952
|
|
|
953
|
+
export declare function gaussian_rbf(v0: Vec3, v1: Vec3, sigma?: number): number;
|
|
954
|
+
|
|
921
955
|
export declare function generateUUIDv4(): string;
|
|
922
956
|
|
|
923
957
|
export declare function GetAttachedPart(accessory: Instance, rig: Instance): Instance | undefined;
|
|
924
958
|
|
|
959
|
+
export declare function getDistVertArray(ref: FileMesh, dist: FileMesh): (FileMeshVertex | undefined)[];
|
|
960
|
+
|
|
961
|
+
export declare function getOffsetArray(inner: FileMesh, outer: FileMesh): ([Vec3, THREE.Quaternion, number] | undefined)[];
|
|
962
|
+
|
|
963
|
+
export declare function getOffsetMap(inner: FileMesh, outer: FileMesh): Map<number, Vec3>;
|
|
964
|
+
|
|
925
965
|
export declare function getOriginalSize(part: Instance): Vector3;
|
|
926
966
|
|
|
927
967
|
export declare function getRandomBetweenInclusive(min: number, max: number): number;
|
|
@@ -955,6 +995,12 @@ export declare interface GetTopics_Result {
|
|
|
955
995
|
}[];
|
|
956
996
|
}
|
|
957
997
|
|
|
998
|
+
export declare function getUVtoVertMap(mesh: FileMesh): Map<number, FileMeshVertex[]>;
|
|
999
|
+
|
|
1000
|
+
export declare function hashVec2(x: number, y: number): number;
|
|
1001
|
+
|
|
1002
|
+
export declare function hashVec3(x: number, y: number, z: number, distance: number): number;
|
|
1003
|
+
|
|
958
1004
|
export declare function hasSameVal(instance0: Instance, instance1: Instance, propertyName: string): boolean;
|
|
959
1005
|
|
|
960
1006
|
export declare function hasSameValFloat(instance0: Instance, instance1: Instance, propertyName: string): boolean;
|
|
@@ -1042,6 +1088,10 @@ export declare const HumanoidRigType: {
|
|
|
1042
1088
|
|
|
1043
1089
|
export declare function imageUrlToDataUrl(imageUrl: string): Promise<string>;
|
|
1044
1090
|
|
|
1091
|
+
export declare function inheritSkeleton(to: FileMesh, from: FileMesh): void;
|
|
1092
|
+
|
|
1093
|
+
export declare function inheritUV(to: FileMesh, from: FileMesh): void;
|
|
1094
|
+
|
|
1045
1095
|
declare class INST {
|
|
1046
1096
|
classID: number;
|
|
1047
1097
|
className: string;
|
|
@@ -1188,6 +1238,23 @@ export declare class ItemSort {
|
|
|
1188
1238
|
|
|
1189
1239
|
declare type ItemType = "Asset" | "Bundle" | "Outfit" | "Look" | "None";
|
|
1190
1240
|
|
|
1241
|
+
declare class KDNode {
|
|
1242
|
+
point: Vec3;
|
|
1243
|
+
index: number;
|
|
1244
|
+
axis: number;
|
|
1245
|
+
left: KDNode | null;
|
|
1246
|
+
right: KDNode | null;
|
|
1247
|
+
constructor(point: Vec3, index: number, axis: number);
|
|
1248
|
+
}
|
|
1249
|
+
|
|
1250
|
+
export declare function layerClothing(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh): Promise<void>;
|
|
1251
|
+
|
|
1252
|
+
export declare function layerClothingChunked(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
|
|
1253
|
+
|
|
1254
|
+
export declare function layerClothingChunkedNormals(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
|
|
1255
|
+
|
|
1256
|
+
export declare function layerClothingChunkedNormals2(mesh: FileMesh, ref_mesh: FileMesh, dist_mesh: FileMesh, cacheId?: string): void;
|
|
1257
|
+
|
|
1191
1258
|
export declare const LayeredAssetTypes: string[];
|
|
1192
1259
|
|
|
1193
1260
|
export declare const LayeredClothingAssetOrder: {
|
|
@@ -1321,6 +1388,8 @@ export declare interface Look_Result {
|
|
|
1321
1388
|
|
|
1322
1389
|
export declare const magic = "<roblox!";
|
|
1323
1390
|
|
|
1391
|
+
export declare function magnitude(v: Vec3): number;
|
|
1392
|
+
|
|
1324
1393
|
export declare const MainToSubNames: {
|
|
1325
1394
|
[K in string]: string[];
|
|
1326
1395
|
};
|
|
@@ -1367,9 +1436,9 @@ export declare interface MarketplaceWidgets_Result {
|
|
|
1367
1436
|
configuration: unknown;
|
|
1368
1437
|
}
|
|
1369
1438
|
|
|
1370
|
-
declare type Mat3x3 = [number, number, number, number, number, number, number, number, number];
|
|
1439
|
+
export declare type Mat3x3 = [number, number, number, number, number, number, number, number, number];
|
|
1371
1440
|
|
|
1372
|
-
declare type Mat4x4 = [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number];
|
|
1441
|
+
export declare type Mat4x4 = [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number];
|
|
1373
1442
|
|
|
1374
1443
|
export declare function mathRandom(min: number, max: number): number;
|
|
1375
1444
|
|
|
@@ -1382,6 +1451,13 @@ export declare const MaxPerAsset: {
|
|
|
1382
1451
|
[K in string]: number;
|
|
1383
1452
|
};
|
|
1384
1453
|
|
|
1454
|
+
export declare function mergeTargetWithReference(reference: FileMesh, target: FileMesh, targetSize: Vector3, targetCFrame: CFrame): number[];
|
|
1455
|
+
|
|
1456
|
+
export declare type MeshChunk = {
|
|
1457
|
+
pos: Vec3;
|
|
1458
|
+
indices: number[];
|
|
1459
|
+
};
|
|
1460
|
+
|
|
1385
1461
|
export declare const MeshType: {
|
|
1386
1462
|
Brick: number;
|
|
1387
1463
|
Cylinder: number;
|
|
@@ -1394,6 +1470,8 @@ export declare const MeshType: {
|
|
|
1394
1470
|
|
|
1395
1471
|
export declare const minimumDeltaEBodyColorDifference = 11.4;
|
|
1396
1472
|
|
|
1473
|
+
export declare function minus(v0: Vec3, v1: Vec3): Vec3;
|
|
1474
|
+
|
|
1397
1475
|
export declare class ModelWrapper extends InstanceWrapper {
|
|
1398
1476
|
static className: string;
|
|
1399
1477
|
static requiredProperties: string[];
|
|
@@ -1404,6 +1482,8 @@ export declare class ModelWrapper extends InstanceWrapper {
|
|
|
1404
1482
|
|
|
1405
1483
|
export declare function mount(container: HTMLDivElement): void;
|
|
1406
1484
|
|
|
1485
|
+
export declare function multiply(v0: Vec3, v1: Vec3): Vec3;
|
|
1486
|
+
|
|
1407
1487
|
export declare interface NavigationMenuItems {
|
|
1408
1488
|
categories: {
|
|
1409
1489
|
category: string;
|
|
@@ -1489,6 +1569,8 @@ export declare const NormalId: {
|
|
|
1489
1569
|
Front: number;
|
|
1490
1570
|
};
|
|
1491
1571
|
|
|
1572
|
+
export declare function normalize(v: Vec3): Vec3;
|
|
1573
|
+
|
|
1492
1574
|
export declare class NumberRange {
|
|
1493
1575
|
Min: number;
|
|
1494
1576
|
Max: number;
|
|
@@ -1516,6 +1598,12 @@ export declare class NumberSequenceKeypoint {
|
|
|
1516
1598
|
|
|
1517
1599
|
export declare const ObjectDescClassTypes: string[];
|
|
1518
1600
|
|
|
1601
|
+
export declare function offsetMesh(mesh: FileMesh, cframe: CFrame): void;
|
|
1602
|
+
|
|
1603
|
+
export declare function offsetMeshWithRotation(mesh: FileMesh, cframe: CFrame): void;
|
|
1604
|
+
|
|
1605
|
+
export declare function offsetRefMeshLikeInnerAndOuter(ref_mesh: FileMesh, inner: FileMesh, outer: FileMesh): void;
|
|
1606
|
+
|
|
1519
1607
|
export declare class Outfit {
|
|
1520
1608
|
scale: Scale;
|
|
1521
1609
|
bodyColors: BodyColors | BodyColor3s;
|
|
@@ -1627,6 +1715,12 @@ declare class PartKeyframeGroup extends BaseKeyframeGroup {
|
|
|
1627
1715
|
getLowerKeyframe(time: number): PartKeyframe | null;
|
|
1628
1716
|
}
|
|
1629
1717
|
|
|
1718
|
+
declare type Patch = {
|
|
1719
|
+
center: Vec3;
|
|
1720
|
+
neighborIndices: number[];
|
|
1721
|
+
weights?: Float32Array;
|
|
1722
|
+
};
|
|
1723
|
+
|
|
1630
1724
|
declare class PRNT {
|
|
1631
1725
|
instanceCount: number;
|
|
1632
1726
|
childReferents: number[];
|
|
@@ -1698,6 +1792,44 @@ export declare class Ray {
|
|
|
1698
1792
|
clone(): Ray;
|
|
1699
1793
|
}
|
|
1700
1794
|
|
|
1795
|
+
export declare function ray_intersects_triangle(ray_origin: Vec3, ray_vector: Vec3, triangle: Triangle): Vec3 | null;
|
|
1796
|
+
|
|
1797
|
+
/**
|
|
1798
|
+
* This is a naive (think thats what its called) implementation of the RBF deformer, it is extremely slow
|
|
1799
|
+
* Use RBFDeformerPatch instead
|
|
1800
|
+
*/
|
|
1801
|
+
export declare class RBFDeformer {
|
|
1802
|
+
refVerts: FileMeshVertex[];
|
|
1803
|
+
distVerts: FileMeshVertex[];
|
|
1804
|
+
weights: Vec3[] | undefined;
|
|
1805
|
+
constructor(refMesh: FileMesh, distMesh: FileMesh);
|
|
1806
|
+
solve(): void;
|
|
1807
|
+
deform(vec: Vec3): Vec3;
|
|
1808
|
+
deformMesh(mesh: FileMesh): void;
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1811
|
+
export declare class RBFDeformerPatch {
|
|
1812
|
+
mesh: FileMesh;
|
|
1813
|
+
refVerts: FileMeshVertex[];
|
|
1814
|
+
distVerts: FileMeshVertex[];
|
|
1815
|
+
importantIndices: number[];
|
|
1816
|
+
controlKD: KDNode | null;
|
|
1817
|
+
patchKD: KDNode | null;
|
|
1818
|
+
patches: Patch[];
|
|
1819
|
+
patchCenters: Vec3[];
|
|
1820
|
+
patchCenterIndices: number[];
|
|
1821
|
+
nearestPatch: Uint16Array;
|
|
1822
|
+
K: number;
|
|
1823
|
+
patchCount: number;
|
|
1824
|
+
epsilon: number;
|
|
1825
|
+
affectBones: boolean;
|
|
1826
|
+
id: number;
|
|
1827
|
+
constructor(refMesh: FileMesh, distMesh: FileMesh, mesh: FileMesh, ignoredIndices?: number[], patchCount?: number, detailsCount?: 48, importantsCount?: 32);
|
|
1828
|
+
solveAsync(): Promise<void>;
|
|
1829
|
+
deform(i: number): Vec3;
|
|
1830
|
+
deformMesh(): void;
|
|
1831
|
+
}
|
|
1832
|
+
|
|
1701
1833
|
export declare class RBX {
|
|
1702
1834
|
classCount: number;
|
|
1703
1835
|
instanceCount: number;
|
|
@@ -1926,6 +2058,8 @@ declare type ScaleJson = {
|
|
|
1926
2058
|
bodyType?: number;
|
|
1927
2059
|
};
|
|
1928
2060
|
|
|
2061
|
+
export declare function scaleMesh(mesh: FileMesh, scale: Vector3): void;
|
|
2062
|
+
|
|
1929
2063
|
export declare type ScaleName = "height" | "width" | "head" | "depth" | "proportion" | "bodyType";
|
|
1930
2064
|
|
|
1931
2065
|
export declare class ScriptWrapper extends InstanceWrapper {
|
|
@@ -2096,11 +2230,15 @@ export declare const ToRemoveBeforeBundleType: {
|
|
|
2096
2230
|
Character: string[];
|
|
2097
2231
|
};
|
|
2098
2232
|
|
|
2233
|
+
export declare function transferSkeleton(to: FileMesh, from: FileMesh): void;
|
|
2234
|
+
|
|
2099
2235
|
export declare function traverseRigCFrame(instance: Instance): CFrame;
|
|
2100
2236
|
|
|
2101
2237
|
export declare function traverseRigInstance(instance: Instance): Instance[];
|
|
2102
2238
|
|
|
2103
|
-
declare type Triangle = [Vec3, Vec3, Vec3];
|
|
2239
|
+
export declare type Triangle = [Vec3, Vec3, Vec3];
|
|
2240
|
+
|
|
2241
|
+
export declare function triangleNormal(triangle: Triangle): Vec3;
|
|
2104
2242
|
|
|
2105
2243
|
declare type TwoPoseCorrective = Vec2;
|
|
2106
2244
|
|
|
@@ -2156,11 +2294,11 @@ declare type ValidationIssue = {
|
|
|
2156
2294
|
|
|
2157
2295
|
declare type ValidationIssueType = "AccessoryLimit" | "LayeredLimit" | "OneOfTypeLimit" | "DuplicateId" | "NotWearable" | "MissingLayeredMeta" | "InvalidAsset";
|
|
2158
2296
|
|
|
2159
|
-
declare type Vec2 = [number, number];
|
|
2297
|
+
export declare type Vec2 = [number, number];
|
|
2160
2298
|
|
|
2161
|
-
declare type Vec3 = [number, number, number];
|
|
2299
|
+
export declare type Vec3 = [number, number, number];
|
|
2162
2300
|
|
|
2163
|
-
declare type Vec4 = [number, number, number, number];
|
|
2301
|
+
export declare type Vec4 = [number, number, number, number];
|
|
2164
2302
|
|
|
2165
2303
|
export declare class Vector2 {
|
|
2166
2304
|
X: number;
|
|
@@ -2202,10 +2340,21 @@ declare type Vecxyz = {
|
|
|
2202
2340
|
|
|
2203
2341
|
export declare function versionToNumber(version: string): number;
|
|
2204
2342
|
|
|
2343
|
+
export declare function vertPosToChunkPos(pos: Vec3, meshSize: Vec3, widthSplit: number, heightSplit: number, depthSplit: number): Vec3;
|
|
2344
|
+
|
|
2205
2345
|
export declare function Wait(time: number): Promise<unknown>;
|
|
2206
2346
|
|
|
2207
2347
|
export declare const WearableAssetTypes: string[];
|
|
2208
2348
|
|
|
2349
|
+
export declare type WeightChunk = {
|
|
2350
|
+
meshChunk: MeshChunk;
|
|
2351
|
+
weights: number[];
|
|
2352
|
+
};
|
|
2353
|
+
|
|
2354
|
+
export declare type WeightChunk3 = WeightChunk & {
|
|
2355
|
+
weights: Vec3[];
|
|
2356
|
+
};
|
|
2357
|
+
|
|
2209
2358
|
export declare const WrapLayerAutoSkin: {
|
|
2210
2359
|
Disabled: number;
|
|
2211
2360
|
EnabledPreserve: number;
|