iiYO Community

Full Version: RenPy to WebStoryEngine converter
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4

Guest

Haha, good luck with that. That's another thing I like about Lisp and Scheme: parsing s-expressions is almost trivial. Building parsers and interpreters or compilers is a fascinating topic imho.

Guest

By the way, I thought that "{$x}" may be useful for other commands too. Not sure if all options of all commands should be checked, but for some commands that should be nice.

https://github.com/jsteinbeck/WebStory-Engine/pull/12 - here is a pull request to allow
Code:
<sub scene="{$x}">
and
Code:
<goto scene="{$x}">

It allows awesome things like
Code:
<sub scene="dinner_with_{$girlname}">

Guest

Nice. Merged. Thanks. Wink

Guest

Looks like while game goes through a series of
Code:
<line>
commands, there is a part-of-second delay between the moment when previous line disappears and the moment when the next one appears.

It is different from RenPy look&feel where it is imposible to catch a screenshot without text in the box. New text appears immediatly after old one. Is it possible to remove this lag?

UPD: Showing line seems to be coded using setTimeout(..., 50). Could you provide a setting for this value? Hardcode is no good =)

Guest

Agreed. Done. Get it at:
https://github.com/jsteinbeck/WebStory-Engine/releases/tag/0.3.5

*cough cough*

https://github.com/jsteinbeck/WebStory-E.../tag/0.3.6

Wink

Guest

I have supported textbox hiding and showing on transitions (one of the authors I communicate with states that it is extremely necessary to split VN text to something like paragraphs). However, it does not work properly.

1. This code does NOT hide text box for 2 seconds, textbox just blinks for a small part of second instead:
Code:
<line s="narrator">Before pause.</line>
            <hide asset="tb_adv" duration="0" />
            <wait duration="2000" />
            <wait />
            <show asset="tb_adv" duration="0" />
            <line s="narrator">After pause.</line>

I guess I could use some shitty workaroud like using
Code:
<show asset="useless_fully_transparent_curtain" duration="2000" />
instead of
Code:
<wait duration="2000" />
, but it looks too ugly.

2. There is no way to skip any tag with duration>0. Pauses are a nice, but unskippable pauses are annoying. Possible solution: a click event on
Code:
<wait/>
would automaticly fire all the timers, putting all the ongoing animation in final state.


Guest

1. Is a bug and now fixed: https://github.com/jsteinbeck/WebStory-E.../tag/0.3.7

2. I, too, think that skippable effects would be nice. I'll look into that.

Guest

Something is wrong with
Code:
<set asset="bg" ifvar="is_bg_visible" ifvalue="true" image="main" duration="20000" /><wait />
. I'm using extremely big duration for easier debug. So, it is excepted to animate during 20 seconds. However, it takes 30 seconds, more than this, animation takes place in first 10 seconds, then there are 20 seconds with no visible effect.

Analyzing 'set' code shows that there are 2
Code:
out.fx.transform(...)
calls. One has duration 'duration /2' and is called immidiatly, another has duration 'duration' and is called on timer, which waits 'duration / 2' before calling.

I think something is wrong with this part, but I don't know your code good enough to fix it. I have tried putting duration 'duration' on both of them and call second one immideatly, but resulting picture looks darker in the middle of transition than it should. Chrome developer console's 'elements' section shows decreasing of old image's opacity and increasing of new image's opacity, however, middle result looks darker. Looks like opacity is multiplying somewhere, or a black layer becomes visible somehow or something else bad happens.

Test game is here: http://cf.ichan.ru/tmp/Fail/
Here is full diff of WebStoryEngine.js:
Code:
2546c2546
<     var out = {}, version = "0.3.7";
---
>     var out = {}, version = "0.3.7+hack";
7709c7709
<                 duration: duration / 2,
---
>                 duration: duration,
7726,7729d7725
<                 var timeoutFn;
<
<                 timeoutFn = function()
<                 {
7754,7756d7749
<                 };
<
<                 setTimeout(timeoutFn, duration / 2);

Guest

Try to fiddle with the easing a bit. It seems to me that using easeOutCubic for the fade-in and easeInCubic for the fade-out looks good. The default easing was just linear, so could be that's why it looked awkward in the middle becaue with that setup there's a point where both images are quite transparent so that any other shown background below might shine through.

Please try that out directly in the code, you can't set the easing for set command from the game itself (that should be fixed, too). If it looks good, I'll draft a new release with the changes.

Guest

Wow, using easeOutCubic for the fade-in and easeInCubic for the fade-out really looks good! That is really a brilliant idea.

PS: tried it both on switching sprite's mood and changing backgrounds. Looks great for both.
Pages: 1 2 3 4