JH19 Hamburg

This commit is contained in:
Daniel Molkentin 2019-09-12 13:22:12 +02:00
parent 474838c1c5
commit 5d956db53d
8 changed files with 13412 additions and 0 deletions

269
jh19-hh/__init__.py Normal file
View file

@ -0,0 +1,269 @@
#!/usr/bin/python3
from renderlib import *
from easing import *
from collections import deque
# Please EDIT this URL for each local event of Jugend hackt! ### URL to Schedule-XML
scheduleUrl = 'https://projects.alpaka.space/media/jhhh19-schedule.xml'
# For (really) too long titles
titlemap = {
}
personmap = {
}
taglinemap = {
}
def introFrames(parameters):
# 8 Sekunden
# 2 Sekunden Fadein logo und icongroup
frames = int(2*fps)
for i in range(0, frames):
yield (
('background', 'style', 'opacity', 1),
('logo', 'style', 'opacity', "%.4f" % easeInCubic(i, 0, 1, frames)),
('icongroup', 'style', 'opacity', "%.4f" % easeInCubic(i, 0, 1, frames)),
('alpaca', 'style', 'opacity', 0),
('text-bg', 'style', 'opacity', 0),
('projectname', 'style', 'opacity', 0),
('prenames', 'style', 'opacity', 0),
)
# 1 Sekunden Fadein alpaca und text-bg
frames = 1*fps
for i in range(0, frames):
yield (
('background', 'style', 'opacity', 1),
('logo', 'style', 'opacity', 1),
('icongroup', 'style', 'opacity', 1),
('alpaca', 'style', 'opacity', "%.4f" % easeInCubic(i, 0, 1, frames)),
('text-bg', 'style', 'opacity', "%.4f" % easeInCubic(i, 0, 1, frames)),
('projectname', 'style', 'opacity', 0),
('prenames', 'style', 'opacity', 0),
)
# 5 Sekunden Fadein #hack hack hack# projectname + prenames DIREKT einblenden, weil die Schriftart sich nicht faden lässt
frames = 5*fps
for i in range(0, frames):
yield (
('background', 'style', 'opacity', 1),
('logo', 'style', 'opacity', 1),
('icongroup', 'style', 'opacity', 1),
('alpaca', 'style', 'opacity', 1),
('text-bg', 'style', 'opacity', 1),
('projectname', 'style', 'opacity', 1),
('prenames', 'style', 'opacity', 1),
)
def outroFrames(parameters):
# 5 Sekunden
# 1 Sekunden Fadein logo
frames = int(1*fps)
for i in range(0, frames):
yield (
('background', 'style', 'opacity', 1),
('logo', 'style', 'opacity', "%.4f" % easeInCubic(i, 0, 1, frames)),
('licensegroup', 'style', 'opacity', 0),
('logogroup', 'style', 'opacity', 0),
)
# 1 Sekunden Fadein licensegroup
frames = 1*fps
for i in range(0, frames):
yield (
('background', 'style', 'opacity', 1),
('logo', 'style', 'opacity', 1),
('licensegroup', 'style', 'opacity', "%.4f" % easeInCubic(i, 0, 1, frames)),
('logogroup', 'style', 'opacity', 0),
)
# 1 Sekunden Fadein logogroup
frames = 1*fps
for i in range(0, frames):
yield (
('background', 'style', 'opacity', 1),
('logo', 'style', 'opacity', 1),
('licensegroup', 'style', 'opacity', 1),
('logogroup', 'style', 'opacity', "%.4f" % easeInCubic(i, 0, 1, frames)),
)
# 2 Sekunden stehen bleiben
frames = 2*fps
for i in range(0, frames):
yield (
('background', 'style', 'opacity', 1),
('logo', 'style', 'opacity', 1),
('licensegroup', 'style', 'opacity', 1),
('logogroup', 'style', 'opacity', 1),
)
def backgroundFrames(parameters):
# 20 Sekunden
# 10 Sekunden alpaca einblenden
frames = 10*fps
for i in range(0, frames):
yield (
('background', 'style', 'opacity', 1),
('alpaca', 'style', 'opacity', "%.4f" % easeInCubic(i, 0.25, 1, frames)),
)
# 10 Sekunden alpaca ausblenden
frames = 10*fps
for i in range(0, frames):
yield (
('background', 'style', 'opacity', 1),
('alpaca', 'style', 'opacity', "%.4f" % easeInCubic(i, 1, -0.75, frames)),
)
def insertFrames(parameters):
# 1 Sekunde Text Fadein
frames = 1*fps
for i in range(0, frames):
yield (
('insertbg', 'style', 'opacity', "%.4f" % easeLinear(i, 0, 1, frames)),
('name', 'style', 'opacity', "%.4f" % easeLinear(i, 0, 1, frames)),
('subtitle', 'style', 'opacity', "%.4f" % easeLinear(i, 0, 1, frames)),
)
# 3 Sekunden stehen lassen
frames = 3*fps
for i in range(0, frames):
yield ()
frames = 1*fps
for i in range(0, frames):
yield (
('insertbg', 'style', 'opacity', "%.4f" % easeLinear(i, 1, -1, frames)),
('name', 'style', 'opacity', "%.4f" % easeLinear(i, 1, -1, frames)),
('subtitle', 'style', 'opacity', "%.4f" % easeLinear(i, 1, -1, frames)),
)
def pauseFrames(parameters):
# 6 Sekunden
# 3 Sekunden alpaca einblenden
frames = 3*fps
for i in range(0, frames):
yield (
('pause', 'style', 'opacity', "%.4f" % easeInCubic(i, 1, -0.75, frames)),
('alpaca', 'style', 'opacity', "%.4f" % easeInCubic(i, 0.25, 0.75, frames)),
)
# 3 Sekunden alpaca ausblenden
frames = 3*fps
for i in range(0, frames):
yield (
('pause', 'style', 'opacity', "%.4f" % easeInCubic(i, 0.25, 0.75, frames)),
('alpaca', 'style', 'opacity', "%.4f" % easeInCubic(i, 1, -0.75, frames)),
)
def debug():
s1 = 'Abschlusspräsentation'
s2 = 'Teilnehmende von Jugend hackt Hamburg 2019'
render(
'intro.svg',
'../intro.ts',
introFrames,
{
'$PROJECTNAME': s1.upper(),
'$prenames': s2,
}
)
render(
'insert.svg',
'../insert_Hanno.mkv',
insertFrames,
{
'$TITLE': "Hanno",
'$SUBTITLE': "Jugend hackt Hamburg",
}
)
render(
'insert.svg',
'../insert_Julia.mkv',
insertFrames,
{
'$TITLE': "Julia",
'$SUBTITLE': "Moderatorin und Mentorin",
}
)
#
# render(
# 'outro.svg',
# '../outro.ts',
# outroFrames
# )
#
# render(
# 'background.svg',
# '../background.ts',
# backgroundFrames
# )
#
# render('pause.svg',
# '../pause.ts',
# pauseFrames
# )
def tasks(queue, args, idlist, skiplist):
# iterate over all events extracted from the schedule xml-export
for event in events(scheduleUrl):
#just select room Nord
if event['room'] not in ('betahaus'):
print("skipping room %s (%s)" % (event['room'], event['title']))
continue
# generate a task description and put them into the queue
projectname = event['title']
queue.put(Rendertask(
infile = 'intro.svg',
outfile = str(event['id'])+".ts",
sequence = introFrames,
parameters = {
# '$id': event['id'],
'$PROJECTNAME': projectname.upper(),
# '$subtitle': event['subtitle'],
'$prenames': event['personnames']
}
))
queue.put(Rendertask(
infile = 'insert.svg',
outfile = "insert_{}.mkv".format(projectname.replace("/", "_")),
parameters = {
'$TITLE': event['title'],
'$SUBTITLE': event['personnames'],
}
).animated(insertFrames))
# place a task for the outro into the queue
queue.put(Rendertask(
infile = 'outro.svg',
outfile = 'outro.ts',
sequence = outroFrames
))
# place a task for the outro into the queue
queue.put(Rendertask(
infile = 'outro.svg',
outfile = 'outro.ts',
sequence = outroFrames
))
# place the pause-sequence into the queue
queue.put(Rendertask(
infile = 'pause.svg',
outfile = 'pause.ts',
sequence = pauseFrames
))

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 137 KiB

View file

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 1920 1080"
version="1.1"
id="svg998"
sodipodi:docname="insert.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<defs
id="defs12" />
<metadata
id="metadata1002">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>insert</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1080"
id="namedview1000"
showgrid="false"
inkscape:zoom="1"
inkscape:cx="1301.0504"
inkscape:cy="278.99088"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg998"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="612,-308"
orientation="1,0"
id="guide2426"
inkscape:locked="false" />
</sodipodi:namedview>
<title
id="title6">insert</title>
<polygon
id="insertbg"
points="575,1040 1875,1040 1875,892.5 1875,843.3 1875,766.8 1798.2,843.3 575,843.3 "
style="fill:#00a5dd" />
<text
id="name"
y="922"
x="620"
style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 53.333332px; line-height: 125%; font-family: Ebisu; -inkscape-font-specification: &quot;Ebisu, Normal&quot;; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: normal; font-feature-settings: normal; text-align: start; letter-spacing: 0; word-spacing: 0; writing-mode: lr-tb; text-anchor: start; fill: #000; fill-opacity: 1; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:53.33333206px;font-family:Ebisu;-inkscape-font-specification:'Ebisu, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff"
y="922"
x="620"
id="tspan2418"
sodipodi:role="line">$TITLE</tspan></text>
<text
id="subtitle"
y="982"
x="620"
style="font-style: normal; font-variant: normal; font-weight: normal; font-stretch: normal; font-size: 42.666668px; line-height: 125%; font-family: Ebisu; -inkscape-font-specification: Ebisu; letter-spacing: 0; word-spacing: 0; fill: #000; fill-opacity: 1; stroke: none; stroke-width: 1px; stroke-linecap: butt; stroke-linejoin: miter; stroke-opacity: 1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:37.33333206px;font-family:Ebisu;-inkscape-font-specification:'Ebisu, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#ffffff"
y="982"
x="622"
id="tspan2422"
sodipodi:role="line">$SUBTITLE</tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

3020
jh19-hh/artwork/intro.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 562 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 17 KiB

1703
jh19-hh/artwork/outro.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 440 KiB

4142
jh19-hh/artwork/pause.svg Normal file

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 138 KiB

View file

@ -0,0 +1,18 @@
#intro - Ablaufreihenfolge
#Variablen:
- #background zu sehen
- #logo + #icongroup einblenden (2 Sek)
- #alpaca + #text-bg einblenden (2 Sek)
- Sofort #projectname + #prenames zeigen und stehen lassen (Problem beim FadeIn da LED-Schriftart = nichtmehrmeinfreund!) (5 Sek)
------------------------------------------
=> 8 Sekunden
#outro - Ablaufreihenfolge
- #background zu sehen
- #logo einblenden (1 Sek)
- #licensegroup einblenden (1 Sek)
- #logogroup einblenden (1 Sek)
- alles zeigen (2 Sek)
------------------------------------------
=> 5 Sekunden