exodrifter / unity-raconteur Goto Github PK
View Code? Open in Web Editor NEWUnity3d support for narrative resources created in other tools.
License: BSD 3-Clause "New" or "Revised" License
Unity3d support for narrative resources created in other tools.
License: BSD 3-Clause "New" or "Revised" License
Add support for all seven Ren'Py audio channels with the queue command (<a target=_blank href=http://www.renpy.org/wiki/renpy/doc/reference/The_Ren'Py_Language_(Simple)#Queue>see Ren'Py wiki)
Add support for Ren'Py init blocks (see Ren'Py wiki).
Currently, using the command:
play music "theme.ogg" loop
Does not result in the music being looped. The music plays once and finishes, which is not expected behavior.
It appears that the issue lies in the Update function of RenPyAudioSource.cs where it needs to be checking if the music is already looping.
Add support for all seven Ren'Py audio channels with the "stop" command (<a target=_blank href=http://www.renpy.org/wiki/renpy/doc/reference/The_Ren'Py_Language_(Simple)#Stop>see Ren'Py wiki).
Implement support for optional expressions that can be given to return. (See Ren'Py wiki)
In issue #16, the behavior of Raconteur was changed to parse the script at import time instead of at run time. This was done to avoid a performance impact at run time.
It is not evident if there was any change in performance, but it is clear that the custom asset files generated by Raconteur are much bigger in file size now (about 8-9x). For this reason, it should be considered if it would be worthwhile to change back to the old behavior .
The benefits of both behaviors should be analyzed and the one with the lowest impact on run time should be used.
Add an example Ren'Py project in the folder Examples/RenPy
.
The example Ren'Py project should cover all of the available commands on the Ren'Py wiki.
Specifically, the project should include the following features:
=
, +=
, -=
, *=
, /=
)Create a wiki page explaining step-by-step how to use the RenPy feature of Raconteur.
Ideally, it would have the following features:
Add a way for the user to add variables at runtime in the Raconteur panel.
Add a way for the user to delete variables at runtime in the Raconteur panel.
Raconteur Ren'Py throws an exception when reaching the end of a script that is missing a return statement. For example, consider the following Ren'Py script:
label start:
"Hello world!"
Raconteur does not stop the script, which is what Ren'Py would do, causing dependent Raconteur Ren'Py view code to fail.
Add support for Ren'Py say statements (see Ren'Py wiki). Current functionality is missing the ability to define say statements with single quotes and using a string instead of a character object as the speaker.
Examination done in issue #41 has determined that the process of parsing the script at import time is overall more costly than parsing the script at run time. Change the Ren'Py script asset (RenPyScriptAsset.cs) to store the original script and parse it at run time.
Add support for hiding Ren'Py images with the "hide" statement (see Ren'Py wiki).
Add support for character objects: http://www.renpy.org/wiki/renpy/doc/reference/functions/Character
Add a way for the user to edit the names of variables at run time in the Raconteur panel.
Write the technical specification that will be used for the Ren'Py component of the library concerning statements.
It needs to include a description for every Ren'Py statement that is or will be supported in Raconteur. This includes:
The technical spec will be used in Milestone 3 to determine precisely what needs to be done.
Currently, RenPyViewBasic.cs will only display a handful of menu options before the rest are cut off the screen.
In cases where there are a lot of menu options, RenPyViewBasic should display as many menu options as possible.
As noticed in issue #41, the number of init statements that were executed before the first block effected how long it took until the first line of dialog was rendered on the screen. Similarly, whenever a line that doesn't need to be rendered gets skipped, Raconteur waits until the next update cycle before moving to the next statement. This causes a noticeable delay to the player, especially when multiple statements are skipped in a row.
Remove the delay caused by the RenPyDisplay.cs
or RenPyViewBasic.cs
scripts waiting for the next update loop when a line is skipped.
Currently the library parses Ren'Py scripts at run time. Change the Ren'Py script asset (RenPyScriptAsset.cs) to store the parsed Ren'Py lines at import time so parsing does not need to be done at run time.
Ren'Py menus are not parsed correctly; they currently expect each option to have a single line rather than a block. Implement proper support for Ren'Py menus (see Ren'Py wiki).
Add support for the Ren'Py "window" statement (see Ren'Py wiki).
Add support for the Ren'Py "define" statement (see Ren'Py wiki).
Related to #32 from Milestone 1. Currently, the _return
variable is being treated as any other variable but it should be dynamically scoped as it is in the Ren'Py doc:
return_statement -> "return" expression
If the optional expression is given to return, it is evaluated, and it's result is stored in the _return variable. This variable is dynamically scoped to each context.
The Unity Console reports that objects have been leaked if an asset has been imported during the current session and the user tries saving the project.
For example, the message looks like the following (as an info message):
Cleaning up leaked objects in scene since no game object, component or manager is referencing them
RenPyComment has been leaked 19 times.
RenPyScriptAsset has been leaked 1 times.
This does not occur when the asset has been created in a previous session, which is the expected behaviour.
Add support for Ren'Py backgrounds with the "scene" statement (see Ren'Py wiki).
Add support for all seven Ren'Py audio channels with the "play" statement (<a target=_blank href=http://www.renpy.org/wiki/renpy/doc/reference/The_Ren'Py_Language_(Simple)#Channels>see Ren'Py wiki).
Create a Twine example script.
Add an example Unity scene to demonstrate how to use Ren'Py scripts with Raconteur. Dependent on #25.
Add a way for the user to edit variables at runtime in the Raconteur panel.
Add support for the Ren'Py "play" statement (see Ren'Py wiki).
Add support for the Ren'Py "call" and "return" statements (see Ren'Py wiki)
Serialized RenPyScriptAssets are not persisted between sessions and are deleted if the user decides to save the scene.
Add support for displaying Ren'Py images with the "show" statement (see Ren'Py wiki).
The RenPyReturn statement does not parse expressions correctly when there is no expression after the return. For example, the following script.rpy
file will not serialize:
label start:
return
Note the two newlines at the end of the file. A similar script with one or zero newlines at the end of the file will be parsed correctly.
Additionally, any return not at the end of a file will fail to parse correctly as well. For example, the following example will not be parsed correctly
label start:
return
label hello:
"Hello world."
Add support for Ren'Py transitions with the "with" statement (see Ren'Py wiki).
Add support for the Ren'Py "pass" statement (see Ren'Py wiki).
Add support for the Ren'Py "while" statement (see Ren'Py wiki).
Ren'Py if statements do not execute properly; they currently only skip the next line and ignore blocks. Implement proper support for if statements (see Ren'Py wiki).
Add support for the Ren'Py "elif" and "else" statements (see Ren'Py wiki).
Add an option in the Raconteur debug panel to mute audio.
Add support for the Ren'Py "pause" statement (see Ren'Py wiki).
Add support for Ren'Py playlists (<a target=_blank href=http://www.renpy.org/wiki/renpy/doc/reference/The_Ren'Py_Language_(Simple)#Playlists>see Ren'Py wiki).
Create an example Unity Scene that uses Twine in it.
Add support for parsing Ren'Py Images (see Ren'Py wiki).
Add support for playing files with the Ren'Py "queue" statement (see Ren'Py wiki).
Add support for the Twine if
macro.
RenPyViewBasic.cs
makes no attempt to display the name of the character that is speaking. The script should instead display the name of the character with the correct color if the line is being spoken by someone who is not the narrator.
Although there is support for the voice channel in the RenPyAuralState, the RenPyPlay statement will not parse play statements using the voice channel.
For example, the following statement will not be parsed correctly:
play voice "audio.wav"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.