Repository navigation
feat(live): assemble the live scene and each band's start timeline as a product - #77
Merged
Merged
Conversation
A scene bundle's container names a scene without an object; its scene hashes name the scene's serialized file. census.scenes reads them: a scene is the objects of that file outside a hierarchy (the root GameObjects and the scene's settings). link.addresses (version 4) lists them as the objects of the scene's key and gives them stable addresses under the scene's path, so a product can start from a scene key such as EmbScene/Live. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A material names its shader by id, so a product may hold different shaders of one name: a bundle's copy of a shader beside the copy in the APK's built-in files, each compiled on its own. The name table of content.prefabs.shader_table now gives what a lookup by name (Shader.Find) finds: the copies of one shader by the first id; of different shaders of a name, the one of `found` (the shaders the lookup finds first, which a product passes as GraphicsSettings' always-included shaders); else the name names none of them. Every shader keeps its files either way. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
content.prefabs gains key_object, the one object of a catalog key of a class (a prefab by its GameObject, a MonoBehaviour by its script class), and component_ref, the component a field names: in the same hierarchy by path, or in another hierarchy of the table by a $ref to a component the table lists as contained in that hierarchy's root. The note highway uses key_object, and livenotes.animator_bindings takes further clips an Animator plays besides its controller's and its LoopAnimationTimeSyncs'. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… a product live.scene (subject `default`, manifest scenes/default.json) starts from the scene EmbScene/Live, the lane line and judge effect prefabs, the combo and judgement sprite assets, the sprites of every lane skin, the start timeline and LightWeight background of every band, and the built-in GraphicsSettings, QualitySettings and PlayerSettings. Its scene.json names by id the scene's root GameObjects and RenderSettings, the graphics settings, the lane skins, the prefabs (with the bar line view the scene's bar line container instantiates), the sprite assets, and per band its timeline, background and the Animator each timeline track plays on. It also holds the option defaults and ranges the render path reads, the quality settings, the lane skins by option value and the judgement sprite names, the clip bindings of every Animator (with the timeline tracks' clips on theirs) and the shaders a lookup by name finds, which must include those the live screen finds by name. The product layout makes live.scene when the selection holds the scene and the master data is there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The scene of a live becomes one product, shared by every live: what exists on the live screen before the first note, and the start timeline and LightWeight background of each band.
Scene keys
census.scenesreads them: a scene is the objects of that file outside a hierarchy (the root GameObjects and the scene's settings).link.addresses(version 4) lists them as the objects of the scene's key and gives them stable addresses under the scene's path, so a product can start from a key such asEmbScene/Live.Product
live.scene (
default, manifestscenes/default.json) starts from:EmbScene/Live;GraphicsSettings,QualitySettingsandPlayerSettings.scene.json(format 1) holds:scene,renderSettingsgraphicslaneSkins,prefabs,spriteAssetsprefabsincludes the bar line view the scene's bar line container instantiatesbands{AnimationTrack id: {name, prefab, animator}}, the Animator each track plays onsettingsbindingsshadersThe scene's roots reference components of each other with
$refs. The object table lists each such component as contained in the root GameObject that holds it.Shaders
A material names its shader by id, so a product may hold different shaders of one name, for example a bundle's copy beside the copy in the APK's built-in files. The name table of
shader_tablegives what a lookup by name (Shader.Find) finds:Every shader keeps its files either way.
live.scenerequires the shaders the live screen finds by name.Content helpers
content.prefabsgains two helpers, and the note highway useskey_object:key_object: the object of a key of a class.component_ref: a component a field names, in the same hierarchy or through a$refinto another hierarchy.