Sign In To Proceed 2z1z44

Don't have an ? 5p1p6t

osu! to create your own !
forum

[Official Specifications] Storyboarding by Scripting 6l6921

posted
Total Posts
118
Topic Starter
Storyboarding by Scripting

In the .osu file, under [Events]:
Note: underscores can be replaced with spaces.

Sprites and Animations

The size of the active playfield is 640 pixels wide by 480 pixels high. For static background images/effects, it is best to limit images to these dimensions.

Static Sprite:
Sprite,"layer","origin","filepath",x,y
_event, easing, starttime, endtime, [params]
_event, [...]
_event, [...]

Animation:
Animation,"layer","origin","filepath",x,y,frameCount,frameDelay,looptype
_event,easing,starttime,endtime,[params]
_event, [...]
_event, [...]

For animations, specify a filename like "sliderball.png", and name your files "sliderball0.png" to "sliderball9.png" for a 10 frame animation.

frameCount: number of frames in the animation
frameDelay: delay in milliseconds between each frame.
looptype: LoopForever by default
LoopForever - Loops over and over again
LoopOnce - Loops once and stops on last frame.

Z-order (back to front) is determined by the order the files appear in the .osu file. The first storyboard event will be behind everything else, ie. if storyboard event 'A' is above storyboard event 'B', 'B' will be on top of 'A'.

layer:
Background
Fail

Foreground
Note: Background and Foreground are always visible.

origin:
TopLeft
TopCentre
TopRight
CentreLeft
Centre
CentreRight
BottomLeft
BottomCentre
BottomRight

All Rotations and Size changes (Including Vector Scaling) are affected by origin.

filepath: relative path of the image file (should be in the same directory as the .osu file)
Note: file path must be in double quotes if it has spaces in the filename

x, y: the position of the image
Note: (0,0) is the top left corner while (640,480) is the bottom right corner.

For each of the event types below, the initial value(s) of that event will assume the first assignment given to that event.

event type:
F - fade
M - move
S - scale
V - vector scale (width and height separately)
R - rotate
C - colour
L - loop
T - Event-triggered loop
P - Parameters

easing:
0 - none
1 - start fast and slow down
2 - start slow and speed up

starttime, endtime: the times in milliseconds between which the event will be animated

params:
_F,[...],startopacity,endopacity
startopacity: the opacity at the beginning of the animation
endopacity: the opacity at the end of the animation
0 - invisible, 1 - fully visible

_M,[...],startx,starty,endx,endy
startx, starty: the position at the beginning of the animation
endx, endy: the position at the end of the animation
Note: the size of the play field is (640,480), with (0,0) being top left corner.

_S,[...],startscale,endscale
startscale: the scale factor at the beginning of the animation
endscale: the scale factor at the end of the animation
1 = 100%, 2 = 200% etc. decimals are allowed.

_V,[...],startx,starty,endx,endy
startx, starty: the scale factor at the beginning of the animation
endx, endy: the scale factor at the end of the animation
1 = 100%, 2 = 200% etc. decimals are allowed.

_R,[...],startangle,endangle
startangle: the angle to rotate by in radians at the beginning of the animation
endangle: the angle to rotate by in radians at the end of the animation
positive angle is clockwise rotation

_C,[...],r1,g1,b1,r2,g2,b2
r1, g1, b1: the starting component-wise colour
r2, g2, b2: the finishing component-wise colour

sprites with (255,255,255) will be their original colour. sprites with (0,0,0) will be totally black. anywhere in between will result in subtractive colouring. to make full use of this, brighter greyscale sprites work very well.

_MX,[...],startx,endx

startx: the x position at the beginning of the animation
endx: the x position at the end of the animation

_MY,[...],starty,endy

starty: the y position at the beginning of the animation
endy: the y position at the end of the animation

_P,[...],p
p: the effect parameter to apply
H - horizontal flip
V - vertical flip
A - additive-blend colour (as opposed to alpha-blend)

using the shorthand below with parameters is possible. the applied parameters will take effect during the duration specified only.

shorthand:
This notation can be used to quickly script a large number of the same kind of event over the same time span.
_event,easing,starttime,endtime,val1,val2,val3,...,valN
would create events:
_event,easing,starttime,endtime,val1,val2
_event,easing,starttime + duration,endtime + duration,val2,val3
_event,easing,starttime + 2duration,endtime + 2duration,val3,val4
etc.

shorthand2:
This notation can be used when the start and end time of the event is the same.
_M,0,1000,1000,320,240,320,240
becomes
_M,0,1000,,320,240,320,240
Please note the blank space in the endtime field - this is required.

shorthand3:
This notation can be used when the start and end values of the event are the same.
_M,0,1000,,320,240,320,240
becomes
_M,0,1000,,320,240

Looping

Standard Loops:
Loops can be defined to repeat a set of events constantly for a set number of iterations.

_L,starttime,loopcount
__event, [...]
__event, [...]

starttime: the time of the first loop's start.
loopcount: number of times to repeat the loop.

Note that events inside a loop should be timed with a zero-base. This means that you should start from 0ms for the inner event's timing and work up from there. The loop event's start time will be added to this value at game runtime.

_L,starttime,loopcount
__event, [...]
__event, [...]

Trigger Loops:

Trigger loops can be used to trigger animations based on play-time events. Although called loops, trigger loops only execute once when triggered.

_T,triggerName,start,end
__event, [...]
__event, [...]

start: When the trigger is valid
end : When the trigger stops being valid

Current triggers ed are:
HitSoundClap
HitSoundFinish
HitSoundWhistle
ing (transition from fail state to state)
Failing (transition from state to fail state)

Trigger loops are zero-based similar to normal loops. If two overlap, the first will be halted and replaced by a new loop from the beginning.
If they overlap any existing storyboarded events, they will not trigger until those transformations are no in effect.

Sound effects

Sample,time,layer,"filepath",volume

time: the time in milliseconds to start playing the sound effect

layer:
Background = 0
Fail = 1
= 2
Foreground = 3

filepath: relative path of the sound file (should be in the same directory as the .osu file)
Note: file path must be in double quotes

volume: volume of the sound file. (1-100) Can be left off for 100.

Variables

Primitive for variables is now available. You can define any number of variables by includin a [Variables] section in the .osb file (currently not ed in .osu-specific storyboarding).

[Variables]
$white=255,255,255

Once you define variables, you can use them *anywhere* in the storyboard. This means you can have a variable containing as much as a whole line.
Please don't make variable too small for the moment (ie. don't assign $var=1) because the editor is not smart enough to know where to put variables when it saves. All occurrences of the variables will currently be replaced at save time (so if you have one place you used $white and another you used 255,255,255 they will both become $white after a save in the editor).
looking forward on it. Waiting for the release
I have no idea what this means, but somebody do some storyboard pls.

Rolled wrote: 6o6o42

I have no idea what this means, but somebody do some storyboard pls.
afaik peppy's working on one, and I will be when I find the time.
I'm bit of an artist myself and once I find out how to work this storyboard thing, I'll get to work on making storyboards for my beatmap, maybe sometime later, I'll may volunteer to make some for the folks as well!
This is my DA where I some of my artwork on. ----> http://pani-poni-tenshi.deviantart.com

~Ao Tenshi
Maybe since there's more beatmaps than artists out there, you could pick what songs you like and ask the creator if it's ok to make a storyboard for it. I'm sure most will be pretty happy to have you storyboard for them.
*pops a dunce cap on my head*
Anyone mind splainin' what a storyboard for Osu! is?
But no group?! Ooh...

Well.. I think there should be many clip to made. Like this:

Starring
Part1_50
Part1_100
Part1_300
Part1_
Part1_fail
Part2_50
.
.
.
Part4_fall
Ending_Good
Ending_Normal
Ending_Bad
Topic Starter
@pokedigi:

There's not really a point in making all that available because no one will be bothered to make it. Afaik, the original only has 'ing-excellent', 'ing-average', failing (these three during gameplay), /fail animations for each break/section, and good/bad endings.

With the current system, the only thing missing is the distinction between 'ing-excellent' and 'ing-average'.

@celsius:

The animations on the top screen in the original games for DS.
Updated specs to include looping and shorthand.
One other question...
What do I have to do to be able to write script or where to start, Is there anything special I need to before I can begin writing the script?

~AO Tenshi
Just a text editor. Open up your .osu file and type away!
Topic Starter
You'll need test build to be able to see the storyboard, I think... not sure if public has it implemented yet.

Ask peppy for test on irc if public doesn't work, I'm sure he'll give it to you.

Echo49 wrote: 1u1h4s

You'll need test build to be able to see the storyboard, I think... not sure if public has it implemented yet.

Ask peppy for test on irc if public doesn't work, I'm sure he'll give it to you.
Public has all but looping and shorthand events. But yeah - me for test build.
Topic Starter
This is an example of what you can achieve with storyboarding (+ a lot of time):
http://www.youtube.com/watch?v=Q6wKUlmFsAY
Good job on the intro echo ;).

* Added colour events to specs.
This map has been deleted on the request of its creator. It is no longer available.
Added parameters event to specification (for horizontal and vertical flipping only at the moment).
Neat..

Hey can you add video in just like the .png files?

So..

4,0,1,"SliderDemo1.wmv",320,320
S,0,40500,40500,0.6,0.6
F,0,38000,38400,0,1

I just checked and it won't work.. can you add video though?
Best not to - video currently has issues on a lot of people's systems and therefore i would like to keep it totally independent of storyboarding
Better checking Loop Saving
An example of what goes wrong would be great :).
Call me an idiot for not being able to figure this out...anyone wanna help me?

I'll right down what I want, and hopefully one of you can script it for me. Below I will post 3 times at which I want an image to pop up briefly and then disappear. It's the same image.

[pop up - disappear]
02.27.02 - 02.27.28
02.27.53 - 02.27.79
02.28.05 - 02.28.31

So script this, how would it be done?

EiJi wrote: 2p1i27

Call me an idiot for not being able to figure this out...anyone wanna help me?

I'll right down what I want, and hopefully one of you can script it for me. Below I will post 3 times at which I want an image to pop up briefly and then disappear. It's the same image.

[pop up - disappear]
02.27.02 - 02.27.28
02.27.53 - 02.27.79
02.28.05 - 02.28.31

So script this, how would it be done?
4,0,1,"image.png",x,y
_F,0,147020,147020,1,1
_F,0,147280,147280,0,0
_F,0,147530,147530,1,1
_F,0,147790,147790,0,0
_F,0,148050,148050,1,1
_F,0,148310,148310,0,0
This map has been deleted on the request of its creator. It is no longer available.

awp wrote: 2bo4d

you can leave x and y in the sprite's instantiation and it won't throw a parse error? Did not know that. I just sometimes threw in spurious numbers, myself.
uh, that was just a template.
Added animation specs.
Flipping doesn't work, and rotating while moving = Cerebral Pares-attack.
Also, Weegee versus Michael Jackson. Who will win this battle of crappy animations? Is Weegee truly just another part of MJ? Stay tuned to find out.

er wrote: 556p1y

Flipping doesn't work, and rotating while moving = Cerebral Pares-attack.
Flipping does work because Echo and I have both tested successfully. Can you give a specific example?

Rotating while moving should also be fine - as long as you set the sprite to centre-based origin.

peppy wrote: 73101g

er wrote: 556p1y

Flipping doesn't work, and rotating while moving = Cerebral Pares-attack.
Flipping does work because Echo and I have both tested successfully. Can you give a specific example?

Rotating while moving should also be fine - as long as you set the sprite to centre-based origin.
"
Oh. :/
How will the storyboards be implemented? Will they be playing during all the song or only during the pauses? (I want the 3D dancers! :P )
Both.

3d images? If you got them...
ooooOOOO! This looks very nice (a little complicated tho....-_-) We CAN use video witht his it's just not recommended right? I'm thinking of trying storyboarding with my beatmap (Believe)
Topic Starter
Afaik video doesn't work. You can use multi-image animation though.
You can storyboard on top of a video. ner did a little bit of that with his Dodongo map, and peppy did it with his m-flo one.
awwwww....I hope that gets implemented in the future, I was going to use the videos from the actual ouendan and storyboard them.....o well....
Loading videos during gameplay is something I'd REALLY like to avoid. This will likely cause lag as ffdshow/insertcodecnamehere reads the video into memory, and will then need to re-seek to get the syncing correct.
sigh, guess i'll have to learn how to do all those funky animations that they have on ouendan (oh gosh)
The scripting language is a little complicated tho?
Eh, it's not that complicated. Just a lot of copypasta.

meh, we'll see

LuigiHann wrote: 2d2q2h

You can storyboard on top of a video. ner did a little bit of that with his Dodongo map, and peppy did it with his m-flo one.
NONE mispells my mame and getts away wit it. :[ *charges lasorz*
Calm down, lolginer. Save it for the battlefield. The battlefield in which you will end them all.
This map has been deleted on the request of its creator. It is no longer available.
Questions:
1. Can I storyboard "fail" only?
2. Can I add strobes during fail part of storyboard?
3. If the answer to 1 and 2 are both "yes", brief explanation pls.

James wrote: 5d1rc

Questions:
1. Can I storyboard "fail" only?
2. Can I add strobes during fail part of storyboard?
3. If the answer to 1 and 2 are both "yes", brief explanation pls.
Yes and yes. The second digit of any object is the "layer" digit. "Fail" is layer 1. So just make sure your strobe starts something like this (notice that the second number is 1):

4,1,0,"white.png",0,0

And follow the rest of the strobe tutorial normally. That'll put your strobe in the "fail" layer.
Thanks.
Got it working now.

Got one question.

Can the "fail" storyboard be activated whenever the player reaches x hp instead of having it activated whenever a player got a 100/50/X?

James wrote: 5d1rc

Thanks.
Got it working now.

Got one question.

Can the "fail" storyboard be activated whenever the player reaches x hp instead of having it activated whenever a player got a 100/50/X?
Currently no, it'd have to be a feature request if you want that option.
How do I kick the video back a second, because the music and the video to it aren't matching up correctly?
open your .osb or .osu file, find the entry with the video, and edit the second field.

awp wrote: 2bo4d

open your .osb or .osu file, find the entry with the video, and edit the second field.
Partly incorrect. Check the design mode for a slidebar which will let you adjust the offset.

peppy wrote: 73101g

awp wrote: 2bo4d

open your .osb or .osu file, find the entry with the video, and edit the second field.
Partly incorrect. Check the design mode for a slidebar which will let you adjust the offset.
Is dat in publix? I haven't actually checked myself. Neat, though.
Just curious, is it possible to storyboard on top of everything, including notes and the like?

Tapdancingmetroid wrote: 3r42u

Just curious, is it possible to storyboard on top of everything, including notes and the like?
No. The top storyboard layers is still below all gameplay layers.
I decided to let me (tired from work) brain help me figure out how the code works. After experimenting with the Move, Loop, Fade and Scale events, I was able to create a tiny scene of my intro.

Hello there. I heard about this from Scott Roomsair's website and I was eventually led here. I was so inspired to create my beat map after just sampling the delights of osu!

Back to the topic, I'll look forward in completing the intro of my beatmap because I feel so excited to finish it because of what I have finally learned. I also need to check out actual Ouendan and EBA footage to see how the speech balloons are drawn and how they "shake."

Nice to be part of the osu! family. Looking forward to enjoying this game! :D

P.S. I never played any of the original versions of this game, so this makes osu! my official first game in this genre of rhythm games!



This map has been deleted on the request of its creator. It is no longer available.



San d'Oria for life

K2J, I don't understand what the concern is. Storyboards should look the same on every computer.
This map has been deleted on the request of its creator. It is no longer available.
Oh wow, scripting seems kinda advanced for me but I want to give it a try. But I need it explained into simpler . I want to make a map kind of like paraparamax where the background pictures change at a certain point and less shorter. I'm seeing numbers all over tha place.
Example in the paraparamax file
4,0,0,"evangelion_20_640.jpg",0,0 <--- What's that 4 at the beginning for?
F,0,23280,24050,0,1 <--- F must mean fade, are 23280,24050 the offsets? and the 0's and 1 the x,y value thingymajig? Yes, it does. According to the first post
F,0,219970,221300,1,0 <----- So why is there a second line here? What is this for? Or do I even need this line. (Main Question)


This is what I have so far.
//Storyboard Layer 0 (Background)
0,0,"Remilia and Flandre.jpg" <---- Yeah I know, it's nothing. But what should I add to it. That 4 at the beginning?


Edit: Ah ok, After much study, I've begun to learn how it works
Which takes me to:
//Storyboard Layer 0 (Background)
4,0,0,"Remilia and Flandre.jpg",0,0
F,1,41433,96988,0,1
4,0,0,"Remila-Flandre-Sakuya.jpg",0,0
F,1,97155,122988,0,1 blah blah
But now the pictures are slowly fading in, and the full colored picture displays when it's about to end and go on to the next picture. What can I do to make the fade ins faster, if possible?

Mafiamaster wrote: 71v2s

Example in the paraparamax file
4,0,0,"evangelion_20_640.jpg",0,0 <--- What's that 4 at the beginning for?
The 4 means it's a sprite. I actually forget what 1, 2 and 3 are, but 5 is sound.

Mafiamaster wrote: 71v2s

F,0,23280,24050,0,1 <--- F must mean fade, are 23280,24050 the offsets? and the 0's and 1 the x,y value thingymajig?
Yes @ offsets, no @ x,y. The 0 and 1 are INITIALFADE and ENDFADE. 0 means completely transparent, 1 means completely transparent. In this case, the image is taking approximately 800ms to FADE IN.

Mafiamaster wrote: 71v2s

F,0,219970,221300,1,0 <----- So why is there a second line here? What is this for? Or do I even need this line. (Main Question)
Now the image is fading out, so it doesn't just instantly disappear.


Mafiamaster wrote: 71v2s

This is what I have so far.
//Storyboard Layer 0 (Background)
0,0,"Remilia and Flandre.jpg" <---- Yeah I know, it's nothing. But what should I add to it. That 4 at the beginning?
Yes, and the x and y co-ords of the image following the filename.


Mafiamaster wrote: 71v2s

Edit: Ah ok, After much study, I've begun to learn how it works
Which takes me to:
//Storyboard Layer 0 (Background)
4,0,0,"Remilia and Flandre.jpg",0,0
F,1,41433,96988,0,1
4,0,0,"Remila-Flandre-Sakuya.jpg",0,0
F,1,97155,122988,0,1 blah blah
But now the pictures are slowly fading in, and the full colored picture displays when it's about to end and go on to the next picture. What can I do to make the fade ins faster, if possible?
You currently have the offsets for the fade-in at 41433 and 96988. That means it's going to take approximately 55 seconds to fade in (96988 - 41433 = time to get from 0 to 1). If you want it to fade in faster - let's say you want it to take 2 seconds to fade in. With your first offset at 41433, your second offset will be 43433 (That's your initial offset + 2000ms aka 2 seconds)

There is extensive, coherent (imo) documentation in this thread which, ironically, is this thread.
Oh! That really helped me out. Thanks! Now I need to find pictures that actually go with the song. xD
Ok, I want an audio file to play at the end so that it doesn't cut off my video, but it doesn't play at all. :(

Here's the code stuff:

[Events]
//Background and Video events
1,0,"my video.wmv"
//Break Periods
2,78481,88931
2,153830,163931
//Storyboard Layer 0 (Background)
//Storyboard Layer 1 (Failing)
//Storyboard Layer 2 (ing)
//Storyboard Layer 3 (Foreground)
//Storyboard Sound Samples
5,332060,2,".wav"
5,332060,1,"fail.wav"
//Background Colour Transformations
3,100,163,162,255

I double checked and triple checked the code and even had someone else check the code for me. Everything is in the Song file and everything is titled correctly. I am completely stumped as to why it does not work :|
All I want is for the audio to at least play so that my video doesn't get cut off at the end.
Maybe I'll put in a pic if I get this whole thing sorted out.
Sounds might not be considered for automatic storyboard outros. Try adding an invisible image at 332060 milliseconds in.
How would you do that?
Last time I tried to add an image it became corrupted, I don't think that I did it right.

... ok, can somebody help me out?

Is this right? (I just added the circle and the x as the ing and failing pics)


[Events]
//Background and Video events
1,0,"my video.wmv"
//Break Periods
2,78481,88931
2,153830,163931
//Storyboard Layer 0 (Background)
//Storyboard Layer 1 (Failing)
4,1,1,"fail.png",240,360
F,2,332060,333630,0,1
//Storyboard Layer 2 (ing)
4,2,1,".png",240,360
F,2,332060,333630,0,1
//Storyboard Layer 3 (Foreground)
//Storyboard Sound Samples
5,332060,2,".wav"
5,332060,1,"fail.wav"
//Background Colour Transformations
3,100,163,162,255


Is that right?
Sort of. Your /fail graphics will instantly vanish once they reach 100% visibility but it oughta push the outro to the audio.
Ok, a problem came up, when I put the code in and when I went into my beatmap, osu closed down and it said that an error occurred. What's going on here??? :o
This map has been deleted on the request of its creator. It is no longer available.
But you said that the code should work. I don't know why but when I remove the code it works just fine...
Ah, never mind, I suck at this stuff anyway...

Magmabear wrote: 315n3v

But you said that the code should work. I don't know why but when I remove the code it works just fine...
Ah, never mind, I suck at this stuff anyway...
You need to put _ before the F's
Hm... ok, it got rid of the error, but it still doesn't work. Nothing shows up.
Ugh...
This map has been deleted on the request of its creator. It is no longer available.
This map has been deleted on the request of its creator. It is no longer available.
Ah! no, sorry, I forgot that I didn't include the fail stuff because I kinda' gave up on it and I didn't include it in the .
Well, anyway... yeah...
Thank you for learning me the secrets of the Storyboard.
<3

Remco32 wrote: 3u4n3a

Thank you for teaching me the secrets of the Storyboard.
This map has been deleted on the request of its creator. It is no longer available.
That would be Kiai Time, it's not done via storyboarding but via timing sections. Place a new timing section where you want Kiai time to start and a section where you want it to stop. Mark both sections as "Inherit timing" then go to the Style tab in the Timing Setup , select the starting section and check the Kiai Time box
This map has been deleted on the request of its creator. It is no longer available.
This map has been deleted on the request of its creator. It is no longer available.
0 and 3 works the same XD. when i tested it.
Oh well. thx.
Larto's Disturbia map uses elements from the skin in the storyboard.

I tried doing this myself but scripting a "cursor.png" results in nothing. I tried other skin elements and it still fails.

Is there a switch I need to toggle or something to activate this?

(Similar to what WyndII wanted.)
This map has been deleted on the request of its creator. It is no longer available.

LuigiHann wrote: 2d2q2h

UseSkinSprites: 1

under [General]

Only works for images as far as I know.
Thank you! *star*
This map has been deleted on the request of its creator. It is no longer available.
show more
Please sign in to reply.

New reply 3p1g1j