vrm-mtoon-outline

Switch VRM MToon outline rendering to screen coordinates for consistent thickness.

Updated Mar 31, 2026
One-click install
npx skills add https://github.com/StarrySerendipity/N.E.K.O --skill vrm-mtoon-outline-starryserendipity
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vrm-mtoon-outline
Source: https://github.com/StarrySerendipity/N.E.K.O/tree/main/.agent/skills/vrm-mtoon-outline
Command: npx skills add https://github.com/StarrySerendipity/N.E.K.O --skill vrm-mtoon-outline-starryserendipity

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Outline thickness issues in VRM models using MToon; when models are scaled or camera zooms, outlines appear inconsistent.

Core Features & Use Cases

  • Detects MToon materials with outlines in the VRM scene and checks if outline is enabled.
  • Switches outline rendering from world coordinates to screen coordinates to maintain consistent thickness across scale/zoom.
  • Provides guidelines for typical outline thickness values and a diagnostic helper to log materials.

Quick Start

Run the adjustOutlineThickness function on your loaded VRM model to switch outlines to screen coordinates.

Frequently Asked Questions about vrm-mtoon-outline

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

FAQPage Schema
How do I fix VRM MToon outline thickness when scaling or zooming the camera in three.js?

To fix VRM MToon outline thickness inconsistencies during scaling or zooming, switch the outline rendering from world coordinates to screen coordinates to maintain a consistent visual thickness.

Why does my VRM model outline disappear or become too thick when the camera zooms in?

Outlines appear inconsistent because they render in world coordinates, making thickness scale-dependent; switching MToon outline rendering to screen coordinates stabilizes the thickness across camera zoom levels.

How do I apply screen coordinate outline rendering to a loaded VRM model?

Run the adjustOutlineThickness function on your loaded model to iterate all meshes, check if MToon outline is enabled, and update outlineWidthMode and outlineWidthFactor to screen coordinates.

Does this outline stabilization method work with all VRM materials?

This method applies specifically to VRM models using MToon materials; it iterates all meshes to update outline settings, requiring that the model is loaded via vrm.scene and materials are MToon-based.

What are the recommended MToon outline width values for consistent screen-coordinate rendering?

Guidelines for typical outline thickness values are provided alongside a diagnostic helper that logs materials, ensuring you select appropriate outlineWidthFactor values for screen-coordinate rendering.