Update twilight transition description and remove time phase color inputs

This commit is contained in:
2026-04-13 15:02:15 +02:00
parent 4e2e6c97f8
commit 5aae97ac42

View File

@@ -9304,7 +9304,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
</label>
</div>
<div className="material-summary">
Default is 24 real minutes for one full 24-hour cycle. Daylight uses each scene's authored World settings as the daytime baseline.
Default is 24 real minutes for one full 24-hour cycle.
</div>
</div>
@@ -9453,471 +9453,12 @@ export function App({ store, initialStatusMessage }: AppProps) {
</label>
</div>
<div className="material-summary">
Sunrise must stay earlier than sunset. Dawn and dusk durations define how broadly the twilight profile blends around each boundary.
Sunrise must stay earlier than sunset. Dawn and dusk durations define how broadly the twilight transition blends around each boundary.
</div>
</div>
<div className="form-section">
<div className="label">Dawn Profile</div>
<div className="vector-inputs">
<label className="form-field">
<span className="label">Sky Top</span>
<input
className="color-input"
type="color"
value={editorState.projectDocument.time.dawn.skyTopColorHex}
onChange={(event) =>
applyProjectTimePhaseColor(
"dawn",
"skyTopColorHex",
event.currentTarget.value,
"Set dawn sky top color",
"Updated the dawn sky top color."
)
}
/>
</label>
<label className="form-field">
<span className="label">Sky Bottom</span>
<input
className="color-input"
type="color"
value={editorState.projectDocument.time.dawn.skyBottomColorHex}
onChange={(event) =>
applyProjectTimePhaseColor(
"dawn",
"skyBottomColorHex",
event.currentTarget.value,
"Set dawn sky bottom color",
"Updated the dawn sky bottom color."
)
}
/>
</label>
<label className="form-field">
<span className="label">Ambient Color</span>
<input
className="color-input"
type="color"
value={editorState.projectDocument.time.dawn.ambientColorHex}
onChange={(event) =>
applyProjectTimePhaseColor(
"dawn",
"ambientColorHex",
event.currentTarget.value,
"Set dawn ambient color",
"Updated the dawn ambient color."
)
}
/>
</label>
<label className="form-field">
<span className="label">Ambient Factor</span>
<input
className="text-input"
type="number"
min="0"
step="0.05"
value={projectTimeDawnAmbientIntensityFactorDraft}
onChange={(event) =>
setProjectTimeDawnAmbientIntensityFactorDraft(
event.currentTarget.value
)
}
onBlur={() =>
applyProjectTimePhaseNumericField(
"dawn",
"ambientIntensityFactor",
projectTimeDawnAmbientIntensityFactorDraft,
"Set dawn ambient factor",
"Dawn ambient factor",
"Updated the dawn ambient factor."
)
}
/>
</label>
<label className="form-field">
<span className="label">Light Color</span>
<input
className="color-input"
type="color"
value={editorState.projectDocument.time.dawn.lightColorHex}
onChange={(event) =>
applyProjectTimePhaseColor(
"dawn",
"lightColorHex",
event.currentTarget.value,
"Set dawn light color",
"Updated the dawn light color."
)
}
/>
</label>
<label className="form-field">
<span className="label">Light Factor</span>
<input
className="text-input"
type="number"
min="0"
step="0.05"
value={projectTimeDawnLightIntensityFactorDraft}
onChange={(event) =>
setProjectTimeDawnLightIntensityFactorDraft(
event.currentTarget.value
)
}
onBlur={() =>
applyProjectTimePhaseNumericField(
"dawn",
"lightIntensityFactor",
projectTimeDawnLightIntensityFactorDraft,
"Set dawn light factor",
"Dawn light factor",
"Updated the dawn light factor."
)
}
/>
</label>
</div>
</div>
<div className="form-section">
<div className="label">Dusk Profile</div>
<div className="vector-inputs">
<label className="form-field">
<span className="label">Sky Top</span>
<input
className="color-input"
type="color"
value={editorState.projectDocument.time.dusk.skyTopColorHex}
onChange={(event) =>
applyProjectTimePhaseColor(
"dusk",
"skyTopColorHex",
event.currentTarget.value,
"Set dusk sky top color",
"Updated the dusk sky top color."
)
}
/>
</label>
<label className="form-field">
<span className="label">Sky Bottom</span>
<input
className="color-input"
type="color"
value={editorState.projectDocument.time.dusk.skyBottomColorHex}
onChange={(event) =>
applyProjectTimePhaseColor(
"dusk",
"skyBottomColorHex",
event.currentTarget.value,
"Set dusk sky bottom color",
"Updated the dusk sky bottom color."
)
}
/>
</label>
<label className="form-field">
<span className="label">Ambient Color</span>
<input
className="color-input"
type="color"
value={editorState.projectDocument.time.dusk.ambientColorHex}
onChange={(event) =>
applyProjectTimePhaseColor(
"dusk",
"ambientColorHex",
event.currentTarget.value,
"Set dusk ambient color",
"Updated the dusk ambient color."
)
}
/>
</label>
<label className="form-field">
<span className="label">Ambient Factor</span>
<input
className="text-input"
type="number"
min="0"
step="0.05"
value={projectTimeDuskAmbientIntensityFactorDraft}
onChange={(event) =>
setProjectTimeDuskAmbientIntensityFactorDraft(
event.currentTarget.value
)
}
onBlur={() =>
applyProjectTimePhaseNumericField(
"dusk",
"ambientIntensityFactor",
projectTimeDuskAmbientIntensityFactorDraft,
"Set dusk ambient factor",
"Dusk ambient factor",
"Updated the dusk ambient factor."
)
}
/>
</label>
<label className="form-field">
<span className="label">Light Color</span>
<input
className="color-input"
type="color"
value={editorState.projectDocument.time.dusk.lightColorHex}
onChange={(event) =>
applyProjectTimePhaseColor(
"dusk",
"lightColorHex",
event.currentTarget.value,
"Set dusk light color",
"Updated the dusk light color."
)
}
/>
</label>
<label className="form-field">
<span className="label">Light Factor</span>
<input
className="text-input"
type="number"
min="0"
step="0.05"
value={projectTimeDuskLightIntensityFactorDraft}
onChange={(event) =>
setProjectTimeDuskLightIntensityFactorDraft(
event.currentTarget.value
)
}
onBlur={() =>
applyProjectTimePhaseNumericField(
"dusk",
"lightIntensityFactor",
projectTimeDuskLightIntensityFactorDraft,
"Set dusk light factor",
"Dusk light factor",
"Updated the dusk light factor."
)
}
/>
</label>
</div>
</div>
<div className="form-section">
<div className="label">Night Profile</div>
<div className="vector-inputs">
<label className="form-field">
<span className="label">Sky Top</span>
<input
className="color-input"
type="color"
value={editorState.projectDocument.time.night.skyTopColorHex}
onChange={(event) =>
applyProjectTimePhaseColor(
"night",
"skyTopColorHex",
event.currentTarget.value,
"Set night sky top color",
"Updated the night sky top color."
)
}
/>
</label>
<label className="form-field">
<span className="label">Sky Bottom</span>
<input
className="color-input"
type="color"
value={editorState.projectDocument.time.night.skyBottomColorHex}
onChange={(event) =>
applyProjectTimePhaseColor(
"night",
"skyBottomColorHex",
event.currentTarget.value,
"Set night sky bottom color",
"Updated the night sky bottom color."
)
}
/>
</label>
<label className="form-field">
<span className="label">Ambient Color</span>
<input
className="color-input"
type="color"
value={editorState.projectDocument.time.night.ambientColorHex}
onChange={(event) =>
applyProjectTimePhaseColor(
"night",
"ambientColorHex",
event.currentTarget.value,
"Set night ambient color",
"Updated the night ambient color."
)
}
/>
</label>
<label className="form-field">
<span className="label">Ambient Factor</span>
<input
className="text-input"
type="number"
min="0"
step="0.05"
value={projectTimeNightAmbientIntensityFactorDraft}
onChange={(event) =>
setProjectTimeNightAmbientIntensityFactorDraft(
event.currentTarget.value
)
}
onBlur={() =>
applyProjectTimePhaseNumericField(
"night",
"ambientIntensityFactor",
projectTimeNightAmbientIntensityFactorDraft,
"Set night ambient factor",
"Night ambient factor",
"Updated the night ambient factor."
)
}
/>
</label>
<label className="form-field">
<span className="label">Moon / Night Light</span>
<input
className="color-input"
type="color"
value={editorState.projectDocument.time.night.lightColorHex}
onChange={(event) =>
applyProjectTimePhaseColor(
"night",
"lightColorHex",
event.currentTarget.value,
"Set night light color",
"Updated the night light color."
)
}
/>
</label>
<label className="form-field">
<span className="label">Moon / Night Factor</span>
<input
className="text-input"
type="number"
min="0"
step="0.05"
value={projectTimeNightLightIntensityFactorDraft}
onChange={(event) =>
setProjectTimeNightLightIntensityFactorDraft(
event.currentTarget.value
)
}
onBlur={() =>
applyProjectTimePhaseNumericField(
"night",
"lightIntensityFactor",
projectTimeNightLightIntensityFactorDraft,
"Set night light factor",
"Night light factor",
"Updated the night light factor."
)
}
/>
</label>
</div>
<div className="form-section">
<div className="label">Night Background Image</div>
<label className="form-field">
<span className="label">Image</span>
<select
className="text-input"
value={
editorState.projectDocument.time.nightBackground
.assetId ?? ""
}
onChange={(event) =>
applyProjectTimeNightBackgroundAssetId(
event.currentTarget.value.trim().length === 0
? null
: event.currentTarget.value
)
}
>
<option value="">None</option>
{imageAssetList.map((asset) => (
<option key={asset.id} value={asset.id}>
{asset.sourceName}
</option>
))}
</select>
</label>
{editorState.projectDocument.time.nightBackground.assetId ===
null ? (
imageAssetList.length === 0 ? (
<div className="material-summary">
Import an image asset to author a dedicated night sky image.
</div>
) : (
<div className="material-summary">
Night falls back to the blended dawn/dusk/night sky colors until an image is selected.
</div>
)
) : (
<>
<label className="form-field">
<span className="label">Environment Intensity</span>
<input
className="text-input"
type="number"
min="0"
step="0.1"
value={
projectTimeNightBackgroundEnvironmentIntensityDraft
}
onChange={(event) =>
setProjectTimeNightBackgroundEnvironmentIntensityDraft(
event.currentTarget.value
)
}
onBlur={
applyProjectTimeNightBackgroundEnvironmentIntensity
}
onKeyDown={(event) =>
handleDraftVectorKeyDown(
event,
applyProjectTimeNightBackgroundEnvironmentIntensity
)
}
onKeyUp={(event) =>
handleNumberInputKeyUp(
event,
applyProjectTimeNightBackgroundEnvironmentIntensity
)
}
onPointerUp={(event) =>
handleNumberInputPointerUp(
event,
applyProjectTimeNightBackgroundEnvironmentIntensity
)
}
/>
</label>
<div className="material-summary">
{editorState.document.assets[
editorState.projectDocument.time.nightBackground
.assetId
]?.sourceName ??
editorState.projectDocument.time.nightBackground
.assetId}
</div>
</>
)}
</div>
<div className="material-summary">
Dawn, dusk, and night profiles blend over each scene's authored World settings whenever the scene enables global time influence.
</div>
<div className="material-summary">
Environment authoring lives in World. Project Time now only defines the shared clock and daylight window.
</div>
</Panel>