1C2: Initial intro version

This commit is contained in:
Florian Zeitz 2015-05-13 23:40:37 +02:00
parent d45e649e34
commit 62306c84e5
2 changed files with 182 additions and 0 deletions

102
1c2/__init__.py Normal file
View file

@ -0,0 +1,102 @@
#!/usr/bin/python3
from renderlib import *
from itertools import zip_longest
def introFramesLight(p):
frames = int(1.5*fps)
max_opac = 0.7
while True:
for i in range(0, frames):
yield [
('one', 'style', 'stroke-opacity', '{:.4f}'.format(easeLinear(i, 0, max_opac, frames)))
]
for i in range(0, frames):
yield [
('one', 'style', 'stroke-opacity', '{:.4f}'.format(easeLinear(frames-i, 0, max_opac, frames))),
('cee', 'style', 'stroke-opacity', '{:.4f}'.format(easeLinear(i, 0, max_opac, frames)))
]
for i in range(0, frames):
yield [
('cee', 'style', 'stroke-opacity', '{:.4f}'.format(easeLinear(frames-i, 0, max_opac, frames))),
('two', 'style', 'stroke-opacity', '{:.4f}'.format(easeLinear(i, 0, max_opac, frames)))
]
for i in range(0, frames):
yield [
('two', 'style', 'stroke-opacity', '{:.4f}'.format(easeLinear(frames-i, 0, max_opac, frames)))
]
def introFramesDot(p):
frames = 10*fps
steps = [
(5, 0, 159),
(33, -848, 159),
(37, -848, 53),
(40, -742, 53),
(43, -742, -106),
(45, -795, -106),
(47, -795, -212),
(49, -742, -212),
(51, -742, -265),
(56, -583, -265),
(58, -583, -212),
(63, -424, -212),
(65, -424, -265),
(75, -106, -265),
(77, -106, -212),
(81, 0, -212),
(86, 0, -53),
(93, 0, 0),
(100, 0, 0)
]
prev = (0, 0, 0)
for step in steps:
dur = int((step[0] - prev[0]) * frames / 100)
for i in range(0, dur):
yield [
('dot1', 'attr', 'transform', 'translate({:.4f}, {:.4f})'.format(easeLinear(i, prev[1], step[1]-prev[1], dur),
easeLinear(i, prev[2], step[2]-prev[2], dur)))
]
prev = step
def introFrameText(p):
frames = 2*fps
for i in range(0, frames):
yield [
('text', 'style', 'opacity', '{:.4f}'.format(easeLinear(i, 0, 1, frames)))
]
def introFrames(p):
for e in zip_longest(zip(introFramesDot(p), introFramesLight(p)), introFrameText(p), fillvalue=[('text', 'style', 'opacity', '1')]):
yield e[0][0] + e[0][1] + e[1]
def outroFrames(p):
# 5 Sekunden stehen bleiben
frames = 1*fps
for i in range(0, frames):
yield []
def debug():
render(
'intro.svg',
'../intro.ts',
introFrames,
parameters={
'$id': 4711,
'$title': 'D\'r Dom',
'$subtitle': 'Hauptbahnhof',
'$personnames': 'Tünnes und Schäl'
}
)
# render(
# 'outro.svg',
# '../outro.ts',
# outroFrames
# )
def tasks(queue):
raise NotImplementedError('call with --debug to render your intro/outro')

80
1c2/artwork/intro.svg Normal file
View file

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="1920"
height="1080">
<style
type="text/css"
id="style4">
path { fill: #000; stroke-width: 106px; stroke-opacity: 0 }
#bg { fill: #fff }
#one, #cee, #two {
animation-duration: 5s;
animation-iteration-count: infinite;
}
#one {
stroke: #f00;
animation-name: red;
}
#cee {
stroke: #0f0;
animation-name: green;
}
#two {
stroke: #66f;
animation-name: blue;
}
#dot1 {
fill: #f0f;
animation: dotwalk 23s linear 5s infinite alternate;
}
</style>
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect3348"
width="1922"
height="1082"
x="-1"
y="-1" />
<g
id="g3346"
transform="translate(5e-6,-9.716398)">
<rect
height="530"
width="1430"
y="144.84746"
x="245"
id="bg" />
<path
d="m 244.49999,462.84746 106.00001,0 0,-106 -53,0 0,-159 53,0 0,-53 212,0 0,53 106,0 0,-53 371,0 0,53 106,0 0,-53 424,0 0,53 53,0 0,53 53,0 0,-182.203392 -1431,0 z"
id="top-border" />
<path
d="m 1092.5,409.84746 53,0 0,53 -53,0 z"
id="dot1" />
<path
d="m 1622.5,462.84746 53,0 0,53 -53,0 z"
id="dot2" />
<path
d="m 350.5,250.84746 53,0 0,-53 106,0 0,318 106,0 0,53 -318,0 0,-53 106,0 0,-212 -53,0 z"
id="one" />
<path
d="m 668.5,250.84746 53,0 0,-53 264.99999,0 0,53 53.00001,0 0,53 -106,0 0,-53 -159,0 0,265 159,0 0,-53 106,0 0,53 -53.00001,0 0,53 -264.99999,0 0,-53 -53,0 z"
id="cee" />
<path
d="m 1145.5,356.84746 0,-106 53,0 0,-53 265,0 0,53 53,0 0,106 -53,0 0,53 -53,0 0,53 -53,0 0,53 212,0 0,53 -424,0 0,-53 53,0 0,-53 53,0 0,-53 53,0 0,-53 53,0 0,-53 53,0 0,-53 -159,0 0,106 z"
id="two" />
<path
d="m 244.49999,755.08476 1431.00001,0 0,-80.2373 -530,0 0,-53 -53,0 0,53 -795,0 0,-53 -53,0 z"
id="bottom-border" />
</g>
<flowRoot
xml:space="preserve"
id="text"
style="font-size:60px;line-height:125%;font-family:'DejaVu Sans';text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none" transform="translate(958.0,764.6)">
<flowPara id="flowPara4170" style="font-weight:bold">1. Chaos Cologne</flowPara>
<flowPara style="fill:#66f" id="flowPara4172">$personnames</flowPara>
<flowPara style="fill:#0f0" id="flowPara4174">$title</flowPara>
<flowPara style="fill:#f00" id="flowPara3357">$subtitle</flowPara>
</flowRoot>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB