Fading in text in the message box

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
Message
Author
User avatar
Samu-kun
King of Moé
Posts: 2262
Joined: Mon Sep 03, 2007 3:49 pm
Organization: Love in Space Inc
Location: United States
Contact:

Fading in text in the message box

#1 Post by Samu-kun » Fri Feb 26, 2010 11:02 am

You know how in Novelty and in a bunch of other recent commercial gal games, the text fades in slowly as it appears on the message box? Would it be possible to get the same effect in renpy?

This is a demonstration of what I mean.

http://www.youtube.com/watch?v=nFVRLlPEL3o

User avatar
Samu-kun
King of Moé
Posts: 2262
Joined: Mon Sep 03, 2007 3:49 pm
Organization: Love in Space Inc
Location: United States
Contact:

Re: Fading in text in the message box

#2 Post by Samu-kun » Sun Feb 28, 2010 12:26 am

I suppose I can take the non-answer to mean "no, it's not possible." =_=;

Any chance this will be possible once OpenGL is implemented?

User avatar
PyTom
Ren'Py Creator
Posts: 15548
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: Fading in text in the message box

#3 Post by PyTom » Sun Feb 28, 2010 1:31 am

Oh, sorry.

Right now, it isn't possible. I don't think there's a critical dependency on OpenGL here, but I would need to modify the Text object to make this work. I could consider adding this in the future.

The slow text mode is one that I personally don't use, so I'd invite feedback from people who use it as to how it could be made better, before I go and change it. To me, it seems that the purpose of it is to delay people's reading, for some purpose... perhaps to give people more time to appreciate each word. (I'm not 100% sure this is the purpose.)

I'm kinda wondering if there's a better approach then Ren'Py's current mode (which emulates a typewriter), and the alternative "gradient fade" mode. In both cases, words spend a lot of time with incorrect shapes as they come onto the screen. I wonder if a better idea might be to fade in entire words, which would allow the user to read them as a unit, which I think is the way people read.

Anyone have thoughts on this topic?
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
"Silly and fun things are important." - Elon Musk
Software > Drama • https://www.patreon.com/renpytom

User avatar
duanemoody
Regular
Posts: 100
Joined: Fri Oct 02, 2009 2:32 pm
Projects: American Jurassic
Organization: Pier 7 Media
Location: Arizona
Contact:

Re: Fading in text in the message box

#4 Post by duanemoody » Sun Feb 28, 2010 1:42 am

Samu-kun wrote:Any chance this will be possible once OpenGL is implemented?
OpenGL is a library for passing off things that could be done in CPU to a GPU. It doesn't necessarily make things possible that were not possible beforehand, it just makes some of them faster because something else is handling them.
PyTom wrote:Anyone have thoughts on this topic?
Just to make your life even more wonderful, I have a Japanese ADV where the characters not only fade in from left to right, but actually float up from nothingness from the emptiness below. I'm not asking for this any time soon, btw, but if it catches on you might find other people asking the same.

User avatar
Samu-kun
King of Moé
Posts: 2262
Joined: Mon Sep 03, 2007 3:49 pm
Organization: Love in Space Inc
Location: United States
Contact:

Re: Fading in text in the message box

#5 Post by Samu-kun » Sun Feb 28, 2010 1:55 am

I like it because I set the text scroll speed roughly 90% of full speed and the text looks a lot prettier when it appears. I was checking out ToHeart 2, which uses the same effect, and it looks more aesthetically pleasing than the standard typewriter effect. I don't think it makes the text any harder to read, at least from what I'm getting from reading the translated bits of ToHeart.
OpenGL is a library for passing off things that could be done in CPU to a GPU. It doesn't necessarily make things possible that were not possible beforehand, it just makes some of them faster because something else is handling them.
Yeah, I know that, I just asked because I wondered if handling the alpha on the fading text would be too hardware intensive on renpy right now.

User avatar
Jake
Support Hero
Posts: 3826
Joined: Sat Jun 17, 2006 7:28 pm
Contact:

Re: Fading in text in the message box

#6 Post by Jake » Mon Mar 01, 2010 7:30 am

PyTom wrote: Anyone have thoughts on this topic?
The approach I used on the engine Star Story Saga: Renaissance uses was for text (so far as the display engine was concerned) to be just another drawable entity just like any other drawable entity, so it was possible to apply any of the various effects (transitions, animations, etc.) to the text that you could apply to any other drawable. So if you liked (and cared to code it), each individual letter could spiral inwards anti-clockwise from outside of the screen while simultaneously fading in, then after it was in-place pulsate in size and cycle between red and green tinting.

Then I set it up so the whole sentence appeared at once instantly because it seemed like the easiest way to read it and I couldn't be bothered to code anything more fancy inside the NaNo deadline.
Samu-kun wrote: Yeah, I know that, I just asked because I wondered if handling the alpha on the fading text would be too hardware intensive on renpy right now.
Honestly, if the fade-in on text was too hardware-intensive for Ren'Py right now, things like fade-in on comparatively-gigantic character sprites would totally kill it. Software-graphics speed concerns generally scale very linearly by the number of pixels you're affecting.

pinkmouse
Regular
Posts: 169
Joined: Wed Jun 10, 2009 7:47 am
Projects: A renpy beginner - test projects only atm
Contact:

Re: Fading in text in the message box

#7 Post by pinkmouse » Mon Mar 01, 2010 8:09 am

PyTom wrote:The slow text mode is one that I personally don't use, so I'd invite feedback from people who use it as to how it could be made better, before I go and change it. To me, it seems that the purpose of it is to delay people's reading, for some purpose... perhaps to give people more time to appreciate each word. (I'm not 100% sure this is the purpose.)
The reason I use slow text mode is to reduce the visual shock. There's a different experience for the player if a character sprite *suddenly* appears on the screen rather than with a soft fade, right? To me it's the same with text - a whole block of text appearing *bam!* in the textbox all at once carries the subliminal message "read me fast!" whereas the "tickertape effect" of slow type or a soft fade in doesn't convey that urgency.

So I'd want to be able to set a default behaviour for text appearing, but be able to override it for specific blocks of text where I want a different effect (text appearing suddenly during an action sequence, perhaps.)

Fade-in would be nice, either just fading in the whole block of text or with a wipe, but I wouldn't want to make the hardware demands too high, otherwise we shut out people who want to play VNs on netbooks, phones etc. Of course that's not a problem if the effects just gracefully degrade depending on the hardware capability.

Allowing the player to shut down FunkyFading would be courteous, to accommodate both players with a dislike of chrome and those who are partially-sighted.

User avatar
luminarious
Veteran
Posts: 353
Joined: Thu May 01, 2008 1:12 pm
Projects: Winter, winter
Location: Estonia
Contact:

Re: Fading in text in the message box

#8 Post by luminarious » Mon Mar 01, 2010 9:03 am

I vote for the whole sentence to fade in during a 0.8 second period.

User avatar
Samu-kun
King of Moé
Posts: 2262
Joined: Mon Sep 03, 2007 3:49 pm
Organization: Love in Space Inc
Location: United States
Contact:

Re: Fading in text in the message box

#9 Post by Samu-kun » Mon Mar 01, 2010 9:21 am

I suppose there's a couple ways to do it.

The way I want would be just a wipe left-to-right for each line of text, just like it is in the video. The delay between the text being invisible and opaque would be proportional to the text speed. For example, on 40% of full speed, it would look like

The fox jumps over the fat cat.

While with the text speed set at 90% of full speed, it would look like

The fox jumps over the fat ca t.

This is done to compensate for the fact that as the text scrolls quicker and quicker, it's harder to notice the fade in at the end.

It's also possible for the entire text to fade in together. This is pretty much just like putting a dissolve transition on the text when it is put at 100% speed. The only problem is that all the people who put it to 100% speed in the first place doesn't want to wait around for the text to appear, so they're most likely to just turn it off.
Fade-in would be nice, either just fading in the whole block of text or with a wipe, but I wouldn't want to make the hardware demands too high, otherwise we shut out people who want to play VNs on netbooks, phones etc. Of course that's not a problem if the effects just gracefully degrade depending on the hardware capability.
Well, if it's as fast as Jake makes it sound, then I don't think it'll be much of a problem.

User avatar
Jake
Support Hero
Posts: 3826
Joined: Sat Jun 17, 2006 7:28 pm
Contact:

Re: Fading in text in the message box

#10 Post by Jake » Mon Mar 01, 2010 10:12 am

Samu-kun wrote: The delay between the text being invisible and opaque would be proportional to the text speed. For example, on 40% of full speed, it would look like

The fox jumps over the fat cat.

While with the text speed set at 90% of full speed, it would look like

The fox jumps over the fat ca t.

...

The only problem is that all the people who put it to 100% speed in the first place doesn't want to wait around for the text to appear, so they're most likely to just turn it off.
To be honest, especially given this last point - which I agree with - I don't see any reason to exaggerate the effect for faster text speeds at all. It seems like trying to be clever for the sake of it - if it's so fast that the fade isn't noticable, then the pop-in of letters - which is ostensibly the reason a fade looks better in the first place - also isn't noticable. If you drag out the fade to cover more letters, all you're really doing is drawing attention to it, saying "look at me, I'm fading the text, I'm so clever" where the entire point of fading in to me is to be subtly cleaner. Not every enhancement has to be right in the user's face.
Server error: user 'Jake' not found

User avatar
Samu-kun
King of Moé
Posts: 2262
Joined: Mon Sep 03, 2007 3:49 pm
Organization: Love in Space Inc
Location: United States
Contact:

Re: Fading in text in the message box

#11 Post by Samu-kun » Mon Mar 01, 2010 10:29 am

No, I'm not trying to be clever just for the sake of being clever. It needs to scale based on the text speed because if the delay is arbitrarily set at say, 10 letters, then it's hard to read at slow speeds because too much of the text is still fading in while you're trying to read and it's pointless at the high speeds because the effect isn't even noticeable.

An alternative way of saying the same thing is that each character should should fade in individually in, say, 0.2 seconds. That way, when the text speed is higher, the system automatically fades out more letters, just because it can scroll in more text while the letters are still fading in.

User avatar
Jake
Support Hero
Posts: 3826
Joined: Sat Jun 17, 2006 7:28 pm
Contact:

Re: Fading in text in the message box

#12 Post by Jake » Mon Mar 01, 2010 11:01 am

Samu-kun wrote:No, I'm not trying to be clever just for the sake of being clever.
...
it's pointless at the high speeds because the effect isn't even noticeable.
Prioritising making an effect noticable to the user over making the user experience better is, to my eye, trying too hard to be clever.

If the intent is - as has been suggested elsewhere in the thread - to make the reading experience better by reducing unsightly pop-in of new characters, then in the case that the text speed is so high as to not notice the fade, the problem you're trying to solve doesn't exist, so there's no point trying to extend the fade to make it more noticable.

If the intent is - as you seem to be suggesting - impressing the reader with your cool early-nineties graphics technology, and you're not doing it to make the reading experience better, then by all means extend the fade so it's more noticable... but by definition, you're trying to look clever. It's the entire point of what you're doing.

As you noted yourself, if you delay the appearance of text at all you're getting in the way of fast readers who want their words now, not after some arbitrary waiting period that's just been inserted to make the game developer look smart. Sure, a sub-second delay might not seem so bad when you're sitting around talking on a forum, but unless it's small enough not to be noticed (see first point) it's going to annoy someone. So it seems to me that it's better to decrease the fade time proportionally to the decreased wait time between characters, so as to avoid annoying fast readers. And if you're going to have the whole line appear at once when you're using the maximum text speed, what's the excuse for having a more-drastic difference between 99% and 100% max. speed than there is between 99% and 98%?

I've used a mobile phone, for example, which didn't display a typed character until some fraction of a second after I pressed the buttons. It wasn't a big delay, it was definitely less than a second, but it was frustrating nonetheless.
Server error: user 'Jake' not found

User avatar
Samu-kun
King of Moé
Posts: 2262
Joined: Mon Sep 03, 2007 3:49 pm
Organization: Love in Space Inc
Location: United States
Contact:

Re: Fading in text in the message box

#13 Post by Samu-kun » Mon Mar 01, 2010 11:58 am

Bah, since I already know Jake is an utterly impossible person to communicate with, I just say Pytom should make whatever works and we'll see how it goes from there.

User avatar
chronoluminaire
Eileen-Class Veteran
Posts: 1153
Joined: Mon Jul 07, 2003 4:57 pm
Completed: Elven Relations, Cloud Fairy, When I Rule The World
Tumblr: alextfish
Skype: alextfish
Location: Cambridge, UK
Contact:

Re: Fading in text in the message box

#14 Post by chronoluminaire » Mon Mar 01, 2010 1:31 pm

Once again, I agree with Jake here. If the player wants to read and you're not letting them read as fast as they can, you're making them stare at your visual effect for every single box of text. That's a lot of accumulated irritation over the course of a VN.

pinkmouse makes a thought-provoking point about the different psychological effect between text fading in versus appearing immediately. I can see that if most text fades in, a block of text all appearing at once could feel impactful in a "read-me-now!" kind of way. But if we want to set the default text speed to appear instantly anyway, that emotional difference is lost.

I guess it's for the game-maker to decide whether they want to enforce the psychological impact of variations like that, at the cost of making every text box just slightly frustrating in a way that might add up to enough irritation to make fast readers give up in disgust. It's not a completely clear-cut choice.
I released 3 VNs, many moons ago: Elven Relations (IntRenAiMo 2007), When I Rule The World (NaNoRenO 2005), and Cloud Fairy (the Cute Light & Fluffy Project, 2009).
More recently I designed the board game Steam Works (published in 2015), available from a local gaming store near you!

User avatar
yummy
Miko-Class Veteran
Posts: 733
Joined: Fri Jul 07, 2006 9:58 pm
Projects: Suna to Majo
Location: France
Contact:

Re: Fading in text in the message box

#15 Post by yummy » Thu Mar 04, 2010 10:46 am

I think the effects are somehow cosmetic. Be it text effects or alpha effects or anything else.
I think it's more about how you get through your narration and at a user/reader or should I say, a spectator. That's why it might be important.

Some people focus on the story, others like to "decorate", to give a pleasant feeling or a special atmosphere.
Why not? After all as a creator, you like your story to be conveyed, even by little effects (like the character sprite boping when he/she talks - c'mon Pytom, make it possible! I'm really bad at coding...).

But when you have a solid story and want to present it wouldn't it be nice to add your personnal touches here and then?
Maybe you find this superficial, it's your right. I take it as an artistic touch.

Post Reply

Who is online

Users browsing this forum: No registered users