Documenation | Script Writer | Version 20.128
Jeison Yehuda Amihud (Blender Dumbass) 於 3 年之前 修改了此頁面

NOTE: This Documentation Article is written for a specific verion of VCStudio mentioned in the title. If you have a newer version, some things might be changed. There could be a newer version of this article in the wiki. If there is non. Please be aware of possible changes. The Version could be found in the bottom, right corner of VCStudio

COPYLEFT: This article is a part of VCStudio and might be used and reproduced using either GNU General Public License or CC-BY-SA.

Script Writer

There could be confusion with Story Editor.

Content:

  • Simple guide
  • Advanced explanation

Simple Guide

On the picture above you can see a screen shot of the Script Writer. This is the actuall text of a scene. A scene that you create and activate using the Story Editor.

As you can see this window is devided into 3 parts. The left side, the bigger middle part and the right side. This kind of layot will be in multiple places in the VCStudio. Usually it's because on the right there are checklists.

The middle

The middle part is the most important. In the Script Writer the middle part is your scene text. For the most part it's a simple text editor. But as you can see this one is a bit more colorful and interesting then usual text.

VCStduio is not your typical screenplay writer program. It's not there to make you print a document. It's there to help you make the entire movie. Please keep this in mind as we dive in this colorful madness.

On the top, above the text you can see a panel. In this pannel there a couple of things. Let's go over them.

  • Mark Shot. Short cut Ctrl-S Will mark selected part of the text as a shot. ( the colorful stuff )
  • Link Asset. Short cut Ctrl-L Will mark a selected part of the text as a link to an asset. ( purple stuff )
  • Add Dialogue. Short cut Ctrl-D Will create a dialogue part in the text when a character says a line.
  • Link Image. Short cut Ctrl-I Inserts an image.

And on the right from that is the name of the scene. Now you can see there is a little folder icon on the far right in the panel. It's there only if the folder for this scene is already created. Now only if it's not created you can edit the name of the scene. So keep this in mind.

On the botton you have the quit button and if this scene in connected to some other scenes, buttons to go to those scenes it's connected to.

The Right

On the right side it's the checklist. Now if a shot is selected then it's the checklist of the shot. If not it's the checklist of the scene. If there is no checklist file it will let you create one. BUT. Keep in mind that it will also create the folder. Which will block your ability to rename the scene or the shot.

The Left

On the left there are 3 types of content. The main one are the shots. And everything to do with the shots. This is where you can rename them, or access their folder if a folder exists. Remember renaming is possible only if folder does not exist.

Then there is the color selector. Because what if you don't like the color it gave the shot automatically. You can change the color if you want.

Then, and here look at the picture carefully, you have a progress bar. But with 4 points on it. With various spheres on top of those points. This is your render folders. I represend them with the icons that Blender gives for viewport visibility. The Wireframe, Solid, Material and Rendered. Tho in the context of the shot it means storyboards, opengl, test_rnd and rendered. Those are the folders that you get for rendering out the shots.

These folder names were chosen in 2016 while developing the first versions of Blender-Organizer legacy and to insure backward compatibility I will not change the names

Basically you can think of them as 4 stages of production on a shot.

  • Storyboard. Or Layout. Is where you have your camera angles and some basic motion. Some basic figuring out.
  • OpenGL. Or Eevee. It's when you have the animation ready and you are testing the movement. And you don't want to wait a long time for a time consuming Cycles renders.
  • Test Render. It's when you render maybe on lower resolution with less samples. But testing thigns like light and shaders. And various effects. Stuff that should be rendered using final engine.
  • Rendered. Your Final frames. Final resolution. Final quality.

Below that is your shot preview based on a current selected folder. And a little timeline to scroll through and see a tiny animation preview.

Below that are your blend files. With 2 aditional button below each. The link button to Link Assets into it. And the Render button. To render the blender file into one of the 4 folders.

To add a new blend file, type the name of the new file into the search and if it does not exist yet it will give you to create one.

Appart from shots. In the very top you can choose to see Schedules and History of a particular shot / scene. But more on this in the Analytics documentation.

Advanced explanation

The folowing part of the article is for hard core nerdy people who want to know how everything works. And contains redundant information for a simple person that just want to use VCStudio. Anyway here it is.

Files

The best documentation is to read the code of the software directly. For the script writer I recommend:

  • studio/story.py Reads, Writes and does various things with the story file.
  • studio_scriptLayer.py Draws the Script Writer and contains all of the writing logic. As well as the shots.

How does it selects the colors for the shots?

Simply. The 5 colors that you can see on the picture are positioned in a list called rcolors. Which are actually not the colors them selves but an index names of the colors. See even tho currently there is only one theme in the VCStudio I already setup a system that will allow me to create multiple themes easily. Look at the theme.data file. You can find there entries for those 5 colors. shot_1, shot_2, shot_3, shot_4, shot_5 and besides are the RGBA values for each color. These values are read and applied using UI/UI_color.py.

Now just randomly selecting a color or selecting a color in sequence while could technically work. It would not allow the user to select the color manually. So after selecting the color in sequence. I'm saving the color into the story file. Yes into the win.story dictionary. And after that into the /pln/story.vcss file. But because I didn't plan to do that early on. It's separate from the scenes. Not in win.story["scenes"] but in win.story["shot_colors"].

How do you make the markings?

This is not simple. If look into the /pln/story.vcss which is secretly a JSON file. You can see that every scene is constructed of blocks. It's either a text_block or a shot_block. Text block has only 2 enties on the list. The string saying that it's a text_block and list of parts. Shot block has the string saying that it's a shot_block then string with the name of the shot and list of parts.

What is this list of parts? Every block[-1] is another list. Those pars could be either text which is a list of 2 elements. String saying that it's a text and a string of the text. frase which I use for dialogs. It's a 3 part list. String saying that it's a frase then the character name block and a string of the text the character is saying. link another 3 part list. The middle part is a url of an asset. Those are the purple ones. And image which is like text a 2 part list. But there is no text in the second part, there is a link to the image. I lost you right? I lost myself. Good refernce would be to read get_legacy() function.

How do you make it type?

The Gtk module has some handy functions to catch key presses and key releases. See key_press() function. On every key press. I'm not only writing the value of the key into the win.current["keys"] but also writing the string of the key into win.current["key_letter"]. Which is already combining the Shift / Caps Lock key and the various language keyboard layots. Giving you the actual UTF-8 character. All I need to do it to insert this character at a cursor location. Which sounds simple. But if you read the whole previous part and think about having 2 cursors. For the beginning of the selection and the end of the selection. And understand that selection could start in one block and end in another block. And that the user doesn't care. Then you have a problem. Basically about the middle of the studio_scriptLayer.py script I have this very big and complex logic part that handles all of this craziness for me.