This will delete the page "Documenation | Analytics | Version 20.128"
. Please be certain.
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.
The Analytics is accessed from the Story Editor on the top. It's here to do all kinds of film producer work. It's presenting you with a project completion graph. A calendar of schedules and work history. And the main project's checklist.
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.
In the middle usually are the more important parts. This middle part or analytics window, as you may see on the picture above, is also devided into 3 parts vertically.
Progress bars.
The progress bars on the very top are there to give you general idea of where the project is in the given time. As you can see you have various progress bars there.
Grpaph.
Just under the progress bars is the graph showing you the same information but over time. Now keep in mind that this example is using a project that was ones a Blender-Organizer project. Which recorded only the main progress bar. And since it was converted to VCStudio project. There is now a huge spike of all assets on the graph. Because they were concidered 0% up to the point of conversion. When suddenly they all became 100%.
The graph has 3 modes that you can access in the panel above it on the left. Let's go over them.
By default you will have the Pulse mode. Which going to give you spikes based on overall progress done in a given time on the graph. Think about this one as sound waveform. If it's flat, nothing was done. If it spikes up. Progress was done. If it spikes down, progress was lost.
The very left mode is the Linear mode. The true values per time. You can see the grey line. It represends the expected percentage over time. Going steady from 0% to 100%. And the graph struggles to addapt to this line.
And the middle mode the Normalized mode. Is if you flatten the time line. Anything behind schedule is below the line and anything ahead of the schedule is above the line.
Calendar
And in the bottom you have a calendar to select days to see various history and schedules for that particular date. And it's also used to schedule tasks.
On the right side you can see the checklist.
Let's look at a checklist real quick. Node this one is from an asset.
Checklists are quite simple to understand. It's your to do list. But insdead of being just a list. You can make tasks with subtaks in them. And so you can have a more organized to do list. You can move them arround, rename them, delete them, add them.
And one very cool feature is that you can schedule them. And you do this by dragging the task into the calendar of the analytics window.
Now you are probably asking me. But what if I'm in the asset or the script writer? There is no calendar. Well if you going to drag a task toward the center, it will give you a calendar. So don't be afraid to schedule things.
On the left you have 2 types of data you can access.
Schedules
These are all the scheduled tasks. Now by default it will give you only your tasks. This is part multiuser that is already implemented. You can click on the little multiuser icon to see all tasks.
If your date is today. Then you also will see all the tasks from all days. ( the finished ones are hidden by default ). You can see the dark task, reddish taks and the purple task.
Dark task means that the task is for today. Red task means that you behing schedule on this one. Purple task is any task that is for any future day.
There is also Green task that are all the finished tasks. And a light Blue task which is for anyday. You can make one by setting any task to 1997/07/30.
Dragging the tasks into the calendar will re-schedule them to a different day.
History
The history is a list of thing. Per date. That were recorded to be done on a given day. Also it's broken up into usernames. So you can see who done what when. Precicelly to the second.
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.
The best documentation is to read the code of the software directly. For the analytics I recommend:
How are analytics calculated?
Almost every single script above appart from maybe history is somehow involved in calculating the analytics. The main script studio/analytics.py has 2 functions to calculate analytics. One for the legacy Blender-Organizer projects. And one for the new VCStudio projects.
The legacy was a bit harder because everything was broken up to peaces and using weird text data files that all need to be parsed in their own way. For the new one, most of the stuff is in /set/analytics.json
Now if you only read the /set/analytics.json
file alone. It will not do any calculation. There wont be any change. So here is how we do it.
We have 6 items we want to know the percentage of.
Main checklist is handled by the studio/checklist.py. It reads the /set/project.progress
file. Sees what tasks are checked. And calculates the percentage for us.
Story is handled by the studio/story.py. It reads the script. Either the legacy /pln/main.bos
or the new /pln/story.vcss
and gets the data of all the scenes and all of the shots. Then it looks of whether a given shot has a checklists. If yes using studio/checklist.py it gets a percentage of that shot. If not it looks at whether there are any files in the folders like storyboard
, opengl
, test_rnd
or rendered
. And gives an aproximation based on the files.
When it got this data it can now calculate the main percentage of the whole story. But first it looks at the arrows and gets a list of scenes that are in the main chain. Connected to the Start and End nodes. The final story persentage is the average of all the scenes in the main chain.
Assets are calculated some what similarly to story. But instead of having a huge file with a list of assets. It just look into the /dev/
folder and sees what folders exists in there. The asset is finished automatically if a corrisponding named blend file exists in the /ast/
folder. If not it will look into the checklist of each asset.
Combining all of these percenrages is not an easy task. There are hidden values ( that I will make a setting for in the future ) that give each category a factor. By default Story has a factor of 4. While each asset category only a factor of 1. Meaning that 1 story worth the same as all 4 categories of assets.
Then combined percentage is averaged with the main checklist. And we get the main percentage.
How checklists can do tasks with in tasks?
Actually my implementation is kind of not the smartest way of doing it. I'm doing real recursion but in python. Which is a bit of a problem.
The file is structured more like a python script
[ ] Task
[ ] Another task
[ ] Subtaks
[ ] Another subtask
[ ] Third task
[ ] Subtaks here too
[ ] Subtask of a subtask
[ ] Subtask of a subtaks of a subtask
[ ] And so on
But i'm transforming it into a huge nested dictionary.
[
{"string":"Task",
"fraction":0,
"subtasks"[]},
{"string":"Another task",
"fraction":0,
"subtasks"[
{"string":"Subtaks",
"fraction":0,
"subtasks"[]},
{"string":"Another subtask",
"fraction":0,
"subtasks"[]}
]},
]
And so on. Keep in mind that it's a simplified version and there are a bit more metadata for each task. To do that I'm running a bunch of functions with in themselves.
def function():
funtion()
funtion()
Now if you actually try to do this in python. You will have a recursion error. Because python does not allow above like 1000 level of nesting like this.
But, and this could be my mistake, I don't see a need in 1000 levels of subtasks for any application. There are maybe 20 that fit on the screen there. But technically the checklist is limited to this python's limitation.
This will delete the page "Documenation | Analytics | Version 20.128"
. Please be certain.