/ropework

a visual novel framework template for Yarn Spinner / Unity C#

Primary LanguageC#OtherNOASSERTION

ropework

a visual novel framework template built on Yarn Spinner / Unity C#... where you can use Yarn scripts to control scene drawing (scene background, sprites, fades) and manage characters / audio

  • pairs well with Merino, a Unity Editor plugin that lets you write and preview Yarn scripts in the editor
  • it's possible to use this to make a VN without writing C# code but it is intended more as a template for you to modify or learn from
  • you'll still have to code your story, but in a much simpler script language called "Yarn" (inspired by Twine)
  • this is aimed at people who already know some Unity! if you're a total beginner, maybe do some Unity tutorials first! I recommend Unity's video tutorials or the Catlike Coding text tutorials.

simple in-browser demo example (Unity WebGL)

https://radiatoryang.github.io/ropework/demo_simple/

download / install

download a pre-configured blank Unity project template OR a .unitypackage from Releases

usage

see the Ropework wiki for documentation, API, and examples

your basic workflow will look like this:

  • in the Yarn Editor, write a Yarn.txt script and save it into your Unity project /Assets/ folder
  • in Unity on the RopeworkManager prefab, assign the Yarn script to the YarnSpinner DialogueRunner's "Source Text" array (in the Unity inspector)
  • press Play and see if it works!... keep in mind that, by default, YarnSpinner will start with a node called "Start"

example Yarn script

// sets background image to sprite called "bg_office"
<<Scene @ bg_office>>

// adds actor named "Eve" using sprite "cool-girl", placed in left-half + center of screen, with green text label <<Act @ Eve, cool-girl, left, center, green>> Eve: Finally, a quiet day at the office. Maybe I'll be able to get some work done.

// adds actor "Adam" with sprite "biz-guy" off-screen right, with blue-ish text label <<Act @ Adam, biz-guy, 1.25, center, #226677>> // animate Adam into new position in right-half + center, within 0.5 seconds <<Move @ Adam, right, center, 0.5>> // start playing audioclip "music_funny" at 100% volume, loop forever <<PlayAudio @ music_funny, 1.0, loop>>

Adam: Hey Eve! I have a question! Eve: Oh no...

uses the following:

license?

MIT

assets used in example project: