Monday, March 17, 2014
Sketch Daily 1 - Leprechaun
My first time participating in SketchDaily on Twitter... The assignment? A leprechaun! I cranked this sketch out to start off my morning.
Sunday, March 16, 2014
Max Viper Concepts
Did some drawing this weekend. Trying to come up with a style for my character Max Viper for my script, Deathworld. What do you think?
Saturday, March 15, 2014
Unity Part VIII: Unity and Parse.com Part 2: The Reckoning
I'm having a lot of difficulty understanding multi-threading in parse.com. I've posted question to Parse's forums and I'll be updating my blog when I get it all figured out.
The main issue I'm having is continuing the execute code after calling an asynchronous command to parse and getting a response. I get this error:
InternalGetGameObject can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
It occurs from doing something that, I think, should be very basic: Hiding my login form after a successful login. Here's the code:
Removing "RemoveLoginForm" negates the error, but then my login form would be on the screen... forever!!!
I suspect the error is from trying to execute code for the main thread in a subthread, but I have no idea how to achieve what I want to do otherwise.
This week I also got local save data in. I am basically saving to XML at the moment, but this is insecure, so I'd like to find a better way. At the moment, the user could simply edit the XML to cheat. Nevertheless, I've included my method below.
The main issue I'm having is continuing the execute code after calling an asynchronous command to parse and getting a response. I get this error:
InternalGetGameObject can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
It occurs from doing something that, I think, should be very basic: Hiding my login form after a successful login. Here's the code:
private void ValidLogin(string un, string pw, LoginCallback loginCallback) { Task task = ParseUser.LogInAsync(un, pw).ContinueWith(t => { if (t.IsFaulted || t.IsCanceled) { _LoginErrorMessage = t.Exception.Message; } Test(); }); } private void Test() { if (_LoginErrorMessage == "") { SetVarsFromParseUser(); SaveLocalUserData(); RemoveLoginForm(); // This function causes an error } else { PrintFormErrorMessage(_LoginErrorMessage); } } public void RemoveLoginForm() { LoginUserMenuInstance.gameObject.SetActive(false); }
Removing "RemoveLoginForm" negates the error, but then my login form would be on the screen... forever!!!
I suspect the error is from trying to execute code for the main thread in a subthread, but I have no idea how to achieve what I want to do otherwise.
This week I also got local save data in. I am basically saving to XML at the moment, but this is insecure, so I'd like to find a better way. At the moment, the user could simply edit the XML to cheat. Nevertheless, I've included my method below.
private void SaveXml() { GameData.username = Username; GameData.password = Utility.Md5Sum(Password); // Custom function for converting to MD5 XmlSerializer serializer = new XmlSerializer(typeof(GameData)); FileStream stream = new FileStream(_DataFile, FileMode.Create); serializer.Serialize(stream, GameData); stream.Close(); } private bool OpenXml() { Xml = new XmlDocument(); XmlSerializer serializer = new XmlSerializer(typeof(GameData)); FileStream stream = new FileStream(_DataFile, FileMode.Open); GameData = serializer.Deserialize(stream) as GameData; stream.Close(); return true; // for later in case I decide to do error checking. }As you can see, the code requires a custom class for handling XML and I've named mine GameData. I've included it so you can see how it works.
using System.Xml; using System.Xml.Serialization; [XmlRoot("GameData")] public class GameData { public string username; public string password; public int lastLocation; public uint goldCoinCount; public uint productoTronCount; public uint cityLandLotCount; public uint beachLandLotCount; public uint forestLandLotCount; public uint mineLandLotCount; public uint storage; }For more info on saving and loading XML for your Unity game, check out this article on Unity's wiki.
Monday, March 10, 2014
Animation Academy Week 2
Had another great session at the Animation Academy Saturday. I'm going to miss my next class to see Book of Mormon, so I did a makeup class this weekend.
After my last blog, I did a few more concepts for the black & white movie monsters inspired characters that I discussed in my last blog.
I cranked these concepts out really fast, I'm talking around 5 minutes on each. I'm astonished at how fast I can draw with the method Zembillas' showed me.
While in class, I asked what was why the Wolfman's tongue from last week looked so stupid. It was explained to me that the tongue lacked gravity. See how it's arching in the picture? "Like the St. Louis Arch" my instructor said. I redrew the Wolfman, thinking about my dog, Rocco, when I designed it, so it might look a little corgi-ish.
After drawing it, I was looking at Rocco and noticed that the round part of the snout (where the whiskers are) doesn't go all the way back to the face like I have it. It's more circular or oval shaped where as mine is somewhat rectangular. Looking at my puggle, Zira, who has a shorter snout, the round part is closer to her face, but is still not rectangle. It seems fine considering the volume of the snout, but it wasn't my intention. The whiskers should probably also be closer to the nose too.
My new assignment for week 2 was head rotations. At first I had difficulty with the profile (side) view. Charles gave me a great tip, which, in my own words, was to basically follow the center line on my other drawings to get the head shape. After some reworking, this is the final result of my head rotation on the character I found the most appealing at that time, The Bride.
All and all I'm happy with the rotations. The Back 3/4 has a little bit of a skew on the hair. I'm going to go over that next week with my instructor. I'm also going to see if the profile is right too proportionally. I'm wondering if the eyes and ears are in the right place.
As always, comments and feedback are welcome.
After my last blog, I did a few more concepts for the black & white movie monsters inspired characters that I discussed in my last blog.
![]() |
The Phantom |
![]() |
The Bride of Frankenstein |
![]() |
Little Green Man |
![]() |
The Invisible Man |
![]() |
The Mad Scientist |
![]() |
Skeleton yelling at his kid's Little League coach |
![]() |
Pajama-wearing Devil |
While in class, I asked what was why the Wolfman's tongue from last week looked so stupid. It was explained to me that the tongue lacked gravity. See how it's arching in the picture? "Like the St. Louis Arch" my instructor said. I redrew the Wolfman, thinking about my dog, Rocco, when I designed it, so it might look a little corgi-ish.
![]() |
Original Tongue |
![]() |
New Tongue... and a new look! |
![]() |
Front, Front 3/4, Back |
![]() |
Profile, Back 3/4 |
All and all I'm happy with the rotations. The Back 3/4 has a little bit of a skew on the hair. I'm going to go over that next week with my instructor. I'm also going to see if the profile is right too proportionally. I'm wondering if the eyes and ears are in the right place.
As always, comments and feedback are welcome.
Friday, March 7, 2014
Character Design Class with Charles Zembillas and the Animation Academy
I started classes with The Animation Academy last Tuesday and I'm really happy with the progress I made in one little session. My instructor was Charles Zembillas, who's a character designer and concept artist for many well-known video games and Saturday Morning cartoons. Check out his blog if you get a chance.
The school is located in an office building near downtown Burbank. I went to the evening Character Design 1 class, and there was plenty of parking nearby. Charles was very welcoming, he kept the, conversation entertaining with discussions of Bigfoot, the animation industry, and mythology. There were five other students in the class. The classroom itself had all sorts of neat cartoon art of varying styles and lots of professional animation equipment.
My first class focused on the principle of Dominant Mass and I was to only focus on character heads and keep the character simple (i.e.: cartoony rather than realistic). The principle starts with the different parts of the head having more volume than the rest. The example given used the jaw and cranium and was later expanded on from there. I don't want to give too much away because it's a really good class and one should experience it for oneself.
What I was most happy with was how fast I was able to crank out drawings. The simplicity of the lesson made for some really nice looking characters with minimal effort on my part. This was maybe more of a psychological hurdle to overcome because perhaps I would focus to much on details and minutia rather than shape and composition. Focusing on creating shapes with volume in the right places is quick and easy and once that step is done, it seems like a lot of the composition is done. To the left are my drawings from the classroom lesson. I was told the one on the left wasn't cartoony enough. After that, I forgot that part of the assignment was to not obstruct the character with objects that cover the character (like the hat in the one on the right). Finally, the one on the bottom was one I that made everyone happy.
The homework was to create several more of those compositions and try to make a unifying theme. I started with the theme of a cartoony version of Deathworld characters. Note that all of the following pictures are in the order in which they were drawn to show progress.


After realizing I couldn't really convey the setting and genre of Deathworld using just heads and faces, I decided to switch to Universal monsters as my unifying theme.
The school is located in an office building near downtown Burbank. I went to the evening Character Design 1 class, and there was plenty of parking nearby. Charles was very welcoming, he kept the, conversation entertaining with discussions of Bigfoot, the animation industry, and mythology. There were five other students in the class. The classroom itself had all sorts of neat cartoon art of varying styles and lots of professional animation equipment.
My first class focused on the principle of Dominant Mass and I was to only focus on character heads and keep the character simple (i.e.: cartoony rather than realistic). The principle starts with the different parts of the head having more volume than the rest. The example given used the jaw and cranium and was later expanded on from there. I don't want to give too much away because it's a really good class and one should experience it for oneself.

The homework was to create several more of those compositions and try to make a unifying theme. I started with the theme of a cartoony version of Deathworld characters. Note that all of the following pictures are in the order in which they were drawn to show progress.


After realizing I couldn't really convey the setting and genre of Deathworld using just heads and faces, I decided to switch to Universal monsters as my unifying theme.
![]() |
Dracula |
![]() |
Frankenstein's Monster |
![]() |
Wolfman |
![]() |
Creature from the Black Lagoon |
I was really happy with the way the Creature from the Black Lagoon turned out. It was fun to work with something that had an unusual look and fun exaggerating shapes like the brow and earlobes. The Frankenstein Monster was also fun because I paired a huge head with a small face. Frank was also one of the most simple characters I've drawn in my life. It was neat to see something so simple convey so much character. I was least happy with Wolf-Man. I'm not happy with the way the tongue sticks out. It doesn't look like it's attached to the character enough. It looks like a piece of meat balanced on the dog's lip. I also wasn't able to evoke the idiotic, enthusiastic emotion I wanted in the characters face. That's what's nice about having an instructor though; I can go back and ask what I'm doing wrong. Based on my previous interactions with this instructor, I'm sure the advice will stick too.
Monday, March 3, 2014
Screenwriting for comic books... Would that be panelwriting?
Recently I've been on a comic book kick. I got nostalgic for the comic titles I collected as a kid and wanted to see what those characters have been up to lately, as well as catch up on stories I missed out on. For the last month or two I've been reading old issues from Marvel and DC every night. One of my favorite comics, which started out as a cartoon series, was Batman Beyond. I always thought it was a little underrated and had a lot more potential to grow. It got me to thinking: I have a great Batman Beyond story, how would I "screenwrite" for a comic book? That's the kind of person I am; always wanting to learn everything about every art that I'm interested in and make one of my own. In fact, I may even make it my life's goal to have at least one successful work of art in film, literature, comics, television, and video games. I should probably try and focus on one success first.
Anyway, this lead me to wonder how comics are made. As a kid, I always noticed that they had writers in the credits of the comics and they were separate from the artists, and I was curious what it took to be a writer for comic books? Do they fill in the blanks for an artist? Do they tell the artist what to draw? How does that all come together since art and writing seem so interdependent art forms that need to be in sync in a comic. Somehow or another I found my way to the book, Understanding Comics: The Invisible Art by Scott McCloud. It appears to be a standard in the industry, someone even wrote a spoof of it. It was easy to get through not only because it's written in comic form, but because it's a fascinating look into the art and philosophy behind comics and even art in general. The author knows so well how comics work and how the reader's brain will react that he'll often tell the reader how he's currently reacting to a previous panel. Very cool. It also made me want to look more into famous art movements. Of course, the book also touched on story-writing as well. There's great art theory about lines and color and why comics choose the styles they use. All in all, great read, highly recommended.
Anyway, this lead me to wonder how comics are made. As a kid, I always noticed that they had writers in the credits of the comics and they were separate from the artists, and I was curious what it took to be a writer for comic books? Do they fill in the blanks for an artist? Do they tell the artist what to draw? How does that all come together since art and writing seem so interdependent art forms that need to be in sync in a comic. Somehow or another I found my way to the book, Understanding Comics: The Invisible Art by Scott McCloud. It appears to be a standard in the industry, someone even wrote a spoof of it. It was easy to get through not only because it's written in comic form, but because it's a fascinating look into the art and philosophy behind comics and even art in general. The author knows so well how comics work and how the reader's brain will react that he'll often tell the reader how he's currently reacting to a previous panel. Very cool. It also made me want to look more into famous art movements. Of course, the book also touched on story-writing as well. There's great art theory about lines and color and why comics choose the styles they use. All in all, great read, highly recommended.
The next thing I wanted to know was formatting. It appears every company has their own style. They're all pretty similar, but with subtle nuances. If one were going to submit to one of these companies, he should look into their specific format first. For my purposes, I just wanted to see the basic format and how it differs from the screen. I found a great script format example on Dark Horse's website. The PDF in the link has most of the scenarios typical to comics such as how to format for sound-effects, speech, narration, etc. It answers a lot of the questions I had in regard to how much art planning the writer does. Understanding that he's responsible for determining panel content and quantity was really interesting, and in general I really liked this doc because I could see more of the technical process. I'd love to get a chance to check out a comic production company or get any feedback from someone in the industry.
So, this was a fun adventuring into how comics work. I'm still interested in learning more. I start character design classes at the Animation Academy next Tuesday, so as I'm practicing designing characters, I will more than likely want to throw some story in. I'm also really excited to get this Batman Beyond story onto paper, but I have a few writing projects ahead of it, that it's going to have to go on the back-burner. This week, I will be focused on writing for my feature script, DeathWorld, so no updates on my Unity game until the week of the 10th.
Sunday, March 2, 2014
Unity and Parse.com
In my last Unity post, I discussed working with the Facebook API. My thought at the time was that it would be a good way to exchange data between users. While it may be possible to do that with the Facebook API, I don't believe this is its primary purpose and anyway, the Facebook tutorials recommended using Parse.com. So I looked at parse.com and I love it. Here's their description:
The Parse platform provides a complete backend solution for your mobile application. Our goal is to totally eliminate the need for writing server code or maintaining servers. If you're familiar with web frameworks like ASP.NET MVC we've taken many of the same principles and applied them to our platform. In particular, our SDK is ready to use out of the box with minimal configuration on your part. Parse's Unity SDK makes heavy use of a subset of the Task-based Asynchronous Pattern so that your apps remain responsive...
It's very simple to setup and it's free! Well, free to develop on... If you get to a point where you need to hold a bunch of data, then they charge you. It's not going to solve real-time data syncing, instead it offers task based data retrieval. A request needs to be sent with each write and query to the database.
It's so simple that I created registration and login forms for my game after a few hours of coding. My game will be using its online database for backing player's save game as well as facilitate trades between users. I say backup the player's data because the data will only update upon downloading an existing game to a new device, closing the game, and after trade between users. My thought is it'll cut down on traffic. Locally, I'm using XML to save the player's data using C#'s XmlDocument class, which is also really simple to use. My next goal with Parse is to get a many-to-many relationship stored so that players can conduct trades and a one to many relationship for players' inventory. Parse has its own query structure that I haven't worked with yet, but seems pretty straight forward.
Before I get to that, I have to get the rest of the game mechanics worked out. I have resource collection functionality I need to design and implement. I decided on three locations where one can collect resources: Beach, Forest, and Mine (not unlike Happy Street). Each of the three will have three resources a user can collect. A fourth location, City, will be where a player can put those resources to use either by purchasing buildings or crafting new items from simpler ones.
Anyway, lots of stuff yet to be done with regard to this multiplayer aspect, but I wanted to share my experience and give my recommendation for Parse. I did also get through all of the Facebook Unity tutorials and they were pretty straightforward as well. I intended to get back into Facebook to implement promotional features, but as more as a finishing touch.
The Parse platform provides a complete backend solution for your mobile application. Our goal is to totally eliminate the need for writing server code or maintaining servers. If you're familiar with web frameworks like ASP.NET MVC we've taken many of the same principles and applied them to our platform. In particular, our SDK is ready to use out of the box with minimal configuration on your part. Parse's Unity SDK makes heavy use of a subset of the Task-based Asynchronous Pattern so that your apps remain responsive...
It's very simple to setup and it's free! Well, free to develop on... If you get to a point where you need to hold a bunch of data, then they charge you. It's not going to solve real-time data syncing, instead it offers task based data retrieval. A request needs to be sent with each write and query to the database.
It's so simple that I created registration and login forms for my game after a few hours of coding. My game will be using its online database for backing player's save game as well as facilitate trades between users. I say backup the player's data because the data will only update upon downloading an existing game to a new device, closing the game, and after trade between users. My thought is it'll cut down on traffic. Locally, I'm using XML to save the player's data using C#'s XmlDocument class, which is also really simple to use. My next goal with Parse is to get a many-to-many relationship stored so that players can conduct trades and a one to many relationship for players' inventory. Parse has its own query structure that I haven't worked with yet, but seems pretty straight forward.
Before I get to that, I have to get the rest of the game mechanics worked out. I have resource collection functionality I need to design and implement. I decided on three locations where one can collect resources: Beach, Forest, and Mine (not unlike Happy Street). Each of the three will have three resources a user can collect. A fourth location, City, will be where a player can put those resources to use either by purchasing buildings or crafting new items from simpler ones.
Anyway, lots of stuff yet to be done with regard to this multiplayer aspect, but I wanted to share my experience and give my recommendation for Parse. I did also get through all of the Facebook Unity tutorials and they were pretty straightforward as well. I intended to get back into Facebook to implement promotional features, but as more as a finishing touch.
Subscribe to:
Posts (Atom)