-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Warning
This project is in alpha. The public API, rendering behavior,
package layout and documentation may still change in any 0.x
release; treat every minor release as potentially breaking. Do not
use it in production yet.
Unofficial, community-built extension for skinview3d
(GitHub | npm)
that renders
ETF (Entity Texture Features)
player skin features on the 3D player model. Not affiliated with or
endorsed by the ETF or skinview3d projects.
- transparency on the base skin layer;
- emissive pixels;
- blinking eyes;
- nose (villager and textured);
- enchanted pixel overlay;
- jacket/dress extension.
The decoder (decodeSkin()) reads every ETF player skin feature -
the jacket and enchanted data included - and is complete and
unit-tested; the renderer draws all six families on a live viewer.
See Options for every knob and
Getting Started for the integration guide.
npm install skinview3d-etfskinview3d and three
(GitHub | npm)
are peer dependencies, so install the versions the viewer already
uses.
import { SkinViewer } from "skinview3d";
import { attachETFSkinFeatures } from "skinview3d-etf";
const viewer = new SkinViewer({ canvas, width: 400, height: 400 });
await viewer.loadSkin(skinUrl);
const controller = attachETFSkinFeatures(viewer, {
features: { transparency: true, emissive: true, nose: true },
blink: { periodMs: [4000, 10000], closedMs: 200 },
onWarning: (message) => console.warn(message),
});
// Required after every viewer.loadSkin() call:
controller.refresh();
// Restores every artifact and leaves the viewer exactly as it was:
controller.detach();- Getting Started - install, attach, lifecycle and the standalone decoder;
- Options - the option groups, defaults, runtime setters and the migration notes;
- FAQ - common questions and answers.
- Live demo - a Vite page with several sample skins and a PNG upload;
- npm package;
- Repository;
- Issues
- Wiki - the latest-state mirror of this documentation.
The build targets ES2022 and the runtime expects WebGL 2 (matching
the three release's own browser target); the current versions of
Chrome, Edge, Opera, Firefox and Safari all qualify.