First Desktop of Summoner 7

This is exciting to create this poster with 14 characters in the demo

The Demo Screenshot of Summoner 7

Finally, all characters are in the demo!

First Elf in Summoner 7

Chuck Lin designed this character.

World map is done!

There are six big stages and 5 small stages in each of them.

Human Archer

My favorite character in Summoner 7.

December 05, 2012

On the way to become an indie maker.....

prototyping my second indie game: Summoner 7
(all characters are pre-holders and not from my design)

new progress: I got VFX work! I summon the to fight!


May 08, 2012

Transferring animation tool for Theblu makers

In Theblu, makers are allowed to submit same kind of species. However, since the model won't be the same from different makers, the rig and the animation  would be different. However they could be similar. So we need such a tool to help us to create easy animation from old animation resources.
The tool allows user to export animation data as text file and apply on to other similar skinned model.
For example, we are going to transfer the swim animation from queen angelfish to Garibaldi fish. (because they are similar)


So first, we export the swim animation from queen angelfish by just opening the tool and hitting export with rotation value.
























Then export the rig form Queen Angelfish. And skin it on to the Garibaldi. Of course you can move the pivot of joints, and scale the root. Even you can change the structure of the rig and delete some end joints. Just don't change the orient of any joints.

  Next, open the tool and import the text file that we just export from Queen Angelfish. The tool will show all of your rig in the current scene and the imported file.






















Next, you can just hit the auto mapping. The tool will match two joints with the same name. After hitting, it will show all joints which cannot be matched. In this case, those joints are not needed for Garibaldi.


Now, go to apply tab and hit apply. Then we finished the animation transferring.  

To finish this animation from model only took me less than 10 mins. Is that great?  
Here's the process video. Please look it in HD mode.  






March 21, 2012

Custom fire particle UV distortion shader in Unity

It's a really common solution to simulate realistic fire in cheap way. (without frame animations)
But it's not built in Unity 3.5...... So, I tried to make my own.

The shader is composed by: additive + noise UV distiortion

Fire texture is from Unity package (no alpha value):









the noise texture is from Unity community:









The scene is used only for this demo and came from Unity community.
Let's see the result:

first: just the additive shader without UV distortion (but with noise)



second: additive + UV distortion


If you need shader code, you can leave me a message.  

March 20, 2012

Garibaldi Fish

March 13, 2012

School Shark wip

School Shark has many names: Soupfin Shark,  Tope Shark, Snapper Shark, Vitamin Shark....etc


It's a really beautiful creature, and it's going to be in theblu!!  






















Done! in three days.......

February 07, 2012

Issue of Mirrored UVs and Normal Map when rendering in Unity

Recently, I found my model has normal map seam when rendering in Unity with our custom shader.
And I try to use the Unity built-in shader to render it. The result shows that there's no seams. How strange? Soon I found that because of all UV of my models are symmetry. It means that half of my UV are flipped. Hence, the binormal of the half model has been reversed. (tangent basis is calculated by normal and UV, http://www.3dkingdoms.com/weekly/weekly.php?a=37). In Maya, I never notice that, because it auto-detects the UV winding direction. So, I just need to do the same thing in my shader.

So after researching, I got the method how to detect the UV winding. Here's the formula:


tangent[a].w = (Dot(Cross(n, t), tan2[a]) < 0.0F) ? -1.0F : 1.0F;

here tangent is stored by float4, the w stores the UV winding direction, 1, or -1.
And tan2 would be the binormal, n is the normal, and t is the actual orthogonalized tangent.

Although this equation answer my question, it didn't solve my problem. It's kind impossible to calculated the orthogonalized tangent in a shader. But it give me a hint. Would Unity has calculated the UV winding for us and stored it in tangent.w? 

With an easy debug shader to show the tangent.w, I got my answer:


So the actual key is:  
I just need to write a branch to see if I need to flip the binormal when calculating the tangent space. 

float3x3 rotation = float3x3(v.tangent.xyz, binormal.xyz, v.normal.xyz);

if(v.tangent.w > 0)
     rotation = float3x3(v.tangent.xyz, -binormal.xyz, v.normal.xyz);

So, here is the result without the UV winding detection: 

And this is the correct rendering with UV winding detection
Note: Why we don't want to use the built-int shader in Unity? Just because even the shader is simple as bump spec one which really has a lot of junk inside. And the most important: they hide those expensive calculations in compiled functions. 



January 12, 2012

The key rig system in "Way"

The game we (me, Chris, Walt, Katherine, Paulwei and Cynthia) made in ETC won the award of developer choice in IndieCade 2011 and also has been elected into IGF final list this year.
Here I'm going to show you how we make our character so simple but so vivid.

First take a look of our promotion clip (made by Chris)

WAY - IndieCade 2011 Celebration Trailer from Chris Bell on Vimeo.

So, in "Way", players have to manipulate their own character to post lots of gestures and poses to guide your partner to go through the entire game.
In order to achieve that, I design the rigging system that support both Maya animations and Unity scripts.
In this way, I can animate characters and Walt can control those predefined controllers in Unity 3D.
So, it's possible that players can manipulate their hand or head gestures while preset animations are playing.


January 05, 2012

Maya tools I wrote in 2011

For our makers, we decide to develop our own plugin for every 3D software, so that makers can make assets easily. I start from Maya. 

There are five tools in this set. Pre-verification tool, Chain renaming tool, Joint cleaning tool, Skin weighting tool, and Symmetry modeling tool. 


This tool is the key of this plugin. It helps makers to check all kinds of rules of making wemo art assets, including static models, rigged models, and animations. It also provides the quick export settings for FBX. Makers can check everything by their own and export FBX files with correct settings. Also, the tool can check the assets in different phases. In this way, makers can avoid some mistakes. (like re-rigging, or re-skinning.)


This tool is going to help makers to name their rig, meshes, and materials to follow our naming rules. This tool can do the auto tree renaming with correct suffix which match our rules. Here is the demo movie. Try to watch in HD and full screen.  






Joint cleaning tool is the tool to help maker to build and clean their rig. The function of the tool is simple but important to a rig. The mirror joint function here is different from the one in Maya. It will delete one side of joints and mirror joints from another side. 


This tool is meant to help maker to skin their fishes in quicker way. In the list, we provide the weight table of our template models. If a maker make an asset from our template, he can easily use this tool to copy the skin weight  from the template without importing it into the scene, Also I have the internal tool to export skin weight files. The tool basically will find the closet vertex from the template to assign the skin weight to the current vertex in the mesh. We assume that makers are using the same rig with the template. However, we still offer the function of editing joint mapping.


The tool is modified from my previous modeling tool. It helps makers to do symmetric models. Also, it provides other functions to fix symmetric models. For example: in order to fix the center border, makers can use the border align tool. Also, while making a longer fish, it is always hard to select the half body. For that, I provide the selection tool to select the half body in easy way.