ritenseki f5368031af docs: settle the mirror ball rotation question with dumped data
Chased the lead that MirrorBallProjector's shader might cross-validate the ball's rotation
speed. It does — by showing there was never an unknown constant to recover.

  * All four MirrorBallProjector instances on live10149 carry MirrorBallIsLoopRotation = 0,
    MirrorBallLoopRotationSpeed = 0, MirrorBallLoopRotationValue = 0. The shader's own
    loop-rotation path is switched off on this stage, so it is not the rotation source.
  * The source is the clip StageAnimationPlayer already plays. Its six quaternion curves
    (mirrorball_a_000 and b_000..004) give a constant -179.50 deg/s about Y — the same figure
    at every one of the seven keys — 2.0 s per loop, last key -359 deg so the loop seam does
    not repeat a frame. The ball speed in our build is therefore already correct.

The general lesson is recorded too: "the value is 0" and "the value is unknown" are different
findings, and this one was filed as the latter for weeks. Check the enable flag before
declaring a constant unrecoverable.

What genuinely is blocked here is narrower than "the script's behaviour": the shader wants
_MirrorBallPosWS / _MirrorBallScale / _MirrorBallRotateValue, the component holds no reference
to any ball, all four projectors sit at the origin sharing one material, and the balls are at
six scattered positions. The object-to-object binding lives in the method body. The Blocked
section now says that instead of using this field as its example.

Two other things fell out of the same dump pass:

  * LensFlare is not a "build a system from scratch" item at all. CustomLensFlare's Flare
    points at Gallop.RenderPipeline.LensFlareData — a ScriptableObject in the same assembly,
    so rebuildable by signature — whose fields are a verbatim copy of Unity's legacy Flare
    (TextureLayout, Texture, ElementArray[ImageIndex/Position/Size/Color/UseLightColor/
    Rotate/Zoom/Fade], UseFog). That means the semantics are Unity's own and not blocked by
    IL2CPP, and URP ships LensFlareComponentSRP as the target. 199+5 objects carry it, and
    the stage has no legacy LensFlare component anywhere. Promoted to the next thing to do.
  * ShaderParamController, previously ranked "cheapest", is a no-op: its only two entries are
    _AmbientColor and _CharaColor, both (1,1,1,1). Struck from the list rather than left as
    bait.

The stale-saved-properties warning gains a worked example, because mtl_env_live10149_
projector001 is a good one: 40+ saved entries against 22 real ones, including _IsLoopYRotation
and _LoopYRotationSpeed, which are older spellings of properties that do exist — a near-miss
that reads as a discovery.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UzXXkLzVC8pNA3JjyUGMbq
2026-08-07 13:29:20 +08:00
2025-01-20 11:11:43 +01:00
2025-07-20 07:18:58 +02:00
2022-06-18 17:47:39 +02:00
2022-09-07 01:22:44 +08:00
2025-10-03 11:00:39 +02:00

Uma Viewer (2)

Unity application that makes it easy to view assets from Uma Musume: Pretty Derby.

Version Supported
JP (DMM) ✅
JP (Steam) ✅
KR ✅
Global ✅

⚠️ 🌍 EN/Global users ⚠️

In UmaViewer, set WorkMode to Default and Region to Global in the 'Other' Settings tab.

Currently only the default work mode is supported - you need to download assets using the Download All button in the game's settings for the viewer to work.


Requirements/Installation

  1. Uma Musume: Pretty Derby with full data download is required to run the viewer.
  2. Depending on your version and update status, the game stores its data in different locations
  • DMM/Steam Older installations : C:\Users\your_username\AppData\LocalLow\Cygames\umamusume(?)\
  • DMM/Steam Fresh installations : ...\Umamusume installation directory\Umamusume_Data\Persistent(?)\
  • In any case,confirm your file listing in target folder looks like this
    • Target Folder\
      • meta
      • master\
        • master.mdb
      • dat\
        • 2A\...
        • 2B\...
        • ...\...
  1. Download the most recent UmaViewer.zip file from Releases tab.
  2. Extract the archive anywhere, can be extracted over previous version.
  3. Run the UmaViewer.exe.
  4. UmaViewer will try to automatically detect the game data folder.
    • If it fails or shows an error, go to Settings → Other → Change DataPath and manually select target folder.

  • For Developers/Contributors
  1. Unity Hub with Unity Engine Version 2022.3.62f1 is recommended. It should be possible to run it on newer 2022.3.X versions.
  2. Clone or download and extract this repository.
  3. Import and Open the project in Unity Hub, missing files should be automatically repaired.
  4. Open the Assets/Scenes/Version2 scene.

Features

✓ - Working / - Incomplete x - Unsupported
Viewing main character models/animations ✓
Swapping costumes/animations between characters ✓
Viewing chibi models/animations ✓
Viewing mob (NPC) models ✓
Playing facial animations, custom sliders ✓
Cloth/Hair physics ✓
Playing Live Audio with Lyrics ✓
Exporting animations to MMD ✓
Recording animations (.gif), screenshots ✓
Viewing Props, Scenery, Live scenes /
Exporting models /

All characters and animations are supported

Mobs / background characters as well

Mixing outfits and animations

Screenshot and .gif recording

and more

Also check out:

UmaChat by kagari - model viewer fork that lets you chat with Umas using AI + TTS

Special Thank to:

MarshmallowAndroid: UmaMusumeExplorer for acb/awb decoder.

S
Description
Mirror of https://github.com/0xcjy/UmaViewer (Unity Uma Musume viewer)
Readme 159 MiB
Languages
C# 94.3%
GLSL 1.8%
ShaderLab 1.6%
C 0.7%
JavaScript 0.5%
Other 0.9%