30ef1b19294b1b724827ed2790e12e53b751a492
No behavioural change intended; this is the tidy-up pass after five rounds of track fixes.
Director.cs
* Six MaterialPropertyBlock fields (chara / bgColor1 / bgColor2 / spotlight / uvScroll /
blinkLight) become one shared `PropBlock`. Every use is the same self-contained
Get -> modify -> Set, and the block carries no state across frames or handlers, so the
separate fields were pure duplication. The reason the Get is mandatory (SetPropertyBlock
replaces rather than merges — this is what made GlobalLight dead for 59/59 songs) now
lives on the one shared field instead of being restated per handler.
* ResolveStageTargets wrote four instance fields as de facto out-parameters that
LogBgColor1Resolution read back. Replaced with a returned StageResolveReport, which also
lets the logger become static. `props` is now a required parameter — the `= null` default
silently meant "BgColor1's channel", which is the wrong default for a BgColor2 caller.
* Three duplicated blocks removed: shader-description building (BgColor1 and BlinkLight
logs -> DescribeRendererShaders), vocal entry resolution (InitializeMusic and
GetLiveAllVoiceEntry -> ResolveVocalEntry), and the FOV frame marking copied verbatim
into SaveCameraVMD and SaveMultiCameraVMD (-> MarkFovFrames, which additionally no longer
throws on an empty frame list).
* OnEffectUpdate's three identical "record the frame, bail out" branches collapse into
LoadEffectPrefab returning null.
* HdrBloom's handler and the Bloom volume override are gone. hdrBloomKeys is empty in all
59 songs, and the field-to-URP mapping was never confirmed — so this was code that could
only ever be wrong, plus an effect nobody wrote to. The data layer and the dispatch stay,
so re-adding it is one subscription.
* The BlinkLight TODO no longer lists palette slot mapping: that was reverse-engineered
(slot = the lightNNN_/alphaNNN_ prefix of the renderer or its nearest ancestor).
StageEnvMapDiag.cs deleted (with StageEnvRateToggle and its F9 hotkey). It existed to test one
hypothesis — that the floor blow-out came from DefaultEnvMapNoAmbient's env reflection — and
the verdict experiment ran: _EnvRate = 0 changed nothing. The real cause turned out to be
mirror_a and is fixed. Keeping it meant a full-hierarchy sweep on every stage load and a
hotkey, for a question already answered.
StageController no longer calls it; StageMissingScriptCensus's doc comment stops restating the
signature list that CLAUDE.md already carries.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UzXXkLzVC8pNA3JjyUGMbq
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
- Uma Musume: Pretty Derby with full data download is required to run the viewer.
- 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\...
- ...\...
- Target Folder\
- Download the most recent UmaViewer.zip file from Releases tab.
- Extract the archive anywhere, can be extracted over previous version.
- Run the UmaViewer.exe.
- 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
- Unity Hub with Unity Engine Version 2022.3.62f1 is recommended. It should be possible to run it on newer 2022.3.X versions.
- Clone or download and extract this repository.
- Import and Open the project in Unity Hub, missing files should be automatically repaired.
- Open the Assets/Scenes/Version2 scene.
- note: If there are errors in the console, JSON .NET For Unity may be required
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.
Description
Languages
C#
94.3%
GLSL
1.8%
ShaderLab
1.6%
C
0.7%
JavaScript
0.5%
Other
0.9%