vrm-mtoon-outline

Adjust VRM MToon outline thickness in three.js workflows.

2.4k|275|Updated Jun 29, 2025
One-click install
npx skills add https://github.com/Project-N-E-K-O/N.E.K.O --skill vrm-mtoon-outline
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vrm-mtoon-outline
Source: https://github.com/Project-N-E-K-O/N.E.K.O/tree/main/.agent/skills/vrm-mtoon-outline
Command: npx skills add https://github.com/Project-N-E-K-O/N.E.K.O --skill vrm-mtoon-outline

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Outlines on VRM models using MToon can vary in thickness when models are scaled or when the camera zoom changes, leading to visually inconsistent renders.

Core Features & Use Cases

  • Switch between worldCoordinates and screenCoordinates outline width modes to control how outlines scale with the model or with the screen.
  • Programmatically inspect and adjust materials to ensure outlines are enabled and render correctly across a full scene traversal.
  • Use Case: When importing a batch of VRM assets, quickly normalize outline thickness so all models appear coherent in a scene or a gallery.

Quick Start

Load your VRM scene, then run the adjustOutlineThickness function to switch to screen coordinates and set a suitable outlineWidthFactor for consistent previews.

Frequently Asked Questions about vrm-mtoon-outline

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why do VRM MToon outlines change thickness when scaling or zooming the camera in three.js?

To fix VRM MToon outline thickness inconsistencies in three.js, switch the outlineWidthMode to screenCoordinates and adjust the outlineWidthFactor. This ensures outlines render at a consistent thickness regardless of model scale or camera zoom changes.

How do I keep VRM MToon outline thickness consistent across multiple models in a three.js scene?

To keep VRM MToon outline thickness consistent across multiple models, traverse the full three.js scene to programmatically inspect and adjust each material. Switching materials to screenCoordinates mode and setting a uniform outlineWidthFactor normalizes outline thickness for all imported VRM assets.

What is the difference between worldCoordinates and screenCoordinates outline width modes in MToon?

The difference between worldCoordinates and screenCoordinates outline modes in MToon is how thickness scales: worldCoordinates scales outlines with model size, while screenCoordinates scales outlines relative to the screen. Switching to screenCoordinates prevents outlines from distorting when camera zoom or model scale changes.

Can I programmatically adjust MToon outline materials during a three.js scene traversal?

Yes, you can programmatically adjust MToon outline materials during a three.js scene traversal. The process involves inspecting each material in the scene, switching the outlineWidthMode to screenCoordinates, setting a suitable outlineWidthFactor, and flagging the materials for an update to ensure correct rendering.

Does this MToon outline adjustment work with VRM assets imported in batches?

Yes, MToon outline adjustment works with batch-imported VRM assets. By running an adjustment function across a full scene traversal, you can quickly normalize outline thickness for all loaded VRM models, ensuring they appear visually coherent within a single scene or gallery.