Saturday Mornings ident
Port of release 0.108.69, with design/channels/build-saturday-mornings.py and its exports and review clips. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@@ -57,8 +57,13 @@ internal val BlockIdents: Map<String, BlockIdent> = mapOf(
|
||||
ADVENT_DOOR_25_KEY to BlockIdent(R.raw.block_advent_door25, R.raw.block_advent_door25_sting, BlockOverlay.AdventDoor25),
|
||||
// After Dark: The Naughty List (approved 4 November 2026): the whole title is in the clip.
|
||||
NAUGHTY_KEY to BlockIdent(R.raw.block_afterdark_naughty, R.raw.block_afterdark_naughty_sting),
|
||||
// Saturday Mornings (Paul, 6 November 2026): the weekend cartoons on Heroes, Orbit X and Rewind; Sundays read SUNDAY.
|
||||
SATURDAY_MORNINGS to BlockIdent(R.raw.block_saturday_mornings, R.raw.block_saturday_mornings_sting),
|
||||
) + RingXNights.keys.associateWith { BlockIdent(R.raw.block_ringx_nights, R.raw.block_ringx_nights_sting, BlockOverlay.RingXNight) }
|
||||
|
||||
internal const val SATURDAY_MORNINGS = "saturday.mornings"
|
||||
private val SundayMornings = BlockIdent(R.raw.block_sunday_mornings, R.raw.block_saturday_mornings_sting)
|
||||
|
||||
/** Orbit's own names for Ring X's weekly nights (approved 3 November 2026), and each night's rope colour. */
|
||||
internal val RingXNights: Map<String, Pair<String, Long>> get() = mapOf(
|
||||
"ringx.monday" to ("MONDAY NIGHT WARS" to 0xFFE81C30), "ringx.tuesday" to ("TUESDAY TITLE FIGHT" to 0xFFFFC21E),
|
||||
@@ -70,7 +75,9 @@ internal val RingXNights: Map<String, Pair<String, Long>> get() = mapOf(
|
||||
* anything else, including the second programme inside the same block, gets the channel's ident (null).
|
||||
*/
|
||||
internal fun blockIdentFor(current: SampleBroadcast, next: SampleBroadcast, enabled: Boolean): BlockIdent? =
|
||||
if (!enabled || next.presentation.isEmpty() || next.presentation == current.presentation) null else BlockIdents[next.presentation]
|
||||
if (!enabled || next.presentation.isEmpty() || next.presentation == current.presentation) null
|
||||
else if (next.presentation == SATURDAY_MORNINGS && java.time.Instant.ofEpochMilli(next.startMs).atZone(java.time.ZoneId.systemDefault()).dayOfWeek == java.time.DayOfWeek.SUNDAY) SundayMornings
|
||||
else BlockIdents[next.presentation]
|
||||
|
||||
/** A programme title made fit for a lower third: the guide's own clean title, or nothing if there isn't one. */
|
||||
internal fun eventTitle(next: SampleBroadcast): String? = guideTitleParts(next.media.item.title).first.trim().takeIf { it.isNotEmpty() }
|
||||
|
||||
@@ -182,8 +182,9 @@ private val HeroesMarvel = listOf("X-Men: The Animated Series", "Spider-Man: The
|
||||
private val HeroesAfterSchool = listOf("Batman: The Animated Series", "Superman: The Animated Series", "Batman Beyond", "Justice League", "Justice League Unlimited", "Static Shock", "Teen Titans")
|
||||
internal val HeroesShows get() = (HeroesCore + HeroesSupporting).distinct()
|
||||
internal val HeroesDayParts get() = listOf(
|
||||
DayPart(7, 11, HeroesMarvel, days = setOf(DayOfWeek.SATURDAY)),
|
||||
DayPart(7, 11, HeroesSaturday, days = setOf(DayOfWeek.SUNDAY)),
|
||||
// Saturday Mornings' ident as the weekend cartoons begin (Paul, 6 November 2026); the key names the ident only.
|
||||
DayPart(7, 11, HeroesMarvel, days = setOf(DayOfWeek.SATURDAY), key = SATURDAY_MORNINGS),
|
||||
DayPart(7, 11, HeroesSaturday, days = setOf(DayOfWeek.SUNDAY), key = SATURDAY_MORNINGS),
|
||||
DayPart(6, 15, HeroesShows), DayPart(15, 18, HeroesAfterSchool), DayPart(18, 22, HeroesCore + listOf("Young Justice", "The Avengers: Earth's Mightiest Heroes", "The Spectacular Spider-Man")),
|
||||
DayPart(22, 6, HeroesShows))
|
||||
/** Self-contained episodes mix. Shows with story arcs stay in order. */
|
||||
@@ -201,8 +202,8 @@ private val OrbitXGuests = listOf("X-Men: The Animated Series", "Spider-Man: The
|
||||
private val OrbitXEarlierNames = listOf("Digimon Adventure", "Mighty Morphin Power Rangers", "G.I. Joe: A Real American Hero")
|
||||
internal val OrbitXShows get() = (OrbitXCore + OrbitXSupporting + OrbitXGuests + OrbitXEarlierNames).distinct()
|
||||
internal val OrbitXDayParts get() = listOf(
|
||||
DayPart(7, 12, OrbitXCore + OrbitXEarlierNames + OrbitXGuests, days = setOf(DayOfWeek.SATURDAY)),
|
||||
DayPart(7, 12, OrbitXSaturday, days = setOf(DayOfWeek.SUNDAY)),
|
||||
DayPart(7, 12, OrbitXCore + OrbitXEarlierNames + OrbitXGuests, days = setOf(DayOfWeek.SATURDAY), key = SATURDAY_MORNINGS),
|
||||
DayPart(7, 12, OrbitXSaturday, days = setOf(DayOfWeek.SUNDAY), key = SATURDAY_MORNINGS),
|
||||
DayPart(15, 18, OrbitXCore + OrbitXEarlierNames + OrbitXGuests, days = Weekdays),
|
||||
DayPart(6, 18, OrbitXCore + OrbitXSupporting + OrbitXEarlierNames), DayPart(18, 23, OrbitXShows), DayPart(23, 6, OrbitXCore + OrbitXSupporting + OrbitXEarlierNames))
|
||||
internal val OrbitXMixed get() = setOf("Biker Mice from Mars", "Teenage Mutant Ninja Turtles", "The Transformers", "He-Man and the Masters of the Universe", "ThunderCats",
|
||||
@@ -220,7 +221,7 @@ private val RewindSupporting = listOf("Rugrats", "Hey Arnold!", "Doug", "CatDog"
|
||||
private val RewindNewer = listOf("Regular Show", "Gravity Falls")
|
||||
internal val RewindShows get() = (RewindCore + RewindSupporting + RewindNewer).distinct()
|
||||
internal val RewindDayParts get() = listOf(
|
||||
DayPart(7, 12, RewindSaturday, days = Weekend),
|
||||
DayPart(7, 12, RewindSaturday, days = Weekend, key = SATURDAY_MORNINGS),
|
||||
DayPart(6, 9, RewindCore + listOf("Rugrats", "Hey Arnold!", "Doug")), DayPart(9, 15, RewindShows),
|
||||
DayPart(15, 19, RewindCore), DayPart(19, 23, RewindShows), DayPart(23, 6, RewindCore))
|
||||
internal val RewindMixed get() = RewindShows.toSet() - "Gravity Falls"
|
||||
|
||||
@@ -13,6 +13,7 @@ import java.security.MessageDigest
|
||||
* - `snapshot`: copies the schedules and settings into Orbit's own folder on shared storage, with the library's and
|
||||
* sign-in's checksums, for adb to pull and compare. Nothing is read out of them here.
|
||||
* - `rollback <version>`: copies the schedules aside as schedule-rollback-<version>, as every install does.
|
||||
* - `catalogue`: a read-only copy of the library catalogue beside it, for checking new channels' titles against the library.
|
||||
* - `clear`: removes the copy once it's been pulled.
|
||||
*
|
||||
* It only ever copies; it never changes the schedules, the library or the sign-in.
|
||||
@@ -48,6 +49,12 @@ internal object InstallSnapshot {
|
||||
aside.deleteRecursively(); schedule.copyRecursively(aside, overwrite = true)
|
||||
"aside ${aside.walk().count { it.isFile }}"
|
||||
}
|
||||
"catalogue" -> {
|
||||
val db = File(data, "no_backup/catalogue.db")
|
||||
if (!db.exists()) return "no catalogue"
|
||||
db.copyTo(File(out, "catalogue.db"), overwrite = true)
|
||||
"copied catalogue"
|
||||
}
|
||||
"clear" -> { out.deleteRecursively(); "cleared" }
|
||||
else -> "unknown"
|
||||
}
|
||||
|
||||
@@ -19,8 +19,9 @@ class PresentationTest {
|
||||
@Test fun everyApprovedBlockKeyHasItsIdent() {
|
||||
// Takeovers (6 November 2026) have their own drawn ident instead of a filmed one.
|
||||
val keys = SmartChannels.flatMap { it.dayParts }.map { it.key }.filter { it.isNotEmpty() }.toSet() - Takeovers.map { it.key }.toSet()
|
||||
// Riot 3, After Dark 3, Horror, Gold, Three, Vortex 4 (Movie Night, Prime, Afterburn and its premiere), Orbit 2 2, Ring X 7 (six nights and PPV), Terra.
|
||||
assertEquals(23, keys.size)
|
||||
// Riot 3, After Dark 3, Horror, Gold, Three, Vortex 4 (Movie Night, Prime, Afterburn and its premiere), Orbit 2 2, Ring X 7 (six nights and PPV), Terra,
|
||||
// and Saturday Mornings, shared by Heroes, Orbit X and Rewind.
|
||||
assertEquals(24, keys.size)
|
||||
assertEquals(emptySet<String>(), keys - BlockIdents.keys)
|
||||
assertTrue(keys.all { PRESENTATION_KEY.matches(it) })
|
||||
}
|
||||
@@ -115,4 +116,12 @@ class PresentationTest {
|
||||
val long = "NJPW Dominion 6.9 in Osaka-jo Hall and a very long subtitle that runs on"
|
||||
assertEquals(long, eventTitle(broadcast("ringx.ppv", long)))
|
||||
}
|
||||
|
||||
@Test fun saturdayMorningsReadsSundayOnSundays() {
|
||||
val sunday = java.time.LocalDate.of(2026, 11, 8).atTime(7, 0).atZone(java.time.ZoneId.systemDefault()).toInstant().toEpochMilli()
|
||||
val saturday = sunday - 24 * 60 * 60_000L
|
||||
fun at(ms: Long, key: String) = SampleBroadcast(ScheduledMedia(SampleItem("Show / S1 E1 / One", "Episode", 30, "", "i", 30 * 60_000L), "c", 30 * 60_000L), ms, key)
|
||||
assertEquals(R.raw.block_saturday_mornings, blockIdentFor(at(saturday - 1, ""), at(saturday, SATURDAY_MORNINGS), true)?.video)
|
||||
assertEquals(R.raw.block_sunday_mornings, blockIdentFor(at(sunday - 1, ""), at(sunday, SATURDAY_MORNINGS), true)?.video)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Saturday Mornings, the weekend cartoon block's own ident (Paul, 6 November 2026): 4 seconds, as every block ident is.
|
||||
The sun comes up over a cartoon morning sky, Ollie bounces in, Zip streaks across, and SATURDAY MORNINGS lands; a Sunday
|
||||
version reads SUNDAY MORNINGS for the Sunday blocks. With a short, cheerful sting synthesised here (no samples).
|
||||
|
||||
Built with the EffectCraft pipeline from design/motion/build-moments.py. Writes saturday-mornings/exports (the clips,
|
||||
stings and stills) and a review sheet; nothing here is in the app until Paul approves it.
|
||||
"""
|
||||
import importlib.util, math, struct, subprocess, tempfile, wave
|
||||
from pathlib import Path
|
||||
from PIL import Image, ImageDraw, ImageFilter
|
||||
|
||||
HERE = Path(__file__).resolve().parent
|
||||
spec = importlib.util.spec_from_file_location('moments', HERE.parent / 'motion' / 'build-moments.py')
|
||||
m = importlib.util.module_from_spec(spec); spec.loader.exec_module(m)
|
||||
OUT = HERE / 'saturday-mornings'
|
||||
m.OUT, m.SRC, m.REVIEW = OUT / 'exports', OUT / 'sources', OUT / 'review'
|
||||
W, H, END = m.W, m.H, 4.0
|
||||
|
||||
|
||||
def sky():
|
||||
im = Image.new('RGBA', (W, H)); d = ImageDraw.Draw(im)
|
||||
top, low = (86, 170, 255), (255, 214, 150)
|
||||
for y in range(H):
|
||||
u = (y / H) ** 1.6
|
||||
d.line([(0, y), (W, y)], fill=tuple(int(top[i] + (low[i] - top[i]) * u) for i in range(3)) + (255,))
|
||||
return im
|
||||
|
||||
|
||||
def sun():
|
||||
im = m.canvas(); d = ImageDraw.Draw(im); cx, cy = W / 2, 780
|
||||
for k in range(16):
|
||||
a = k * math.pi / 8
|
||||
d.polygon([(cx, cy), (cx + 900 * math.cos(a - .09), cy + 900 * math.sin(a - .09)), (cx + 900 * math.cos(a + .09), cy + 900 * math.sin(a + .09))], fill=(255, 236, 160, 45))
|
||||
d.ellipse((cx - 190, cy - 190, cx + 190, cy + 190), fill=(255, 205, 64, 255))
|
||||
return m.glow(im, 18)
|
||||
|
||||
|
||||
def clouds():
|
||||
im = m.canvas(); d = ImageDraw.Draw(im)
|
||||
for cx, cy, s in [(260, 260, 1.0), (1560, 200, 1.2), (1250, 420, .8), (480, 520, .7)]:
|
||||
for ox, oy, r in [(-60, 10, 55), (0, -20, 70), (65, 5, 58), (120, 20, 42), (-110, 25, 40)]:
|
||||
d.ellipse((cx + ox * s - r * s, cy + oy * s - r * s, cx + ox * s + r * s, cy + oy * s + r * s), fill=(255, 255, 255, 235))
|
||||
return im
|
||||
|
||||
|
||||
def hills():
|
||||
im = m.canvas(); d = ImageDraw.Draw(im)
|
||||
d.ellipse((-300, 820, 1100, 1500), fill=(92, 200, 120, 255)); d.ellipse((800, 860, 2300, 1560), fill=(70, 176, 104, 255))
|
||||
return im
|
||||
|
||||
|
||||
def title(word):
|
||||
im = m.canvas()
|
||||
f = m.ANTON(190)
|
||||
for dx, dy in [(-7, 0), (7, 0), (0, -7), (0, 7), (-5, -5), (5, 5), (-5, 5), (5, -5)]:
|
||||
layer = m.canvas(); m.centred_text(layer, 470 + dy, word, f, (7, 22, 50, 255), spacing=8)
|
||||
im = Image.alpha_composite(im, layer.transform(im.size, Image.AFFINE, (1, 0, -dx, 0, 1, 0)))
|
||||
m.centred_text(im, 470, word, f, (255, 222, 89, 255), spacing=8)
|
||||
return im
|
||||
|
||||
|
||||
def mornings():
|
||||
im = m.canvas(); f = m.ANTON(120)
|
||||
for dx, dy in [(-6, 0), (6, 0), (0, -6), (0, 6)]:
|
||||
layer = m.canvas(); m.centred_text(layer, 640 + dy, 'MORNINGS', f, (7, 22, 50, 255), spacing=10)
|
||||
im = Image.alpha_composite(im, layer.transform(im.size, Image.AFFINE, (1, 0, -dx, 0, 1, 0)))
|
||||
m.centred_text(im, 640, 'MORNINGS', f, (255, 255, 255, 255), spacing=10)
|
||||
return im
|
||||
|
||||
|
||||
def build(day):
|
||||
c = m.Comp(f'{day.lower()}_mornings', END, background=(86, 170, 255))
|
||||
c.image(sky(), 'Sky')
|
||||
c.image(sun(), 'Sun')
|
||||
c.key('Sun', 'transform/position', m.ease_out(0, 1.1, [640, 560, 0], [640, 360, 0], 6))
|
||||
c.cmd('prop.set', layer='Sun', path='transform/anchor', value=[960, 780, 0])
|
||||
c.key('Sun', 'transform/rotation', [(0, 0), (END, 14)])
|
||||
c.image(clouds(), 'Clouds')
|
||||
c.key('Clouds', 'transform/position', [(0, [600, 360, 0]), (END, [660, 360, 0])])
|
||||
c.image(hills(), 'Hills')
|
||||
c.image(m.host('Ollie', (W / 2 - 520, 830), 70), 'Ollie')
|
||||
c.key('Ollie', 'transform/position', [(0, [100, 360, 0])] + [(0.35 + k * .1, [100 + 540 * min(1, (k + 1) / 8), 360 - 40 * abs(math.sin((k + 1) * 1.2)), 0]) for k in range(8)])
|
||||
zip_ = m.host('Zip', (W / 2, 260), 50)
|
||||
trail = m.canvas(); ImageDraw.Draw(trail).rounded_rectangle((W / 2 - 900, 248, W / 2 - 40, 272), 12, fill=(255, 79, 163, 150))
|
||||
c.image(Image.alpha_composite(m.glow(trail, 10), zip_), 'Zip')
|
||||
c.key('Zip', 'transform/position', [(0, [-700, 360, 0]), (.9, [-700, 360, 0])] + m.ease_out(.9, 1.5, [-700, 360, 0], [2300, 360, 0], 5)[1:])
|
||||
c.image(title(day.upper()), 'Day')
|
||||
c.cmd('prop.set', layer='Day', path='transform/anchor', value=[960, 420, 0])
|
||||
c.cmd('prop.set', layer='Day', path='transform/position', value=[640, 280, 0])
|
||||
c.key('Day', 'transform/opacity', [(0, 0), (1.25, 0), (1.35, 100)])
|
||||
c.key('Day', 'transform/scale', [(1.25, [30, 30, 100]), (1.45, [74, 74, 100]), (1.58, [66.67, 66.67, 100])])
|
||||
c.image(mornings(), 'Mornings')
|
||||
c.key('Mornings', 'transform/opacity', [(0, 0), (1.6, 0), (1.75, 100)])
|
||||
c.key('Mornings', 'transform/position', m.ease_out(1.6, 1.95, [640, 400, 0], [640, 360, 0], 5))
|
||||
for name in ('Sky', 'Sun', 'Clouds', 'Hills', 'Ollie', 'Day', 'Mornings'):
|
||||
c.key(name, 'transform/opacity', [(END - .25, 100), (END, 0)])
|
||||
return c.render(still_at=3.0)
|
||||
|
||||
|
||||
def sting(path):
|
||||
rate = 44100; notes = [(0.35, 523.25), (0.55, 659.25), (0.75, 783.99), (1.3, 1046.5), (1.42, 1318.5)]
|
||||
out = [0.0] * int(rate * END)
|
||||
for start, f in notes:
|
||||
n = int(rate * .5)
|
||||
for i in range(n):
|
||||
t = i / rate; env = min(1, t / .01) * math.exp(-t * 5)
|
||||
out[int(start * rate) + i] += .3 * env * (math.sin(2 * math.pi * f * t) + .35 * math.sin(4 * math.pi * f * t))
|
||||
peak = max(abs(s) for s in out)
|
||||
with tempfile.NamedTemporaryFile(suffix='.wav') as tmp:
|
||||
with wave.open(tmp.name, 'wb') as w:
|
||||
w.setnchannels(1); w.setsampwidth(2); w.setframerate(rate)
|
||||
w.writeframes(b''.join(struct.pack('<h', int(32767 * .7 * s / peak)) for s in out))
|
||||
subprocess.run(['ffmpeg', '-v', 'error', '-y', '-i', tmp.name, '-c:a', 'aac', '-b:a', '64k', str(path)], check=True)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
videos = [build('Saturday'), build('Sunday')]
|
||||
sting(m.OUT / 'saturday_mornings_sting.m4a')
|
||||
m.sheet(videos)
|
||||
for v in videos: print(v.name, v.stat().st_size)
|
||||
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 560 KiB |
|
After Width: | Height: | Size: 557 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 21 KiB |
@@ -0,0 +1,913 @@
|
||||
[
|
||||
{
|
||||
"command": "comp.new",
|
||||
"params": {
|
||||
"name": "saturday_mornings",
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"frameRate": 30,
|
||||
"duration": 4.0,
|
||||
"background": "#56AAFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/saturday_mornings/Sky.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Sky"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Sky",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/saturday_mornings/Sun.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Sun"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 0.0,
|
||||
"value": [
|
||||
640.0,
|
||||
560.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 0.183,
|
||||
"value": [
|
||||
640.0,
|
||||
475.74,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 0.367,
|
||||
"value": [
|
||||
640.0,
|
||||
419.26,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 0.55,
|
||||
"value": [
|
||||
640.0,
|
||||
385.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 0.733,
|
||||
"value": [
|
||||
640.0,
|
||||
367.41,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 0.917,
|
||||
"value": [
|
||||
640.0,
|
||||
360.93,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 1.1,
|
||||
"value": [
|
||||
640.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/anchor",
|
||||
"value": [
|
||||
960,
|
||||
780,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/rotation",
|
||||
"time": 0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/rotation",
|
||||
"time": 4.0,
|
||||
"value": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/saturday_mornings/Clouds.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Clouds"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Clouds",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Clouds",
|
||||
"path": "transform/position",
|
||||
"time": 0,
|
||||
"value": [
|
||||
600,
|
||||
360,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Clouds",
|
||||
"path": "transform/position",
|
||||
"time": 4.0,
|
||||
"value": [
|
||||
660,
|
||||
360,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/saturday_mornings/Hills.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Hills"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Hills",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/saturday_mornings/Ollie.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Ollie"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0,
|
||||
"value": [
|
||||
100,
|
||||
360,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.35,
|
||||
"value": [
|
||||
167.5,
|
||||
322.71843656131097,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.45,
|
||||
"value": [
|
||||
235.0,
|
||||
332.98147277795397,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.55,
|
||||
"value": [
|
||||
302.5,
|
||||
342.2991822682059,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.65,
|
||||
"value": [
|
||||
370.0,
|
||||
320.1534156465664,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.75,
|
||||
"value": [
|
||||
437.5,
|
||||
348.82338007204294,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.85,
|
||||
"value": [
|
||||
505.0,
|
||||
328.2532854460339,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.95,
|
||||
"value": [
|
||||
572.5,
|
||||
325.8160436764688,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 1.05,
|
||||
"value": [
|
||||
640,
|
||||
353.0269287510808,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/saturday_mornings/Zip.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Zip"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 0,
|
||||
"value": [
|
||||
-700,
|
||||
360,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 0.9,
|
||||
"value": [
|
||||
-700,
|
||||
360,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 1.02,
|
||||
"value": [
|
||||
764.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 1.14,
|
||||
"value": [
|
||||
1652.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 1.26,
|
||||
"value": [
|
||||
2108.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 1.38,
|
||||
"value": [
|
||||
2276.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 1.5,
|
||||
"value": [
|
||||
2300.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/saturday_mornings/Day.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Day"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/anchor",
|
||||
"value": [
|
||||
960,
|
||||
420,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/position",
|
||||
"value": [
|
||||
640,
|
||||
280,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/opacity",
|
||||
"time": 0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/opacity",
|
||||
"time": 1.25,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/opacity",
|
||||
"time": 1.35,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/scale",
|
||||
"time": 1.25,
|
||||
"value": [
|
||||
30,
|
||||
30,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/scale",
|
||||
"time": 1.45,
|
||||
"value": [
|
||||
74,
|
||||
74,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/scale",
|
||||
"time": 1.58,
|
||||
"value": [
|
||||
66.67,
|
||||
66.67,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/saturday_mornings/Mornings.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Mornings"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/opacity",
|
||||
"time": 0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/opacity",
|
||||
"time": 1.6,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/opacity",
|
||||
"time": 1.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/position",
|
||||
"time": 1.6,
|
||||
"value": [
|
||||
640.0,
|
||||
400.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/position",
|
||||
"time": 1.67,
|
||||
"value": [
|
||||
640.0,
|
||||
380.48,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/position",
|
||||
"time": 1.74,
|
||||
"value": [
|
||||
640.0,
|
||||
368.64,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/position",
|
||||
"time": 1.81,
|
||||
"value": [
|
||||
640.0,
|
||||
362.56,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/position",
|
||||
"time": 1.88,
|
||||
"value": [
|
||||
640.0,
|
||||
360.32,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/position",
|
||||
"time": 1.95,
|
||||
"value": [
|
||||
640.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sky",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sky",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Clouds",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Clouds",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Hills",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Hills",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 21 KiB |
@@ -0,0 +1,913 @@
|
||||
[
|
||||
{
|
||||
"command": "comp.new",
|
||||
"params": {
|
||||
"name": "sunday_mornings",
|
||||
"width": 1280,
|
||||
"height": 720,
|
||||
"frameRate": 30,
|
||||
"duration": 4.0,
|
||||
"background": "#56AAFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/sunday_mornings/Sky.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Sky"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Sky",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/sunday_mornings/Sun.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Sun"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 0.0,
|
||||
"value": [
|
||||
640.0,
|
||||
560.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 0.183,
|
||||
"value": [
|
||||
640.0,
|
||||
475.74,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 0.367,
|
||||
"value": [
|
||||
640.0,
|
||||
419.26,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 0.55,
|
||||
"value": [
|
||||
640.0,
|
||||
385.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 0.733,
|
||||
"value": [
|
||||
640.0,
|
||||
367.41,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 0.917,
|
||||
"value": [
|
||||
640.0,
|
||||
360.93,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/position",
|
||||
"time": 1.1,
|
||||
"value": [
|
||||
640.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/anchor",
|
||||
"value": [
|
||||
960,
|
||||
780,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/rotation",
|
||||
"time": 0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/rotation",
|
||||
"time": 4.0,
|
||||
"value": 14
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/sunday_mornings/Clouds.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Clouds"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Clouds",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Clouds",
|
||||
"path": "transform/position",
|
||||
"time": 0,
|
||||
"value": [
|
||||
600,
|
||||
360,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Clouds",
|
||||
"path": "transform/position",
|
||||
"time": 4.0,
|
||||
"value": [
|
||||
660,
|
||||
360,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/sunday_mornings/Hills.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Hills"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Hills",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/sunday_mornings/Ollie.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Ollie"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0,
|
||||
"value": [
|
||||
100,
|
||||
360,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.35,
|
||||
"value": [
|
||||
167.5,
|
||||
322.71843656131097,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.45,
|
||||
"value": [
|
||||
235.0,
|
||||
332.98147277795397,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.55,
|
||||
"value": [
|
||||
302.5,
|
||||
342.2991822682059,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.65,
|
||||
"value": [
|
||||
370.0,
|
||||
320.1534156465664,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.75,
|
||||
"value": [
|
||||
437.5,
|
||||
348.82338007204294,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.85,
|
||||
"value": [
|
||||
505.0,
|
||||
328.2532854460339,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 0.95,
|
||||
"value": [
|
||||
572.5,
|
||||
325.8160436764688,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/position",
|
||||
"time": 1.05,
|
||||
"value": [
|
||||
640,
|
||||
353.0269287510808,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/sunday_mornings/Zip.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Zip"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 0,
|
||||
"value": [
|
||||
-700,
|
||||
360,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 0.9,
|
||||
"value": [
|
||||
-700,
|
||||
360,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 1.02,
|
||||
"value": [
|
||||
764.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 1.14,
|
||||
"value": [
|
||||
1652.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 1.26,
|
||||
"value": [
|
||||
2108.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 1.38,
|
||||
"value": [
|
||||
2276.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Zip",
|
||||
"path": "transform/position",
|
||||
"time": 1.5,
|
||||
"value": [
|
||||
2300.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/sunday_mornings/Day.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Day"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/anchor",
|
||||
"value": [
|
||||
960,
|
||||
420,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/position",
|
||||
"value": [
|
||||
640,
|
||||
280,
|
||||
0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/opacity",
|
||||
"time": 0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/opacity",
|
||||
"time": 1.25,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/opacity",
|
||||
"time": 1.35,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/scale",
|
||||
"time": 1.25,
|
||||
"value": [
|
||||
30,
|
||||
30,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/scale",
|
||||
"time": 1.45,
|
||||
"value": [
|
||||
74,
|
||||
74,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/scale",
|
||||
"time": 1.58,
|
||||
"value": [
|
||||
66.67,
|
||||
66.67,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "file.import",
|
||||
"params": {
|
||||
"paths": [
|
||||
"/home/pauljd/Documents/OrbitTV/orbit-tv/design/channels/saturday-mornings/sources/sunday_mornings/Mornings.png"
|
||||
],
|
||||
"addToComp": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "layer.rename",
|
||||
"params": {
|
||||
"layer": "#1",
|
||||
"name": "Mornings"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.set",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/scale",
|
||||
"value": [
|
||||
66.6667,
|
||||
66.6667,
|
||||
100
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/opacity",
|
||||
"time": 0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/opacity",
|
||||
"time": 1.6,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/opacity",
|
||||
"time": 1.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/position",
|
||||
"time": 1.6,
|
||||
"value": [
|
||||
640.0,
|
||||
400.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/position",
|
||||
"time": 1.67,
|
||||
"value": [
|
||||
640.0,
|
||||
380.48,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/position",
|
||||
"time": 1.74,
|
||||
"value": [
|
||||
640.0,
|
||||
368.64,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/position",
|
||||
"time": 1.81,
|
||||
"value": [
|
||||
640.0,
|
||||
362.56,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/position",
|
||||
"time": 1.88,
|
||||
"value": [
|
||||
640.0,
|
||||
360.32,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/position",
|
||||
"time": 1.95,
|
||||
"value": [
|
||||
640.0,
|
||||
360.0,
|
||||
0.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sky",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sky",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Sun",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Clouds",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Clouds",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Hills",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Hills",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Ollie",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Day",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/opacity",
|
||||
"time": 3.75,
|
||||
"value": 100
|
||||
}
|
||||
},
|
||||
{
|
||||
"command": "prop.addKey",
|
||||
"params": {
|
||||
"layer": "Mornings",
|
||||
"path": "transform/opacity",
|
||||
"time": 4.0,
|
||||
"value": 0
|
||||
}
|
||||
}
|
||||
]
|
||||