School life ends today

First of all, I’m sorry that I post a long personal post here.

So, yeah. I finally fought final boss today. The final boss was really tough, it has 160 parts (different questions). Should I be happy or sad ?

We had so many adventures

I don’t really have so many adventures, because I’m not allowed to go outside house. I rather had so much fun in school. Me and my friends did something crazy even my bro said that we’re like jackass. We slide through ceramics with school uniform, we took a picture in every room including toilets and principal offices, we ride a shopping cart in a mall’s parking lot (launch from top level to bottom), and many more.

We had so many fights

In March, I had so many relation fight with my friend just because I refused to do their homework and they also liked to ignore me making me like talking to a wall or sometimes acted that I’m invisible. That made me hated them. I thought this fight will lasts forever, but not. I’m glad this fight over in April. In April, me and all my classmates were like “All Together Now”. No more fights… 

The end of school life / The end of the line

I feel really ancient. I didn’t realize times goes really fast. It has been over 12 years in this school. I had so many awesome memories (I already made a 17 minutes school video named ‘PROJECT-CLARITY’). Listening to Secret Base really makes me cry. So, what to do after school life ?

Everyone seems so caring me

Everyone asked me, “What you do after school life ends ?”, “What college you’ll attend ?”, “What’s your dream job ?”. The answer is I don’t know! Every that information is secret, my top secret. Why ? Because if I can’t do that, I’m sure you’ll laugh at me and make me as a joke. This special question “Who do you’ll marry ?” is also same, I don’t know, and I don’t care if I’d get married or not. My teacher also like to ask me this “Why you don’t want to marry ?”, the answer is I still don’t know about that. I could only buy Uiharu pillow. However, my parent will still insist me. Besides, who’d like a heavy geek / nerd with dyslexia anyway ? 

So what I do next ?

All my friends went to college, I probably don’t go to college, because I don’t have money, and there also no Animation school. In June 2014, I probably start working in printing company and become a young adult (that’s sad, I’m not classified as High School Game Dev anymore). I probably life with infinite loop principal (Eat – Sleep – Anime <- Return). 

But before that, till now, I still had some social problem. The problem is, I can’t talk to other people like other people do. I always feel nervous, lost all my mind and stutter when talking even worst, I changed the order (like “How, Hi are you?”). This probably I’m too shy. I need to fix this problem soon.

All the skills I have from Photoshop to After Effects, seems useless here. But however, I wont give up. Everything I said I’ll give up on Game Deving and Animating is just a joke. I’m very ambitious, I do whatever it takes to reach my dream. Now I have so much time to experimenting with Unity, After Effect, and C4D. 

So, even I’m not a high school student anymore, there’ll still a lot project will going on (From PROJECT LEVEL UP to PROJECT SEQUENCE). Wish me luck…

In The End

Dear My Friend, Even we’re separated with a long distances, I hope we all be happy!
I believe that we’ll met in August 10 years later.
The Best Memories.
-[CLARITY]-
2013/2014
IMG_20140416_151528 IMG_20140416_151502
The picture was taken with iPhone 5. Geez, what a really hi tech phone…

[Tutorial] Realtime Render Animation With Unity3D

Seiten Taisei's MV Intro | ‎Wednesday, ‎February ‎27, ‎2013, ‏‎6:26:49 PM

Seiten Taisei’s MV Intro | ‎Wednesday, ‎February ‎27, ‎2013, ‏‎6:26:49 PM

That’s my first ever Realtime Render Animation. Back then I used FRAPS to record the animation in Unity, but now, I use better Sequenced PNG renderer. I found this script on Unity3D Wiki named ScreenshotMovie. But in this tutorial, let’s just use my version of ScreenshotMovie (It’s running on background, so you can play psxfin while Unity rendering). It works both on Indie and Pro. But Indie wont get an epic effect. If you use Indie but you want to get an epic effect, use After Effect.

You’ll need this

  • Unity3D
  • VirtualDub
  • Xvid Codec (Optional)
  • A knowledge on Animation (At least Level 3(You’ll need to know what is Flat, Spline, Constant, Keying, Free Smooth and something like that))
  • And Not TLDR Personality (Too long, didn’t read. :D)

Create a new Javascript, named it whatever you wanted, then attach this on MainCamera, and then REMEMBER to disable it (So you wont got lag when previewing the animation).

var folder = "ScreenshotFolder";
var frameRate = 25;

private var realFolder = "";

function Start () {
	Screen.showCursor = false;
	Application.runInBackground = true;

    // Set the playback framerate!
    // (real time doesn't influence time anymore)
    Time.captureFramerate = frameRate;

    // Find a folder that doesn't exist yet by appending numbers!
    realFolder = folder;
    count = 1;
    while (System.IO.Directory.Exists(realFolder)) {
        realFolder = folder + count;
        count++;
    }
    // Create the folder
    System.IO.Directory.CreateDirectory(realFolder);
}

function Update () {
    // name is "realFolder/0005 shot.png"
    var name = String.Format("{0}/{1:D04}.png", realFolder, Time.frameCount );

    // Capture the screenshot
    Application.CaptureScreenshot (name); // Use Application.CaptureScreenshot(name,2) if you want 1080HD
}

function OnDisable(){ enabled = true; }
  1. RT-1You have to animate the scene first, create a new Game Object, then child all objects that you want to animate. Character and NPC also able to animate using this (with NavMeshAgent), but it’s kinda very difficult. I created a special script to animate the movement of the AI using NavMeshAgent and Animator. In this tutorial, I’ll only teach you how to make a simple realtime camera animation.
  2. RT-2Select ‘Actor’ GameObject then click Record on Animation Tab (Press CTRL+6 if you don’t have an Animation Tab).
  3. RT-3You can animate everything you want (turning off gameObject, turning off a certain script, adjusting script value, everything). To animate the Camera, just change any value that you wanted. The animator will automatically key it.
  4. So, if you are saying that you want change camera, you just simply key the first position, then select camera key > Right Click  > Right Tangent > Constant, and then go for 1 frame , and then change the camera position again > Select The camera key > Right Click > Left Tangent > Constant. Repeat this step everytime you wanted to change camera position.
  5. Camera moves crazily ? Check your Position or Rotation Curves, or just set Select The Camera Key > Right Click > Flat.
  6. NOTE : Your animation clip will automatically Loop, to disable this, go to the folder where you save this animation clip and then uncheck Loop.
  7. RT-4After you finish with animating, Click Record Button to stop recording, and then Add that script to Main Camera. You need to adjust the Folder name (It’ll save to your Unity Project’s folder), and the frame rate (I usually use 24). Press Play and LET IT RENDER!
  8. RT-5The renderer will running in background, so you can do anything while Unity Render this (I play psxfin while rendering, haha yeah). Go back and check your Unity, if you believe your animation already finished render, press play again (that button above).
  9. RT-6Check your Unity Project folder, you’ll found a folder that you’ve named on Unity. That’s a large amount of PNG Sequences!
  10. RT-7Go launch VirtualDub, click File > Open Video File
  11. RT-8Open your Unity Project Folder, and then Select the First Image (Usually it’s 0002.png), then Open.
  12. RT-9Now let’s adjust the frame rate, so it wont look very lag (Default frame rate was 10)
  13. RT-10Remember to change the Frame Rate as the rate that you set in Unity (I set 24FPS)
  14. RT-11This is an optional step. You don’t want a huge video file, do you ? Skipping this step will give you 2GB Video for 40 seconds. So you’ll need to compress it using Xvid.
  15. RT-12Alright this is the final step. Click File > Save as AVI. “Hey! Wait! What about the resolution?” Ahaha, yeah. I’m sorry, I was forgot about that. The Resolution will be same as how large you render it on Unity. I use 16:9 Aspect on Unity while rendering. If you are using Free Aspect, you’ll gonna have a large letter box. “My monitor just 1360px, can I render 1920?” Sure you can! Just read back my script comment. Also, you’ll gotta be very patient when rendering 1080.

That’s just a simple camera animation. I’m tired writing very long text with slow internet, so I’ll post about Full Character Animation later. But here, I’ll give you an example of using Full Character Animation.

I don't have Motion Capture, So I have to animate non Walking motion.

I don’t have Motion Capture, So I have to animate non Walking motion.

Here's a sample to play sound. All animation event controlled by ANIMATOR CORE.

Here’s a sample to play sound. All animation event controlled by ANIMATOR CORE.

This is how my Camera Position looks like

This is how my Camera Position looks like

Also make a new Scene everytime you want to shot other location. It makes animating easier, and faster. Since NavMeshAgent only can do walk motion, you’ll need to duplicate the character (1 NavMeshAgent, and 1 just animator). I also made new Animator Controller on the character. I’ll explain what are those (Animator Core)

  • Actors[] : All walkable actors in this scene.
  • ActorsHead[] : All actors that have facial animation.
  • ActorAnimatorValue[] : Unused. Should be set like “Speed”, or “Direction”
  • ActorAnimatorValue[] : Unused. Should be like 1.0, or 0.2
  • NPCDestination[] : an empty game object tells NavMeshAgent where to go.
  • SoundBank[] : All AudioSource that available on this scene.

And this is the final product.

[Research] Unity Underwater Caustic Effect

I can't see the caustic effect clearly. That's why this is still just a research.

I can’t see the caustic effect clearly. That’s why this is still just a research.

Hello everybody, yeah I’m a bit late. I was promised that I’ll give Underwater Caustic Effect on this thread. So yeah, it was simple enough to create this Caustic Effect. It only use Directional Light’s cookie or Projector. For the water, I use Reflective>Bumped Specular. You can create double-sided by adding ” Cull Off ” on Reflective>Bumped Specular shader, but if you are lazy to add it, you can duplicate the water mesh and mirror it (Original(Quad) : 90,0,0, doubleSided : -90,0,0).

1. Go make a new JavaScript and then attach it to your water mesh. Your player also need to be tagged as “Player”. You’ll need this

#pragma strict

var scrollSpeed = 0.25;
var waterCausticSpeed = 2;

var cubeMap : Cubemap;
var causticTextures : Texture;
var causticSize = 10.0;

private var entered = false;
private var awakeFogCol : Color;
private var awakeFogDense : float;
private var defSky : Material;
private var lungColor = Color.green;
private var causticator : GameObject;

function Awake () {
    if(isWater){ 
        ply = GameObject.FindWithTag("Player").GetComponent(HeroCtrl);
        player = GameObject.FindWithTag("Player").GetComponent(PlayerCore);

        awakeFogCol = RenderSettings.fogColor;
        awakeFogDense = RenderSettings.fogDensity;
        defSky = RenderSettings.skybox;

        renderer.material.SetTexture("_Cube",cubeMap);

    }
}

function FixedUpdate(){
    var offset = Time.time * scrollSpeed;
    renderer.material.mainTextureOffset = Vector2(0,-offset);
    renderer.material.SetTextureOffset("_BumpMap", Vector2(0,-offset));

    if(isWater && entered){
        /*lungCapacity -= 0.5;
        if(lungCapacity < 125) lungColor = Color.yellow;
        if(lungCapacity < 50) lungColor = Color.red;
        if(lungCapacity <= 0)player.ApplyDamage(1);*/

        if(causticator){
            causticator.transform.Rotate(Vector3(0,waterCausticSpeed*Time.deltaTime,0),Space.World);
        }
    }
}

function OnTriggerEnter(col : Collider){    
    if(col.gameObject.tag == "Player" && isWater){
        entered = true;
        RenderSettings.fogColor = Color(0,0.4,0.7,0.6);
        RenderSettings.fogDensity = 0.1;

        CreateCaustic();
    }
}    

function OnTriggerExit(col : Collider){
    if(col.gameObject.tag == "Player" && isWater){
        entered = false;
        RenderSettings.fogColor = awakeFogCol;
        RenderSettings.fogDensity = awakeFogDense;

        Destroy(causticator);
    }
}

function CreateCaustic(){
    causticator = new GameObject("Causticator");
    causticator.AddComponent(Light);
    causticator.light.type = LightType.Directional;
    causticator.light.intensity = 0.5;
    causticator.light.color = Color(0.5,0.5,0.5);
    causticator.light.cookie = causticTextures;
    causticator.light.cookieSize = causticSize;
    causticator.transform.rotation.eulerAngles = Vector3(90,0,0);
}

2. After that, You’ll need Loopable Caustic Texture, you can find it on Google.

3. And then import that texture to Unity, remember to enable Alpha from Grayscale.

4. Also, remember to add Triggered BoxCollider on water mesh. Make sure that Box Collider Size covered all ground, but you also need to adjust the center of Y Axis because You don’t want an obvious transition, do you ?

As you can see, the Box Collider was offset-ed from water mesh. So it'll give you a nice transition.

As you can see, the Box Collider was offset-ed from water mesh. So it’ll give you a nice transition.

5. Finally, you just have to adjust all those thing until you fully satisfied.

6. So, you want to use Projection Method ? Well… Create empty Game Object, Add Projector to it, set it to Orthographic projection, set the rotation to 90,0,0. After that adjust the size until you happy. But you’ll need a Light Projection Shader (You can obtain it on Assets > Import Package > Projector). Create new material with Light Projection Shader, insert Caustic Texture to Cookie and Falloff Texture to Falloff. Use the script to rotate it.

So what’s the best ? What should i choose ?
Here’s the comparison between Directional Light Method and Projector Method

Directional Light

  • Quick, fast, and easy to use.
  • All area included.
  • Sometimes causes Obvious Transition.
  • My eyes! Too bright! The intensity must be high, if low, you wouldn’t be able to see the caustic.

Projector

  • OK transition (No screen brightening)
  • You don’t need to adjust the intensity, you’ll always be able to see the caustic.
  • Difficult, Requires High patience, and High Accuracy.
  • You have to adjust the projection area.

[Tutorial] Unity Facial Animation / Blendshape / Morph

This is an update from Unity 4.3. This is very amazing feature that I really wanted back then. Realize I don’t know how to make a facial animation with bones. This is very fast method to make a facial animation. Works in Both Unity Indie and Pro. In this tutorial, I split my Head’s mesh and body mesh. It also works if your mesh were joined with head. I split head and body because, blender can’t read my model’s bone.

Unity 4.3 Blendshape

Unity 4.3 Blendshape

So, you’ll require this thing to make a blendshape:

  • Unity3D 4.3 (Download here)
  • Blender 2.69 / Blender 2.68 (Download here)
Launch Blender 2.69 and import your model file.

Launch Blender 2.69 and import your model file.

In Object mode, click your model, then click triangle icon there and on the Shape Keys section, press +

In Object mode, click your model, then click triangle icon there and on the Shape Keys section, press +

After you add new keys, switch it to Edit Mode. That Propositional editing is just used to help you transforms the vertex or should I say, Soft Selection.

After you add new keys, switch it to Edit Mode. That Propositional editing is just used to help you transforms the vertex or should I say, Soft Selection. Remember to set the Key value that you want to edit to 1 and set the other that you don’t want to edit right now to 0.

Shape / Deform your model whatever you like and then name your keys.

Shape / Deform your model whatever you like and then name your keys.

If you want to add / delete keys, you have to switch from Edit Mode to Object Mode. REMEMBER! BEFORE YOU ADD NEW KEYS, MAKE SURE THAT YOUR CURRENT KEY VALUE IS 0 AND YOUR NEW KEY VALUE IS 1

If you want to add / delete keys, you have to switch from Edit Mode to Object Mode. REMEMBER! BEFORE YOU ADD NEW KEYS, MAKE SURE THAT YOUR CURRENT KEY VALUE IS 0 AND YOUR NEW KEY VALUE IS 1

After set the key as many as you want, it's time to Export it to Unity. REMEMBER to SET all keys value to 0! If you don't do this, You'll gonna had a bad time.

After set the key as many as you want, it’s time to Export it to Unity. REMEMBER to SET all keys value to 0! If you don’t do this, You’ll gonna had a bad time.

Import your Exported model to Unity. Unity refuse to read your model? Export it to FBX. Basically, you don't need to adjust everything above. Check if Import Animation is turned on. and then Put it to your scene

Import your Exported model to Unity. Unity refuse to read your model? Export it to FBX. Basically, you don’t need to adjust everything above. Check if Import Animation is turned on. and then Put it to your scene

Set your keys until you happy with it.

Set your keys until you happy with it.

To animate it, Create new Animation Controller and Add Animator component to your character game object. Remember to turn off Apply Root Motion. Create new Animation, then press Add Curve, then select your head game object > Skinned Mesh Renderer > #YOUR KEYS NAME#. and Animate it (set curves). After finished animate, remember to set the animation loop by clicking the animation clip. After that, open your animator controller and insert your animation. Just set it whatever you like. Mine just Idle > EE_Blink. I haven't made talk function yet.

To animate it, Create new Animation Controller and Add Animator component to your character game object. Remember to turn off Apply Root Motion. Create new Animation, then press Add Curve, then select your head game object > Skinned Mesh Renderer > #YOUR KEYS NAME#. and Animate it (set curves). After finished animate, remember to set the animation loop by clicking the animation clip. After that, open your animator controller and insert your animation. Just set it whatever you like. Mine just Idle > EE_Blink. I haven’t made talk function yet.

So what do you think ? Now, it’s done, your model now has a facial animation. Be creative for the further animation and add more realism. If you want a quick lipsync, You can create a script that reads voice frequency and put it to your mouth keys. Like SkinnedMeshRenderer.SetBlendShapeWeight(0,audioFreq);. Read more on Unity’s Scripting Reference about Skinned Mesh Renderer.

Imagination XD in The Pressure

The PressureI guess I need a psychologist (I consider WordPress is my psychologist), because I’m depressed about my future and that’s why I declared that Imagination XD was entered ‘The Pressure’ session. The Pressure session is a session where I was lack of Inspirations, Creativity and Social Anxiety everywhere.

Recently, VACE just downloaded Nitro Racer XD and shared it to the world. I thought I suppose to report this thing, but when I read what they think about Nitro Racer XD full version on some forums that shared by VACE, their ratings was awful. In some China’s website said that my games on promotional picture was very exciting, but the gameplay was boring like watching grass grow. I also read a review post, and they said this game has no pros. This game has very poor gameplay, very bad graphic, poor soundtrack, Text-To-Speech character talking, physics problem, and horrible control. I also received a hatemail from desura users, they said they f****** the main menu that you have to drive it, so in the future, I’ll disable all of this.

This all made me realize about how horrible is my game and I think it’s no use to promote or make a new update to this game anymore. I guess the full version players wont meet Leslie, Matt and other update characters (this character will be recycled to next sequel). I guess this gave me a very sad ending.

I know, everytime I rant or post something that I want to quit making games, people on the internet cheered me and encouraged me and that brought back my spirit of making games. But everytime I saw a simple game that I also can make it and more successful than mine, I always thinking “Why their game can be liked by everyone ? It’s so simple.” Looking at their comments like “I can’t wait till this release!”, “This is super amazing!” or being played by PewDiePie, and all my minds gone “Why?”. My positive thinking mind said “It’s simple, let’s make that game!” but my negative mind said “Why? All people in this universe against you. It’s no use to make a game like that. You’ll be sued by them. Nobody likes your creation.” That really crushes my spirit.

Do they know about the developer of this game that had worked this game alone, up all night, sacrificed everything, just a bunch of High School Teenagers that want to make a game, and also had no education in making games ? I think they should tolerance a little bit. Yeah, I know that Nitro Racer XD is very bad and I also don’t want you to praise Nitro Racer XD, but I’m afraid in next year, I will get a same problem again. My mom told me that next year, I’ll get a lot of bad lucks (well, I don’t know about mythological things, but it makes me worry about that).

This all above made me thinking about what I should do in 2014? My School life will over in April 2014, and all my friends will start a College life. I don’t choose to have a college life, because I don’t have money to attend a college and plus there’s no major that I interested (all majors were just Excel, Word, Management, Economic, Tourism). I’m hoping I can work as Interior Designer to collect money to reach my dream to be a Game Dev. But, to work as Interior Designer you must have at least D3 degree and 1 year experience. But I also can work as Graphic Designer with $80/month. Can you imagine how hard living in here is?

My game is bad because I don’t have money, I don’t have money because I don’t have a job, I don’t have a job because I don’t have education/experience, I don’t have an education/experience because I don’t have a job.

So the conclusion is, I’m not sure about what I’m going to be next, leaving or continue (The Crossroad of Destiny) developing games. In 2014, I’ll probably release Crystal Guardians. I’ll stop making games if I already made 20 failed games (current is 7 failed games). I got a very little confident about this project. So yeah, wish me luck.

I think this below is a song that suitable for me now.


Thank you for reading this post, I hope you have a nice day and thanks for playing Nitro Racer XD. Thank you for sharing your time on playing Nitro Racer XD.

Nitro Racer XD, Leaving this year

Shadowed Transparent Cutout Shader

Want to make a realistic tree but the leaves don’t cast shadows ? Having a problem with built-in Transparent/Cutout/Diffuse or Transparent/Cutout/Soft-edge unlit ?

Well, just use my customized shader named “ALPHARIZED SHADOW”.

Before. Culled!

Before. Culled!

After. Not culled, shadowed.

After. Not culled, shadowed.

Unity - Main.unity - MagicPuppy - PC, Mac & Linux Standalone_5Actually, in this code, Alpharized Shadow, I just disabled the cull on Transparent Cutout Diffuse shader. I’m having a research on making Additively Alpharized Shadow. What does it do ? Well, it’s simple, we enable shadow on Particle/Additive shader. It’ll make a realistic cloud effect.

Here’s the code for Alpharized Shadow

Shader "Alpharized Shadow" {
Properties {
	_Color ("Main Color", Color) = (1, 1, 1, 1)
	_MainTex ("Base (RGB) Alpha (A)", 2D) = "white" {}
	_Cutoff ("Base Alpha cutoff", Range (0,.9)) = .5
	_Multiplier("Color Multiplier",Range(1,10)) = 1.0
}
SubShader {
	Tags { "Queue"="AlphaTest" "RenderType"="TransparentCutout" }
	LOD 200
	Cull Off Lighting Off

CGPROGRAM
#pragma surface surf Lambert alphatest:_Cutoff

sampler2D _MainTex;
fixed4 _Color;
float _Multiplier;

struct Input {
	float2 uv_MainTex;
};

void surf (Input IN, inout SurfaceOutput o) {
	fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color * _Multiplier;
	o.Albedo = c.rgb;
	o.Alpha = c.a;
}

ENDCG
}

Fallback "Transparent/Cutout/VertexLit"
}

Nitro Racer XD V1.28B Available Now!

Update comes with a lot of fixes and more activities. Now you can Fight a Zombie, Collect crystal as much as you can, Find a gift, Drift Mode, and Summon bosses. Of course, Multiplayer mode too…

Hello everybody!

Recently I just made an update. Probably a several update, but it has a lot of differences between Version 1.2A. I just received a bug report from myself, that when Halloween is over, the Seasonal Mode CORE gone crazy, banning people to choosing character just because they can’t find deactivated object. I immediately made an emergency update that should be release on early November, but I have slow internet connection, so I have to speed up the update.

I also got a request from Sablicious, that I should made a Multiplayer Mode. And now your wishes come true. But however, I disabled ‘Ready’ function so people can’t enter Multiplayer arena. You can only enter the Lobby. Yeah, I have to working on Multiplayer function. So it probably going to fully working on December or January update. I’m very busy doing my next game.

REMEMBER! Since I was live in South East Asia, the server was located on Japan. So I could speed up the development. And PLUS! This update ONLY available for Full version users. Because if I give this version free, my cloud server will explode. My server only support for 20CCU. Yeah, since this game wasn’t really popular at all, also the full version users only 10, and I also haven’t got even $0 from this project.

So, this is all the changelogs :

  • Added Christmas Seasonal Mode
  • Added Additive Arcade Modes (Zombie Mode, Drift Mode, Summon Boss Mode, and Collect Gift Mode)
  • Added Multiplayer Mode (Underconstruction! ‘Ready’ function will be disable during the development) (Requested by Sablicious)
  • Added New Character
  • Added Roll-a-dice Mode (Requested by Backdraft_3.5)
  • Added Fade on selecting character
  • Fixed Vertex’s time issues (Requested by Backdraft_3.5)
  • Fixed the Character Choosing Lab mesh
  • Fixed the major bug on Choosing Character that caused by Seasonal Mode
  • Fixed locked texture on Choosing Character
  • Changed Secret Character #2 kart’s sound
  • Changed Vertex’s kart sound
  • Changed some material’s shader
  • Changed the position of Choosing Character
  • Changed the shader of chain link fence. Now it shadowed!

Nitro Racer XD

Nitro Racer XD

What’s New on Nitro Racer XD V1.28B ? – Desura