Blender Backgrounds with VN flair

This week I dove into making backgrounds for Robo-Rinku. These were made in Blender.

ballroom
A Ballroom for dancing

The Ballroom I built from scratch. I found a reference image I liked of a mirrored building and tried to do something similar. I first made the window and column, then used the array modifier with central point and spun the windows around. I wanted to go for a fanciful mirror/glass structure that wouldn’t exist in the real world because it’s in cyber-space!

Alloy City
Alloy City

I started with this project on blendswap and spruced it up by adding more buildings.

Hojun's House/Laboratory
Hojun’s House/Laboratory

Hojun’s apartment is actually the original I used for the comic. I made a little changes like adding some bevel to the edges of the building and then plopped it onto the side of the city I used in the last pic. I’m not quite happy with the coloring, but I can come back to it later.

All the images went through post-processing in Clip Studio with a combo of hardlight, glow dodge and multiply.

Share on FacebookTweet about this on TwitterShare on RedditShare on TumblrPin on PinterestEmail this to someone

Using a Video as a texture

I was able to import animation made in clip studio into my Visual Novel!

These are the steps I took.

  1. I exported the animation I made from Clip Studio Paint as an AVI2.0 mp4 (AVI1.0 doesn’t work).
  2. Created a cube in Unity and made a Fungus view screen like you would for a background image and resized it to fit. I couldn’t get just a normal plain to work.
  3. Dragged and dropped the video from My Project folder to the cube so that it uses the video for the texture.
  4. It doesn’t play unless you also add a script to the cube.

    It plays the movie texture when the scene starts and I set the option for it to loop.

Hope someone finds this useful. I was jumping around the room when I figured this out.

Share on FacebookTweet about this on TwitterShare on RedditShare on TumblrPin on PinterestEmail this to someone

Using Unity Profiler for Optimization

While working on my most recent pull request to Fungus, I was told that Linq and foreach really shouldn’t be used with Unity because it can cause significant slowdowns. Noooooo! So I came up with an idea of what I wanted to implement based off of some provided reading(1)(2) but I wanted to SEE the change in speed for myself. So I decided to use Unity’s built-in Profiler.

To open the Profiler, go to Window->Profiler or hit Ctrl+7.

You can run the profiler and get a broad overview of how much your game hogs resources. But to test a specific method or chunk of code, you can create a custom profiler sample like I did here on my potentially bad bit of code:

I ran the profiler and I watched as the graph went up and down, not much of it making that much sense. Then I saw a spike in the graph where I was sure the problem bit of code ran. I entered the name of my sample, which was “CharacterSearch”, into the search bar to make it easier to find, then I navigated back through the frames until I saw it pop up in the hierarchy view. And that’s where I found this:
Spike before optimization
Garbage Collection Allocation of 0.7kb and time of 2.28ms. It might seem small but this stuff adds up, especially if you want to port to mobile. Let’s see if I can do better!

So I changed my code around to use a struct with a custom compare.

When I ran the profiler again with the new optimized code, I got much better results:

Less of a spike after optimization

0B GC Alloc and .34 ms! Wow…I really didn’t expect that much of a change.

Let me know if this is totally wrong or if there’s anything else I could do to speed this up in the comments. 🙂

Share on FacebookTweet about this on TwitterShare on RedditShare on TumblrPin on PinterestEmail this to someone

SimpleScript!

From what I’ve read of other visual novel developers and in game design in general, rapid prototyping will get you far. You can test your game, make changes easily and quickly without stressing out your writers with overly technical languages and unnecessary details. So I’ve created something that will help with that. I’ll call it SimpleScript for now.
Example use of SimpleScript
The new command is extended from ExecuteLua, so it’s pretty similar. The difference is that you can use a different syntax to write dialog faster, either within the provided text box or dragging and dropping a txt file into the SimpleScript TextAsset spot. If both are provided, it will run the TextAsset first and the contents of the TextBox second.

I’ve also allowed for inserting code blocks using Markdown’s standard three-backticks.

There’s still a lot of work to do on it, but since it’s still in the beginning stages of development, if you wanted something of your own in there or if you have any suggestions, let me know soon! Maybe I can add it.

Here’s what I have so far in the pull request.

Share on FacebookTweet about this on TwitterShare on RedditShare on TumblrPin on PinterestEmail this to someone

New Portrait Functions in Fungus+Lua

Rinku on Stage

My Pull request was merged!

The new instructions on how to use the portrait functions I made are on the wiki.

I also created an example project if you prefer to see it in action. It’s in the FungusExamples/FungusLua/Narrative folder and called PortraitControlExample.unity.

It was pretty easy working with Chris Gregan on planning for the portrait refactor. Next time I’ll make sure to rebase my pull request commits into one commit to make it easier to read and so I get that sweet, sweet contribution line count.

Share on FacebookTweet about this on TwitterShare on RedditShare on TumblrPin on PinterestEmail this to someone

Fungus+Lua: Portrait Functions Coming Soon!

I’ve been working with Chris Gregan, developer of Unity Fungus, to refactor the stage portrait command so that you will be able to use lines like this to control your characters on stage:

All you have to do is add the Stage object to your Lua Bindings and you can refer to it as its default name “stage” or specify different names for your different stages if you have more than one.

You can also specify exact options in any order:

Hopefully soon my work will be merged into the master branch and everyone can use it.
Check out the progress in my pull request!

If you’re still confused about what this whole FungusLua thing is about. The Fungus YouTube Channel has a really good video covering its features:

Share on FacebookTweet about this on TwitterShare on RedditShare on TumblrPin on PinterestEmail this to someone

Robo-Rinku Visual Novel – SPRINT 03

yayrinku

Welcoming a new memeber: Kelly at BloomingNerd Studio!

Kelly is joining the team as our new project manager. He’ll bring some structure to the chaos and crush blockers with zeal. He has a Tumblr full of silly sailor moon screenshots (I highly recommend checking this out), a nerdy website where he blogs mostly about tabletop gaming, and a twitter. He’ll also be running a game at Gencon called The Superfun TV Adventure Hour: A game he developed based on the Fate System. Superfun TV Adventure will soon be published in the Fate Codex. I’ve played Superfun myself and it lives up to it’s name.

Writing

Transcription of the original chapters are finished so I can start using that as example text. We’re getting closer to having something that resembles a game!

Character Redesigns

At the top of the post are some sketches and one that I liked enough to color. That’s all you’re getting for now! :p

Share on FacebookTweet about this on TwitterShare on RedditShare on TumblrPin on PinterestEmail this to someone

Robo-Rinku Visual Novel – Sprint 02

Narrative
Editor-san wrote five-chapters worth of the original comic.
Yay Editor-san!

Code
I found a handy way to use the new Fungus Lua script to make the script-writing more streamlined.

You can use aliases to shorten existing function names.

You can define functions per Character and overload the function to offer the ability to specify which picture to use.

If you want to play with Lua yourself, GOOD NEWS! It’s in the latest 3.0 beta release of Fungus! Here is the impressive changelog listing the new features. I added the “Play from Selected” and “Stop All and Play” features 🙂 Check it out and give it a spin.

Share on FacebookTweet about this on TwitterShare on RedditShare on TumblrPin on PinterestEmail this to someone
1 2