Está en la página 1de 25

1

www.3dboxweb.com

UNITY 3D MANUAL

By: Deodato Pechir.

2
www.3dboxweb.com

INDICE DINAMICO IMPLEMENTACN.

MENU:

1. STRUMPY SHADER EDITOR. 2. PHYSICS CLOTH. 3.1 ROAD & PATH TOOL. 3.2 RIVER TOOL. 3.3 TERRAIN TOOL KIT. 4. GAMEPAD CONTROLLER. 5. SAVE SCENE. 6. RAGDOLLS.

Nota: Si quieres regresar al ndice haz click sobre el Cubo en la parte superior derecha de cada pgina.

3
www.3dboxweb.com

1. STRUMPY SHADER EDITOR

4
www.3dboxweb.com

Stumpy Shader Editor:

Este editor permite generar shader complejos estilo UDK, sin tener que programar una lnea de cdigo se pueden generar shaders avanzados para next-gen, animados o efectos especiales.

MASTER: Contenedor de todos los canales para la generacin de shaders. Albedo: Canal para asignar Color / Diffuse. Normal: Canal pa ra crear el relieve de detalle del Normal Map. Emission: Canal para hacer iluminar el shader. Specular: Canal para controlar el tamao de la absorcin de luz. Gloss: Canal para controlar el poder del specular. Alpha: Canal para controlar la transparencia del shader. Clip: Canal para asignar transparencia cutout.

Node: Comentarios que se pueden dejar en los nodos y atributos/valores, Inputs: Permite agregar, mover (arriba/abajo) inputs, que se podrn controlar desde el inspector modificar sus valores.

Settings: Permite cambiar las caractersticas generales del material: Pixel shader, backface culling, fog, lightmaps, sombras, etc. Nodes: Estos son los nodos que podemos usar como mtodo grafico para programar los shaaders, estos se dividen en varias categoras: Constant: Permite agregar nodos Convertir valores float Constan, float3 a constant, one, zero, etc. Operation: Permite agregar funciones matemticas para valores como add, multiplay, divide, min, max substrac, invertir, etc. Functions: Permite agregar funciones entre nodos para agregar Mask, Normalize, Parallax, fresnel, Lerp, unpackNormal, etc. Properties: Permite agregar nodos color, float, range, texturas2d, TexturasCubo, float Inputs: Permite agregar nodos Screen Depth, Position, SinTime, Time

5
www.3dboxweb.com

Color: Nodo para cargar un Color desde el Inspector. Text2D: Nodo con atributos de RGBA + UVS para conectar a un Sampler2D. Sampler2d: Nodo para conectar una textura (sampler) y control de sus UVs. SamplerCube: Nodo para cargar una textura desde el Inspector. TextCube: Nodo para conectar una textura (Sampler) de cubo y control de Normal (vista). Range: Nodo para crear un Slider en el inspector con un mnimo y mximo de valor. Float: Nodo para crear un Campo de Texto en el inspector para poner valores. Multiply: Nodo que permite multiplicar dos valores (nodos). Add: Nodo que permite sumar (valores) o sobreponer (tex2d). Lerp: Nodo que permite mezclar 2 Nodos A / B un Alpha. Invert: Nodo para invertir el valor o textura. UnpackNormal: Nodo que permite a un Tex2D se convierta en normalmap y tenga calidad como NormalMap (despus de add/multiply) Tex2dNormal: Nodo que permite automticamente a un Sampler2D convertirse en NormalMap y mantener su calidad. Substract: Nodo que permite hacer una resta entre dos valores o entre imgenes (Alpha en Clip). Fresnel: Nodo que permite crear efecto de Fresnel con componente de View, para efecto 0 a 1 (Color 1 a Color 2). ViewDirection: Nodo que se usa internamente para el nodo de Fresnel (View), para crear tambin efectos de reflejo en TexCube. Splat: Separa canales o puede combinar todos los canales RGB.

6
www.3dboxweb.com

DIFFUSE:

SPECULAR & GLOSS:

7
www.3dboxweb.com

NORMAL:

EMISSION:

8
www.3dboxweb.com

CUTOUT:

DISTORTION Settings>Queqe Settings>Render Type: Transparent | NormalizedScreePosition: ScreenPos [0,1]:

9
www.3dboxweb.com

MATERIALES ANIMADOS: Visualizar: Versin PRO PREVIEW / Probar: Se debe de exportar como shader y ponerlo en un material. MOVER: UV Pan permite mover las uvs en las opciones de x,y,z.

APAGAR/PRENDER: Sine permitira osilar entre los valores del LERP (RGB) y usamos Splat par conectar el Sine en canal Alpha.

10
www.3dboxweb.com

2. PHYSICS - CLOTHS

11
www.3dboxweb.com

Cloth:

Permite crear dinmicas con telas, para simular banderas, telas, redes y cuerpos suaves (Softbodies), se pueden crear de dos maneras: 1. GameObject> Create Other> Cloth: creara un plano que podemos usar como Cloth. 2. GameObject> Create Empty, Component>Physics>Interactive Cloth & Cloth Render. seleccionar cualquier mesh que es dentro del Project y usarlo como Cloth. De esta manera podemos

Permite anclar al cloth a cualquier objeto dentro de la escena para que quede colgado. Tip: Al objeto a anclar debe de estar lo suficientemente cerca para poder anclarlo. Bending: Permite simular mayor espesor en la tela. Streching: Permite que la tela se arrugue mas al doblarse. Damping: Permite que la tela brinque de acuerdo a las fuerzas aplicadas. Thickness: Permite trasladar la posicin de la que se encuentra anclada el Cloth. Gravity: Aplicar fuerza constante de gravedad. Self Collision: Permitir en que entre el mismo cloth pueda colisionar.

External: es una aceleracin de una fuerza constante directa al Cloth. Random: es una aceleracin de una fuerza aleatoria al Cloth. Mesh: asignar un mesh como interactive cloth (Empty Objects). Frction: cantidad de friccion del cloth, esto evita demasiado rebote o movimiento. Density: la densidad del objeto para hacerlo ms pesado. Pressure: hace que los Mesh-Cloth (softbodies) se inflen o desinflen al colisionar. Collision Response: Fuerza con la que har rebotar a los objetos que le colisionen. A. Tear Factor: Cuan lejos tiene que estar pegado el rigidbody para romperse. A. Response: Cuanta fuerza debe de aplicarse al los rigidbodies pegados. Tear Factor: Permite hacer que el cloth se pueda romper

12
www.3dboxweb.com

3. ADVANCED TERRAIN TOOLS.

13
www.3dboxweb.com

Road & Path Tool:

Permite crear caminos sobre un terreno aplanando donde este la ruta, as como poder pintar la ruta sobre la cual se trazo sobre el terreno.

Pasos: 1. Click en: "New Path" para crear un nuevo path Game Object, en el panel de jerarquas, y lo seleccionamos. 2. Click en: "Add Path Node". Damos click sobre la ventana del editor para tener activa la ventana y presionamos la tecla P y damos click sobre el terreno. 3. Continuamente se puede agregar un nuevo nodo al presionar P y click sobre el terreno hasta terminar el camino. 4. Click en: "Finalize Path" para terminar el camino y se deforme el terreno de acuerdo al camino creado. 5. Click en: "Smooth Path" para suvizar el terreno donde se encuentra el camino, esto es hata terminar el camino. 6. Click en: "Smooth Path Slope" para suavizar el terreno sobre los daldos, esto es hasta terminar. 7. Al terminar borramos el Script, y solo se deja el mesh creado.

14
www.3dboxweb.com

River Tool:

Permite crear caminos para generar ros sobre un terreno, haciendo huecos hacia abajo del terreno, para despus aplicar mesh de agua.

Pasos: 1. Click en: "New River" para crear un nuevo river Game Object - 'River' y lo seleccionas. 2. Click en: "Add River Node". Y vamos a la ventana del Editor y presionamos la tecla R y damos click sobre el terreno para iniciar el agregar nodos. 3. Continuamente se pueden agregar mas nodos con solo estar presionando la misma tecla y dar click cobre el terreno. 4. Click en: "Finalize River" para finalizar el rio y se deforme el terreno. 5. Click en: "Smooth River" para suavizar el terreno a los lados de la creacin del rio. 6. Si la orilla del rio esta sobre saliente damos click en "Close River" para corregirlo, esto es solo hasta finalizar el rio. 7. Al finalizar eliminamos el script del rio.

15
www.3dboxweb.com

Terrain Tool kit: Permite crear ms variaciones sobre terrenos de manera ms profesional y sencillo en pocos minutos de trabajo. CREATE:

FRACTAL:

PERLIN:

TEXTURE:

EROSION :

16
www.3dboxweb.com

4. Xbox GamePad Controller.

17
www.3dboxweb.com

TRIGGERS

STICK IZQ

STICK Der D-PAD

18
www.3dboxweb.com

GamePad Controller: Se puede usar GamePad de Xbox para poder controlar las acciones de nuestro juego re mapeando los botones del control y sustituirlos por el uso del teclado y mouse, generando juegos con orientacin a consolas o PC NextGen. Edit>Project Settings>Inputs.

BOTONES: (La sensibilidad deber estar a 1000).

AXIS (Sensibilidad deber de estar en 1 y digital 1000).

Stick Izq X Axis (Horizontal) = X Axis Stick Izq Y Axis (Vertical) = Y Axis

A B X Y

= = = =

joystick joystick joystick joystick

1 button 1 button 1 button 1 button

0 1 2 3

Stick Der 4th Axis (Vertical) = 4th axis (Joystick) Stick Der 5th Axis (Horizontal) = 5th axis (Joystick) Triggers = 3rd Axis (joystick & Scrollwheel). D-Pad (Horizontal) = 6th Axis (Joystick) D-Pad (Vertical) = 7th Axis (Joystick)

[LB] = joystick 1 button 4 [RB] = joystick 1 button 5 Back = joystick 1 button 6 Start = joystick 1 button 7 Stick Izq Botn = joystick 1 button 8 Stick Der Botn = joystick 1 button 9

Nota: Estos son los valores de Type y Aixs para esta categora.

Nota: Los triggers (3rd Axis), aunque son anlogos, Unity los detecta en forma Digital (-1 a 0 a 1).

19
www.3dboxweb.com

5. SAVE & LOAD SCENE VALUES.

20
www.3dboxweb.com

Save Game (PlayerPrefs): Para poder crear la opcin de guardar una escena de un juego sobre la partida en la que estamos jugando, necesitamos usar una funcin llamada PlayerPrefs, la cual nos permite guardar solamente variables del juego, en donde estas sern variables con informacin de lo que queremos guardar como: posicin del personaje, vida, sangre, tems, checkpoint u opciones activadas del juego. 1. General: Se quiere que el personaje cuando pase por el ultimo Checkpoint activado y se use la opcin de Salvar escena, este lo haga a partir del ltimo Checkpoint activado, as al reiniciar el juego el personaje inicie en la posicin del Checkpoint Salvado. 2. Cargamos el paquete Save_Scene_Start, en data en Prefabs esta Character_Prefab, este lo insertamos en la escena. 3. En Data>Checkpoint_Prefab crearemos y asignaremos un script llamado AI_CheckPoint, as todos los prefab de este tendrn el script dentro de la escena y no se tendr que asignar de uno por uno el Script. AI_CheckPoint //Variable para saber que Checkpoint ha sido activado var vCheckPoint : String; //Variable para cargar el objeto a donde mandaremos la info del CP activado. var Script_Salvar : AI_Save_Load; function OnTriggerEnter () {
// Mandar al gameObject Esfera el CP activado a su variable para guardar

Script_Salvar.Salvar_CP = vCheckPoint; print ("Checkpoint >"+vCheckPoint+"< Activado"); }

4. Ahora lo que haremos es que cada CheckPoint en su script (escena) le asignaremos una letra de identificacin: vCheckPoint A a D.

21
www.3dboxweb.com

5. Creamos 2 Inptus Salvar (Click Izq) y Cargar (Click Der). 6. Creamos un script llamado AI_Save_Load y lo asignamos a la esfera de arriba que servir para mandarle informacin de cuando se active cada Checkpoint. AI_Save_Load //Variable que indica que Checkpoint se guardara var Salvar_CP : String = "A"; //Variable para insertar al personaje para despus moverlo a otro CP. var Character : GameObject; function Update () { //SAVE - Click Izquierdo, creamos Info para ah almacenar la info if (Input.GetButtonDown ("Salvar")) { PlayerPrefs.SetString("info", Salvar_CP); print ("CheckPoint: "+Salvar_CP+" Salvado"); } //LOAD - Click Derecho, ReCargamos la escena if (Input.GetButtonDown ("Cargar")) { Application.LoadLevel ("Escena"); } } 7. La Variable de Salvar_CP, le asignamos A, ya cuando inicie la escena por primera vez ser a partir de este CheckPoint. 8. En la variable Character cargamos al personaje de la escena, para despus mover esta variable a cada CP activado. 9. Ahora que esta creado el Script AI_Save_Load, haremos que cada CheckPoint (A, B, C, D) en su variable de Script_Salvar carguen al script de la Esfera: AI_Save_Load.
//Extra: Permite NO destruir el objeto al iniciar la escena (funcion de Awake) DontDestroyOnLoad (); / DontDestroyOnLoad (transform.gameObject);

22
www.3dboxweb.com

10. Al iniciar la escena ejecutamos una funcin que ira por la variable almacenada en Windows, y dependiendo el CP se mover al personaje al CP. function Start (){ CharacterMove (); } CharacterInstance ();

OPCION A: CHARACTERMOVE MOVER AL PERSONAJE QUE YA ESTA CREADO EN LA ESCENA function CharacterMove (){ var Save_Load : String = PlayerPrefs.GetString("info"); print ("Check Point Cargado: " + Save_Load); if (Save_Load == "A"){ Character.transform.position } else if (Save_Load == "B"){ Character.transform.position } else if (Save_Load == "C"){ Character.transform.position } else if (Save_Load == "D"){ Character.transform.position } } OPCION B: CHARACTERINSTANCE CREAR PERSONAJE DINAMICAMENTE Y MOVERLO function CharacterInstance (){ var Save_Load : String = PlayerPrefs.GetString("info"); print ("Check Point Cargado: " + Save_Load); if (Save_Load == "A"){ Instantiate (Character, } else if (Save_Load == "B"){ Instantiate (Character, } else if (Save_Load == "C"){ Instantiate (Character, } else if (Save_Load == "D"){ Instantiate (Character, } } Vector3 (0,0,0), transform.rotation); Vector3 (0,0,11), transform.rotation); Vector3 (0,0,24), transform.rotation); Vector3 (0,0,38), transform.rotation); = Vector3 (0,0,0); = Vector3 (0,0,11); = Vector3 (0,0,24); = Vector3 (0,0,38);

23
www.3dboxweb.com

24
www.3dboxweb.com

6. RAGDOLL ANIMATION TO RAGDOLL

25
www.3dboxweb.com

Ragdoll Animation to Ragdoll: Para hacer que un personaje cuando muera se sustituya por un ragdoll, y este tenga la misma posicin de rotacin de cada uno de los joints se hace lo siguiente: 1. Cargamos el paquete Ragdoll, dentro del paquete tenemos un mesh, un ragdoll y una animacin de Run. 2. Creamos un script AI_Ragdoll y lo asignamos al personaje: AI_Ragdoll
//Variable para cargar el RagDoll

var vRagdoll : Transform; function Start (){


//Reproduccin de animacin

animation.Play ("run");
// Esperar

yield WaitForSeconds (1.5);


//Destruir Mesh animado

Destroy(gameObject);
// Instancia para cambiar por ragdoll

var InstanceRagdoll : Transform = Instantiate(vRagdoll, transform.position, transform.rotation);


// Ejecutar la funcin y mandarle la posicin del ragdoll de cada Joint.

ActivarRagdoll (transform, InstanceRagdoll); }


// Funcion que contiene la posicin del personaje animado y la de ragdoll creado.

function ActivarRagdoll (Character : Transform, RagdolLoad : Transform) { RagdolLoad.position = Character.position; RagdolLoad.rotation = Character.rotation;
// Igualar los valores de "transform" que tienen el mismo nombre.

for (var child : Transform in RagdolLoad) { var JointTransforms = Character.Find(child.name); ActivarRagdoll (JointTransforms, child); } }

También podría gustarte