SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Objeto ultrapassando Colisor
Como funciona esse script?!
Como usar uma animação de uma arma animada na Unity...
Delay e ativar variavel de audio
[Dúvida] Movimentação com touch
Stop Animation
Text to Speech ou outra sugestão
[RESOLVIDO] Como deixar sempre com dois dígitos
multiplayer
[RESOLVIDO] ERRO NO SISTEMA DE FOME, VIDA, STAMINA ETC... DO MARCOS
[RESOLVIDO] VOID START???
DESLIGAR E LIGAR O CARRO
[____ADMINISTRADOR OFFLINE____]
[RESOLVIDO] Animação
jogo quiz 2D unity 5...
[DUVIDA] como melhorar a jogabilidade de um jogo 2D
(Dúvida) Objeto receber posição do Raycast.
Alguém Para Dar Uma Avaliada no Meu Jogo de Terror :)
Personagem em 3ª pessoa
Projeto - IMU, terror de sobrevivência em primeira pessoa (estilo silent hill)
JUMP no estilo Subwey surf
Auxilio para script de Câmera
[TUTORIAL] AI Enemy ( Jogos de terror )
Criar varias funções de mesmo nome em um script
Como Que faço Para Quando Eu Reentrar no game o PlayerPrefs restaurar os dados salvos?
[ASSET] Cama Realista 3D + Download Grátis!
[RESOLVIDO] Meu Script Sumiu!
Como colocar arvores configuradas pelo terrain?
Duvida de camera
Problema de conexão com o fórum
Brasileiros podem usar o Unity ADS?
Desenvolvimento de game PokeGen MS - Vídeo e informações
Recarregador de arms
dúvida com variáveis
Câmera tipo Uncharted
Como verificar se a animação términou no animator
[TUTORIAL] Sistema COMPLETO de câmeras
Iluminação unity 5
Procuro membros para minha Equipe (Programadores, designers, etc)
Galera aki tenho um site com muitos models 3d
COMO COLOCO LANTERNA DE LED NO MEU JOGO DE BUS
DUVIDA SCRIPT DO MARCOS SELEÇÃO DE PERSONAGEM !
[____TÓPICO LIVRE____] FALE O QUE QUISER
SOBRE "IK" INVERSE KINEMATICS
Objeto ir para raycast
Duvida como instância um game objeto com Raycast
Problema Com Virtual Buttons Help me ;-;
GALERA PRECISO DE MODELADORES ,DESIGNER E PROGAMADORES PARA A MINHA EQUIPE DE UNITY 5
sobre build run no Android
e algum bug??
Tela rosa em jogos
Ajuda na script
[ajuda] câmera puxada
Duvida de script de controle
Não carrega próxima cena após finalizar cutscene
Duvida de script avançada
[TUTORIAL] Derrubar arvores e dropar madeiras dela
Vocês poderiam avaliar meu jogo para Android? (30mb)
Ajuda com elementos UI
Ajuda com AI
Multiplayer com photon
[PEDIDO] Tutorial de Multiplayer
procuro equipe para meu jogo de bus
Formação de equipe para jogo estilo Days Gone (Campanha , Multiplayer) , (já está em criação)
AJUDA SCRIPT LUZ UNITY 5.5
3 Armas mediavais gratis, criada por min
Alguém poderia me ajudar a entender esse script
[TUTORIAL] Entrar no carro estilo GTA
Folha de Palmeira (Modelo 3D)
Procuro programadores para meu jogo
Duvida sobre pulo
unity pack
PROCURO EQUIPE PARA DESENVOLVER UM GAME NO ESTILO BOMBERMAN (ANTIGOS) ENTRAR EM CONTATO
Formação de equipes Bus Brasil
[JOGO] Dead Age(Em desenvolvimento).
Hoje à(s) 5:07 pm
Hoje à(s) 3:29 pm
Hoje à(s) 3:02 pm
Hoje à(s) 2:53 pm
Hoje à(s) 12:33 pm
Hoje à(s) 11:13 am
Hoje à(s) 10:34 am
Hoje à(s) 5:22 am
Ontem à(s) 11:55 pm
Ontem à(s) 10:05 pm
Ontem à(s) 10:04 pm
Ontem à(s) 8:24 pm
Ontem à(s) 5:41 pm
Ontem à(s) 3:31 pm
Ontem à(s) 2:41 pm
Ontem à(s) 12:15 pm
Ontem à(s) 11:02 am
Ontem à(s) 10:21 am
Ontem à(s) 10:17 am
Ontem à(s) 9:58 am
Qua Jan 18, 2017 11:04 pm
Qua Jan 18, 2017 10:35 pm
Qua Jan 18, 2017 10:10 pm
Qua Jan 18, 2017 8:27 pm
Qua Jan 18, 2017 8:27 pm
Qua Jan 18, 2017 7:45 pm
Qua Jan 18, 2017 7:21 pm
Qua Jan 18, 2017 5:32 pm
Qua Jan 18, 2017 4:53 pm
Qua Jan 18, 2017 3:58 pm
Qua Jan 18, 2017 3:04 pm
Qua Jan 18, 2017 2:07 pm
Qua Jan 18, 2017 1:25 pm
Qua Jan 18, 2017 12:59 pm
Qua Jan 18, 2017 12:23 pm
Qua Jan 18, 2017 12:22 pm
Qua Jan 18, 2017 4:58 am
Ter Jan 17, 2017 8:57 pm
Ter Jan 17, 2017 8:17 pm
Ter Jan 17, 2017 6:54 pm
Ter Jan 17, 2017 5:13 pm
Ter Jan 17, 2017 4:33 pm
Ter Jan 17, 2017 2:17 pm
Ter Jan 17, 2017 1:19 pm
Ter Jan 17, 2017 12:54 pm
Ter Jan 17, 2017 11:57 am
Ter Jan 17, 2017 10:16 am
Ter Jan 17, 2017 7:54 am
Ter Jan 17, 2017 7:46 am
Seg Jan 16, 2017 9:06 pm
Seg Jan 16, 2017 6:54 pm
Seg Jan 16, 2017 5:21 pm
Seg Jan 16, 2017 5:12 pm
Seg Jan 16, 2017 5:11 pm
Seg Jan 16, 2017 5:11 pm
Seg Jan 16, 2017 5:10 pm
Seg Jan 16, 2017 5:05 pm
Seg Jan 16, 2017 5:03 pm
Seg Jan 16, 2017 3:01 pm
Seg Jan 16, 2017 2:02 pm
Seg Jan 16, 2017 12:02 pm
Seg Jan 16, 2017 10:53 am
Dom Jan 15, 2017 10:14 pm
Dom Jan 15, 2017 6:31 pm
Dom Jan 15, 2017 6:03 pm
Dom Jan 15, 2017 5:54 pm
Dom Jan 15, 2017 5:17 pm
Dom Jan 15, 2017 4:30 pm
Dom Jan 15, 2017 4:24 pm
Dom Jan 15, 2017 2:52 pm
Dom Jan 15, 2017 9:40 am
Dom Jan 15, 2017 9:06 am
Dom Jan 15, 2017 12:01 am
Sab Jan 14, 2017 8:06 pm
Sab Jan 14, 2017 5:53 pm
GustavoMaster
Lucas Garcia Frade
hetrodo_gamer
GustavoMaster
MrKarate
AndyShow
AndyShow
AndyShow
hetrodo_gamer
Joker 22
lucasfera15
GustavoMaster
John Rambo
GustavoMaster
Kenji Haruno
poker14k
luKkaSs
dstaroski
AndyShow
joabr
poker14k
artplayer
Pedro Canassa Garcia
pablo10544
LegendGames
artplayer
AndyShow
artplayer
weslleyFx
Weverton Borges da Silva
Hardencio
AndyShow
Callyde Jr
AndyShow
John Rambo
John Rambo
MonsaM
John Rambo
dstaroski
MonsaM
John Rambo
LuizFixa3D
joabr
XavezZ
lucasfera15
R R
anizioNoob
dstaroski
dstaroski
John Rambo
Igor Melim
MarcosSchultz
MarcosSchultz
MarcosSchultz
joabr
MarcosSchultz
MarcosSchultz
marcos4503
sabbath
Callyde Jr
artplayer
Chilinger
Manawydan
Willian Wii
Pedro Canassa Garcia
MateusWTP
Willian Wii
tom ramber
RenanMSV
Willian Wii
AndyShow
dstaroski
Kaiky leandro
Kaiky leandro
ismarspn

[TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

TUTORIAL [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por MarcosSchultz em Qua Maio 25, 2016 5:16 pm

Olá pessoal, elaborei este script para deformar as mesh de qualquer objeto por ai, basta configurar...


O IDEAL PARA ESTE TUTORIAL É UTILIZAR MESH COLLIDER QUANDO FOR POSSÍVEL

Vídeo explicativo:



Script utilizado:
Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Rigidbody))]
public class Deformar : MonoBehaviour{
 public MeshFilter[] meshes;
 public Collider[] colisores;
 [Range(1.0f,100.0f)] public float danoPorBatida = 2.0f;
 [Range(0.1f,1000.0f)] public float areaDeDeform = 40.0f;
 [Range(0.1f,10.0f)] public float MaximaDistorcao = 2.5f;

 private int somaDosImpactos = 0;
 private float proximoTempoImpacto = 0.0f;
 private Vector3 somaPosicImpactos = Vector3.zero, somaVelocidadeImpactos = Vector3.zero;
 private Vector3[][] meshesOriginais;
 private Rigidbody rigidB;

 void Start(){
 rigidB = GetComponent<Rigidbody> ();
 }

 void OnEnable (){
 meshesOriginais = new Vector3[meshes.Length][];//ajusta o tamanho do vetor ao numero de vertices
 for (int i = 0; i < meshes.Length; i++){
 Mesh mesh = meshes[i].mesh;
 meshesOriginais[i] = mesh.vertices;//pega o local original de cada vertice e joga no vetor
 mesh.MarkDynamic();
 }  
 }
 void OnDisable (){
 for (int i = 0; i < meshes.Length; i++){
 Mesh mesh =  meshes[i].mesh;
 mesh.vertices = meshesOriginais[i]; //realoca os vertices em seus lugares originais
 mesh.RecalculateNormals(); //recalcula os Normals
 mesh.RecalculateBounds(); //recalcula os Bounds
 }
 }

 void OnCollisionEnter (Collision collision){
 if (meshes.Length > 0 && colisores.Length > 0) {
 int impactCount = 0;                      
 Vector3 impactPosition = Vector3.zero, impactVelocity = Vector3.zero;
 foreach (ContactPoint contact in collision.contacts) {
 float dragRatio = Vector3.Dot (rigidB.GetPointVelocity (contact.point), contact.normal);
 if (dragRatio < -0.6f || collision.relativeVelocity.sqrMagnitude > 3.0f) { //se tem velocidade o suficiente para ser uma colisao
 impactCount++; //aumenta o numero de colisoes ocorridas
 impactPosition += contact.point; //pega os lugares dos impactos
 impactVelocity += collision.relativeVelocity; //pega as velocidades dos impactos
 }
 }
 if (impactCount > 0) {//se tem mais de 0 impactos
 float invCount = 1.0f / impactCount;
 impactPosition *= invCount;
 impactVelocity *= invCount;
 somaDosImpactos++;
 somaPosicImpactos += transform.InverseTransformPoint (impactPosition);
 somaVelocidadeImpactos += transform.InverseTransformDirection (impactVelocity);
 }
 }
 }
 void FixedUpdate(){
 if (meshes.Length > 0 && colisores.Length > 0) {
 if (Time.time - proximoTempoImpacto >= 0.2f && somaDosImpactos > 0) {//tempo entre os impactos
 float invCount = 1.0f / somaDosImpactos;
 somaPosicImpactos *= invCount;
 somaVelocidadeImpactos *= invCount;
 Vector3 impactVelocity = Vector3.zero;
 if (somaVelocidadeImpactos.sqrMagnitude > 1.5f) {
 impactVelocity = transform.TransformDirection (somaVelocidadeImpactos) * 0.02f;
 }
 if (impactVelocity.sqrMagnitude > 0.0f) { //se a velocidade do impacto normalizada for maior do que 0.0f
 Vector3 contactPoint = transform.TransformPoint (somaPosicImpactos);
 for (int i = 0, c = meshes.Length; i < c; i++) {
 DeformMesh (meshes [i].mesh, meshesOriginais [i], meshes [i].transform, contactPoint, impactVelocity); //chama o metodo que deforma as malhas e manda as informações
 }
 }
 somaDosImpactos = 0;
 somaPosicImpactos = Vector3.zero;
 somaVelocidadeImpactos = Vector3.zero;
 proximoTempoImpacto = Time.time + 0.2f * UnityEngine.Random.Range (-0.4f, 0.4f);
 }
 }
 }

 float DeformMesh (Mesh mesh, Vector3[] originalMesh, Transform localTransform, Vector3 contactPoint, Vector3 contactVelocity){
 Vector3[] vertices = mesh.vertices;
 Vector3 localContactPoint = localTransform.InverseTransformPoint(contactPoint);
 Vector3 localContactForce = localTransform.InverseTransformDirection(contactVelocity);
 float sqrMaxDeform = MaximaDistorcao * MaximaDistorcao;
 float totalDamage = 0.0f;
 int damagedVertices = 0;
 for (int i=0; i<vertices.Length; i++){
 float dist = (localContactPoint - vertices [i]).sqrMagnitude;//distancia entre o ponto de colisão e a mesh
 if (dist < areaDeDeform){
 Vector3 damage = (localContactForce * ((areaDeDeform*2.0f) - Mathf.Sqrt(dist)) / (areaDeDeform*2.0f))*(danoPorBatida*(1+rigidB.velocity.magnitude*0.2f)); //descobre o dano
 vertices[i] += damage; //aplica o dano no vertice
 Vector3 deform = vertices[i] - originalMesh[i]; //subtrai a posicao original do dano descoberto para chegar a nova posicao do vertice
 if (deform.sqrMagnitude > sqrMaxDeform) {
 vertices [i] = originalMesh [i] + deform.normalized * MaximaDistorcao;//normaliza danos absurdos
 }
 totalDamage += damage.magnitude;
 damagedVertices++;
 }
 }
 mesh.vertices = vertices; //aplica os novos vertices a malha
 mesh.RecalculateNormals();
 mesh.RecalculateBounds();
 return damagedVertices > 0? totalDamage / damagedVertices : 0.0f;
 }
}


Última edição por MarcosSchultz em Ter Jun 07, 2016 8:45 pm, editado 1 vez(es)

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por Convidado em Qua Maio 25, 2016 8:21 pm

Ótimo tutorial muito útil para nossos projetos.  Very Happy

Convidado
Convidado


Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por anizioNoob em Qua Maio 25, 2016 8:58 pm

vai dar pa fazer mta coisa irada com isso pena q não deforma o colisor pq ai sim seria awsome

anizioNoob
MembroAvançado

Masculino PONTOS : 579
REPUTAÇÃO : 11
Idade : 14
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por MarcosSchultz em Qui Maio 26, 2016 9:50 pm

anizioNoob escreveu:vai dar pa fazer mta coisa irada com isso pena q não deforma o colisor pq ai sim seria awsome

Deformar colisor não é difícil, mas acaba tendo alguns bugs eventualmente, e é um tanto mais pesado para o projeto... Então acabei não incluindo.

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por Dom3000 em Seg Jun 27, 2016 3:12 pm

MarcosSchultz escreveu:
anizioNoob escreveu:vai dar pa fazer mta coisa irada com isso pena q não deforma o colisor pq ai sim seria awsome

Deformar colisor não é difícil, mas acaba tendo alguns bugs eventualmente, e é um tanto mais pesado para o projeto... Então acabei não incluindo.
muito bom cara, uma duvida tem como deformar o chao o Terreno, com isso tambem?

Dom3000
Mestre
Mestre

Masculino PONTOS : 702
REPUTAÇÃO : 49
Idade : 21
Áreas de atuação : Blender, C#, Unity, Escritor, Game Disigner, System Particule, Gimp,Audacity, Texturizador, Makehuma
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por MarcosSchultz em Seg Jun 27, 2016 4:56 pm

Com isto não... ele é feito para malhas, o Terrain é um pouco diferente, ele tem propriedades diferentes e até o colisor dele é diferente... tem que utilizar alguns metodos diferentes para alterar a sua mesh

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por Dom3000 em Qui Jun 30, 2016 12:07 am

entao é posivel Smile  faz uma Tuto disso Smile

Dom3000
Mestre
Mestre

Masculino PONTOS : 702
REPUTAÇÃO : 49
Idade : 21
Áreas de atuação : Blender, C#, Unity, Escritor, Game Disigner, System Particule, Gimp,Audacity, Texturizador, Makehuma
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por MarcosSchultz em Qui Jun 30, 2016 12:47 am

ta na lista jah... o GamesIndie já fez um tutorial disso uma vez, só que em javaScript.

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por Dom3000 em Qui Jun 30, 2016 12:07 pm

que bom obrigado Smile
onde eu acho esse poste ?

Dom3000
Mestre
Mestre

Masculino PONTOS : 702
REPUTAÇÃO : 49
Idade : 21
Áreas de atuação : Blender, C#, Unity, Escritor, Game Disigner, System Particule, Gimp,Audacity, Texturizador, Makehuma
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por MarcosSchultz em Qui Jun 30, 2016 3:59 pm

Spoiler:







MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por Dom3000 em Qui Jun 30, 2016 6:10 pm

vlw Smile

Dom3000
Mestre
Mestre

Masculino PONTOS : 702
REPUTAÇÃO : 49
Idade : 21
Áreas de atuação : Blender, C#, Unity, Escritor, Game Disigner, System Particule, Gimp,Audacity, Texturizador, Makehuma
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por Chilinger em Sab Jul 02, 2016 2:28 pm

Marcos surgiu uma duvida se consigo deforma mesh tambem consigo destruir como no blender com sistema de destruiçao se tem como poderia fazer um tutorial ensinando ou mandar algo sobre o assunto.

Chilinger
MembroAvançado

Masculino PONTOS : 1056
REPUTAÇÃO : 26
Idade : 22
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por MeverPlays em Sab Jul 02, 2016 7:53 pm

Realmente vai ser bem útil este tutorial Very Happy

MeverPlays
MembroAvançado

Masculino PONTOS : 939
REPUTAÇÃO : 42
Áreas de atuação : SketchUp, Unity, Design.
Respeito as regras :

Ver perfil do usuário http://www.joltflipgames.ml

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por MarcosSchultz em Sab Jul 02, 2016 10:06 pm

Da para destruir sim, tem até assets sobre isto... basta separar os triangulos da malha. Vou até anotar, para tentar elaborar algo quanto tiver tempo.

MarcosSchultz
Administrador

Masculino PONTOS : 7529
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Deformar mesh com batidas (para objetos, veículos, etc)

Mensagem por Chilinger em Seg Jul 04, 2016 12:04 am

no aguardo

Chilinger
MembroAvançado

Masculino PONTOS : 1056
REPUTAÇÃO : 26
Idade : 22
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum