Central de Joints |
32 | ||||||||||||||||||||||||||||||
A pedido, irei explicar todas as joints e alguns mecanismos simples detalhadamente! Cada mecanimos ficará em uma aba neste tópico, siga passo-a-passo para melhor entendimento, caso não entenda alguma coisa, poste-o aqui no tópico! E com o tempo, poderei atualizar o tópico com mais mecanismos, futuramente adicionarei umas dicas de como combinar esses mecanismos em um só. Abas Um pouco dos parâmetros Funcionamento para que serve cada joint AXIS como funciona a tag AXIS LIM como funciona a tag LIM Mecanismos Simulando pregos com joints aprenda economizar seus objetos de shaman! Esteira neste tutorial você pode fazer um piso trabalhar como um impulsionador Joint Move com este você pode fazer com que um piso fique andando no mapa de um lado para o outro, ou de cima para baixo Balançar para trás/para frente isso faz com que um piso fique balançando infinitamente para os lados Botão de Despawn o botão serve para fazer um piso desaparecer e aparecer no mesmo lugar Joint com cores este tutorial é para aqueles que queiram que sua joint apareça no mapa, coloridas! Efeito elástico isso deixa seu piso elástico Explicação para cada joint 60% das pessoas que utilizam joints, não sabem diferenciar o que cada uma serve, como utilizar JP, JR, JD e assim vai; (este 60% é um número fictício, apenas para agregar valor ao tópico, não leve à sério) A partir de agora irei explicar qual o funcionamento delas e para que servem, segue abaixo: **Lembrando: Todas as joints SEMPRE deverão estar dentro da TAG <L> e depois </L>. Entre essas duas tags, você irá colocar todas as joints que você usar no mapa.** JP Junta Prismática Ela serve para travar pisos em eixos X ou Y, como se fosse um "suporte" para que o seu piso principal não fuja, alguns exemplos podem ser notáveis em alguns mecanismos como LIM, AXIS e Esteira, você pode conferi-los mudando de aba. JPL Junta de Polias Ela simula polias entre os pisos (para saber como fazer-la, dê uma olhada na aba "Balança"), assim: Aqui um mapa que utiliza a junta de polia: @3765910 por Takumisyn JD Junta de Distância A junta de distância mantém dois pisos a uma mesma distância, porém a ligação pode ser instável dependendo da configuração. Ou seja, os dois pisos sempre irão ficar na mesma distancia mas não necessariamente farão o mesmo movimento, ela também serve para fazer as ligações de HZ e AMP, onde eu explico melhor na última aba Efeito elástico. Assim que funciona: Aqui um mapa que utiliza a junta de distancia: @6048695 por Mrkurt você pode notar o mecanismo abaixo na segunda madeira do mapa acima e no piso que sobe e desce no final do mapa, e o efeito elástico de HZ e AMP nas nuvens Como se eles estivessem ligados á um piso com pregos verdes! Caso não tenha entendido, dê uma olhadinha nesta XML:
JR Junta de Revolução Um pouco diferente das outras joints, esta serve para fazer com que os pisos gire em um eixo e bastante diferente da JD (junta de distância) ela pode fazer com que o piso faça o mesmo movimento do outro piso que o mesmo está ligado! O que são mecanismos diferentes! E é somente neste caso que existirá a opção de usar LIM1 e LIM2, explicarei mais na aba LIM! Movimento de rotação neste ela simulará como um motor de prego vermelho: Simulando a junta de distância mas sempre irão fazer os mesmos movimentos: AXIS O trabalho da AXIS é fazer com que seu piso fique travado em apenas em uma direção! Mas kurt, como assim? Se voce ligar seu piso a uma joint que contenha AXIS nela, ela irá somente para uma direção, ela ficará impossibilitada de ir para qualquer outra, como se existisse pisos ao redor travando ela; No exemplo abaixo usei uma AXIS que a direciona somente em DIAGONAL: ![]() Caso queira usar outras direções, siga os valores desta tabela:
Como fazer M1="2" é o nosso piso travado na direção diagonal M2"="1" é o piso que estabiliza o nosso primeiro piso AXIS="1,1" é o que da direção ao nosso primeiro piso <L><JP M1="2" M2="1" AXIS="1,1" /></L> XML para exemplo:
LIM Uma das TAG mais trabalhosas de se manipular, mas nada impossivel. A LIM ela serve para limitar um piso à um certo movimento, segue um gif explicando:
Como podem ver, o piso azul claro está limitado ao movimento dentro do limite do piso cinza, nosso piso cinza ele tem 100 de largura, ou seja, são 100px. (o piso cinza serve apenas para demonstrar o limite de movimento do nosso piso azul claro!) Como trabalhar com o LIM: - LIM1 é sempre negativo quando quiser movimentar o seu piso para o lado oposto (para cima ou para esquerda) - LIM2 é sempre positivo quando quiser movimentar o seu piso para para direita ou para baixo. - Quando trabalhando com JR, você deve usar o valor em radianos como nossa JR serve para fazer com que os pisos gire em um eixo, o nosso LIM precisa de ter o valor em radianos (que é a medida do ângulo central de uma circunferência e que determina um arco com o mesmo comprimento que o raio desta circunferência.) - Quando trabalhando com JP, você precisa ter o parâmetro AXIS e claro que o limite do movimento SEMPRE dependerá de qual direção colocamos na nossa AXIS Explicação: LIM no JP "Eu quero fazer com que meu piso pare em determinado ponto à direita" Para isso determinaremos que nosso piso tenha a direção direita/esquerda, ou seja, na AXIS (1,0) E então introduzimos o LIM2 (que é para direita) e ele terá um limite de movimento de 100px de largura. Mas para o valor de 100px não usaremos 100, mas seguimos uma regra: Se o valor for 10px, você pega o primeiro número e divide por 3, assim: 1/3 = 0.3333 Se for 100, pega os dois primeiros números e divide por 3: 10/3 = 3.3333 E assim por diante! Como nosso limite será de 100px, colocaremos o valor de 3.3333, e para a direção do nosso piso usaremos a AXIS -1,0 (para os lados) <JP LIM2="3.3333" AXIS="-1,0" M1="1" /> XML de exemplo:
Aqui, alguns valores úteis para o JP: 10px = 0.3333 20px = 0.6666 30px = 1 40px = 1.3333 50px = 1.6666 60px = 2 70px = 2.3333 80px = 2.6666 90px = 3 100px = 3.3333 200px = 6.6666 300px = 10 400px = 13.3333 500px = 16.6666 LIM no JR "Eu quero fazer com que meu piso que está rodando pare em determinado ângulo" Neste caso, é um pouco mais complicado. Voce precisa saber em qual ângulo de grau você quer que ele pare e saber transformar graus em radiano, pois o nosso valor precisa ser em radianos!
Na demonstração acima fiz com que meu piso parasse no ângulo 270°, então usei LIM2 para sentido horário e o valor em radianos (5.7124), caso você queira fazer sentido anti-horário, seu motor deve estar com velocidade negativa e o LIM1, também com valor negativo! assim: <JR LIM2="5.7124" MV="300,0.6" M1="1" P1="400,298" /> XML de exemplo:
Caso queira saber como transformar graus em radianos, consulte nosso querido google ou essa pequena tabela: 5° = 0.0873 10° = 0.1745 15° = 0.2618 20° = 0.3491 25° = 0.4363 30° = 0.5236 45° = 0.7854 60° = 1.0572 90° = 1.5708 135° = 2.3562 180° = 3.1416 270° = 5.7124 360° = 6.2832 Simulando pregos com joints Você já chegou em um ponto onde não poderia usar mais objetos de shaman pois chegara à um limite? Se a resposta for sim, abaixo esta a solução, iremos simular agora, pregos com joints sem usar nenhum prego (claro, poderemos usar algumas para saber coordenadas de onde ficará o seu suposto prego, e depois pode deletar-lo), segue: Prego vermelho Para simular um prego vermelho será bem simples, usaremos uma JR para isso: Ligaremos a nossa joint ao piso usando M1="x", como sempre o numero do piso é definido pelo "Z": ![]() M1="1" Nosso piso que irá ter o prego vermelho P1="a,b" Esta tag será onde o nosso piso será ligado, no caso, o nosso fictício prego vermelho. Para o valor de a usaremos a coordenada X e para o valor de b usaremos a coordenada Y de onde será colocado o prego. ![]() <JR M1="1" P1="401,301" /> E pronto, caso você queira colocar seu prego em outro canto, você também pode! Ou caso você coloque fora do piso, ela funcionará como um pêndulo! XML para testes
Prego verde Não muito diferente do prego vermelho, o prego verde só irá precisar ligar-lo á outro piso, que é esse seu objetivo. Continuamente com o mesmo exemplo do prego vermelho, iremos conectar o nosso primeiro piso à um segundo: M1="1" Nosso primeiro piso M2="2" Nosso segundo piso que irá conectar ao primeiro P1="a,b" Esta tag será onde o nosso piso será ligado, no caso, o nosso fictício prego verde. Para o valor de a usaremos a coordenada X e para o valor de b usaremos a coordenada Y de onde será colocado o prego. Você pode colocar um prego temporariamente no lugar para saber a coordenada. <JR M1="1" M2="2" P1="459,300" /> Pronto! XML para testes
Prego amarelo Seguindo o passo do prego verde, basta você colocar seu pisos com angulo fixo 1! Assim:
Esteira Para fazer uma esteira você precisa de dois pisos, o primeiro que será a esteira e outro servirá para "segurar" ele, caso a esteira não esteja ligado à este piso normal, ela irá para a direção que você definiu, infinitamente.
Criando os parâmetros de ligação Primeiro piso: Você irá abrir uma TAG <JP />, e então definirá o piso que será a esteira, no M1="x" (x é o Z do piso: ![]() <JP M1="1" /> E então definiremos qual direção a esteira nos levará no "AXIS="x,x" neste caso será para cima: Você pode ver a tabela para todas as direções neste spoiler abaixo: <JP M1="1" AXIS="0,1"/>
E por fim, definiremos a força e velocidade da esteira no MV="x,x" Coloque Infinity para força Infinita, E no outro a velocidade que queira (no caso, 9): <JP M1="1" AXIS="0,1" MV="Infinity,9" /> Segundo piso: A ligação da esteira para o piso de apoio (Como dito no início, essa ligação servirá para "segurar" ele, caso a esteira não esteja ligado à ele, ele irá para a direção que você definiu infinitamente): Você irá abrir uma TAG <JR />, e então definirá os pisos que serão ligados, a esteira › piso normal; M2="x" será o nosso piso esteira e M1="x" o nosso piso normal, para os valores x basta colocar o número dos nossos pisos: <JR M2="1" M1="0" /> E pronto! Abaixo uma XML para demonstração!
Movimentos com Joint Com certeza você sempre quis saber como fazer um piso que vai de um lado para o outro Infinitamente,ou até mesmo subindo e descendo! Para aprender, segue abaixo:
Ingredientes:
Propriedades - Primeiro piso que irá se mover precisa de um Massa de 100000 e Angulo fixo 1. - O piso para "segurar" o primeiro pode conter propriedades normais. - E o piso que irá rotacionar em um eixo e dará movimento ao primeiro precisa somente de Massa 999999. Começaremos com essa XML: XML inicial a dit : Criando os parâmetros de ligação Primeiro e Segundo piso: Você precisa conectar ele ao piso que irá estabilizá-lo e o segurar, assim: M2="0" é o nosso piso normal M1="1" é o nosso piso que irá se mover lado/outro e AXIS="0,1" para definir qual sua direção, se é para subir descer, de um lado para o outro, etc! (neste caso, para subir-descer usamos "0,1". Para saber outras direções consulte o spoiler abaixo.) <JP M2="0" M1="1" AXIS="0,1" />
Terceiro piso: É o nosso piso que irá se mover em um eixo e dará movimento ao primeiro piso! Para isso coloque um prego para saber quais coordenadas deve usar, e então vamos as joints: P1="204,200" É onde nosso prego se encontra, 204 é o X e 200 o Y no mapa M1="2" É o nosso piso que irá rodar MV="Infinity,0,6" É a força e a velocidade, seja Infinity para força e 0.6 para velocidade <JR P1="204,200" M1="2" MV="Infinity,0.6" /> E por final iremos conectar o nosso piso que gira ao piso que irá se mover! M2="2" É o nosso piso que gira M1="1" O nosso primeiro piso <JD M2="2" M1="1" /> E pronto! Abaixo uma XML para demonstração!
Balança
Explicação: Para fazer a balança precisamos de uma Joint de Polia (JPL), que fará com que os pisos se liguem a um determinado ponto no mapa. Ingredientes:
Propriedades - Os dois pisos somente precisam de Ângulo fixo 1 para que ele não fique rodando, como na XML abaixo: XML Inicial a dit : Criando os parâmetros de ligação Primeiro e Segundo piso Você precisa conectar o piso 1 (O numero do piso é definido pelo "Z": ![]() M2="1" Este conectará o nosso piso ao ponto P3="220,115" É a coordenada do ponto Agora vamos fazer a ligação do segundo piso, assim: M1="2" Este conectará o nosso piso ao segundo ponto P4="520,115" É a coordenada do segundo ponto <JPL c="9A723A,3,1,0" P3="220,115" M2="1" P4="520,115" M1="2" /> E então nossa XML será esta:
**Lembretes: - Todas as joints precisam estar dentro da TAG <L>aqui</L> - Você pode retirar os pregos caso queira, eles servirão apenas para saber as coordenadas dos pontos - Pode fazer invisível também! Basta retirar a TAG de cor (c="9A723A,3,1,0) dentro da joint. Balançar para trás/para frente Para alguns isso pode ser inútil, mas para outros é mais conhecimento e aprendizagem!
Explicação: O nosso principal objetivo aqui é fazer com que um piso fique balançando para trás e para frente! Para isso, fazemos um piso que rotacione em um eixo para dar movimento de ir e vir a outro piso, e com este piso indo e vindo dará o movimento à outro piso, que é o principal! Ingredientes:
Propriedades - O nosso piso (Rosa) irá rotacionar, precisa de uma Massa de 999999 - O piso vai-e-vem (Laranja) precisa de uma Massa de 300000 - O piso que irá balançar (Azul) pra trás/para frente necessita de uma Massa de 10000 - E o piso que irá "segurar" nossos outros pisos (Madeira), será comum Assim: XML Inicial a dit : Criando os parâmetros de ligação Primeiro piso Para que o nosso piso (Rosa) rotacione precisará definir os seguintes parâmetros: P1="153,271" É onde nosso prego se encontra, 153 é o X e 271 o Y no mapa M1="1" É o nosso piso que irá rodar MV="Infinity,1" É a força e a velocidade, seja Infinity para força e 1 para velocidade <JR MV="Infinity,1" M1="1" P1="153,271" /> Depois disso iremos ligá-lo ao piso que irá fazer o movimento de vai-e-vem Segundo piso: O nosso piso vai-e-vem (Laranja), precisa estar ligado ao primeiro piso (no qual é ele que dará este movimento à ele) M1="1" Este é nosso piso que rotaciona (Rosa) M2="2" Este é o piso vai-e-vem (Laranja) <JD M1="1" M2="2" /> E então faremos com que ele apenas faça movimentos para os lados (impedindo-o de ir para cima/baixo) AXIS="1,0" Definirá a direção M2="2" Este é o piso vai-e-vem (Laranja) M1="0" Este é o piso Madeira, que irá "segurar" nossos pisos, para que eles fiquem no alto. <JP AXIS="1,0" M2="2" M1="0" /> E por fim iremos conectar o nosso piso principal (Azul) aos pisos que irá dar a ele o movimento de balançar (Laranja), e ao piso Madeira. Terceiro piso: M1="3" Nosso piso (Azul) que irá balançar M2="2" Nosso piso (Laranja) que irá dar movimento ao Azul <JR M1="3" M2="2" /> M1="3" Nosso piso (Azul) que irá balançar M2="0" Nosso piso Madeira que irá direcionar o movimento do Azul <JR M1="3" M2="0" /> Pronto! Aqui uma XML para testes:
Botão de despawn
Propriedades - Primeiro piso (o nosso botão) precisa ter uma massa de 999999 e ângulo fixo 1 - Segundo piso (O que aparece/desaparece): massa de 1, ângulo fixo 1 e Amortecimento linear de 9999 - Terceiro piso: massa de 999999 e ângulo fixo 1 Ou basta copiar essa XML: XML Inicial a dit : Criando os parâmetros de ligação Para este mecanismo basta você ligar os pisos uns nos outros com a Joint de Revolução (<JR />) Vamos ás ligações: Ligue o botão (piso 1) à um piso normal (madeira 0) <JR M2="1" M1="0" /> Depois ligue o piso (O que aparece/desaparece) ao botão <JR M2="2" M1="1" /> E por fim, o piso que faz o movimento de queda ao que aparece/desaparece <JR M2="3" M1="2" /> Pronto! Assim ficará nossa XML:
Joint com cores Este tutorial é para aqueles que queiram que sua joint apareça no mapa!
Aqui um mecanismo simples para visualização: Você pode copiá-lo e colocar no editor (não precisa remover o que está escrito, copie e cole todo o conteúdo abaixo) <C><P /><Z><S><S L="802" H="26" X="402" Y="392" T="0" P="0,0,0.3,0.2,0,0,0,0" /><S H="19" L="19" o="77b1ce" X="517" c="4" Y="237" T="12" P="1,999999,0.3,0.2,0,0,0,0" /><S H="10" L="10" o="0" X="472" c="4" Y="236" T="12" P="0,0,0.3,0.2,0,0,0,0" /><S P="1,100000,0.3,0.2,0,1,0,0" L="19" o="FF0000" H="19" Y="236" T="12" X="591" /></S><D><DS Y="368" X="404" /></D><O /><L> <JR M1="1" MV="Infinity, 0.9" P1="472,236" />//Este é o piso azul rodando em volta// <JP AXIS="1,0" M1="3" />//Isso faz o piso vermelho se mover apenas direita e esquerda// <JD M2="3" M1="1" />//Isto liga vagamente o piso azul e vermelho// <JD M2="2" c="000000,5,0.4,0" M1="1" />//Esta é uma joint que mostra como o piso azul gira ao redor do piso preto// <JD M2="3" c="ffffff,5,0.4,0" M1="1" />//Esta é uma joint branca que mostra como os pisos de vermelho e azul estão ligados// <JP c="3FCE05,5,0.5,1" M1="3" />//Isto é a joint verde// </L></Z></C> Vou explicar como funciona a TAG de cor dentro de uma Joint Pegarei uma Joint qualquer da XML explicar cada parâmetro: <JD M2="2" c="000000,5,0.4,0" M1="1" /> Nossa TAG de cor é esta c="000000,5,0.4,0" - 000000 é a cor dela - 5 é o seu tamanho - 0.4 é sua opacidade - 0 e este por último define se ela é Primeiro plano ou Fundo (para Primeiro plano coloque 1, e para Fundo coloque 0) Efeito elástico Este tipo de Joint que iremos trabalhar agora ela será "elástica". É algo bem simples Propriedades - Seu piso que irá ter elasticidade pode ter um massa baixa, como por exemplo, 10. XML Inicial: a dit : Criando os parâmetros de ligação Você precisa ligar seu piso elástico ao o que vai o segurar (retângulo › madeira), assim: M2="1" Este é o piso elástico M1="2" Este é o piso madeira <JD M2="1" M1="2" /> Agora colocamos a TAG que dará elasticidade à joint, assim: HZ="1" valores baixos significam que a ligação irá oscilar lentamente e a joint será mais elástica, quanto mais alto o valor, mais rígida a joint será AMP="1" amortecimento da oscilação, você deve usar este parâmetro junto com o HZ, mas ele é opcional. Caso o valor seja alto, a oscilação chegará a um equilibrio mais rapidamente, caso seja baixo, ela pegará ao equilibrio mais lentamente. <JD M2="1" M1="2" HZ="1" AMP="1" /> Agora para que seu piso não fique indo para os lados, utilizamos AXIS na joint, assim: AXIS="0,1" Esta é a direção que o piso terá, no caso, somente cima/baixo M1="1" É o número do piso que será bloqueado, no caso este é o 1 (para saber o número do piso, olhe o Z: ![]() <JP AXIS="0,1" M1="1" /> Irá depender de sua preferência, mude os valores de HZ="x" e AMP="x" de acordo com seu gosto! Aqui a nossa XML final:
|
0 | ||
Muito bom! |
![]() ![]() « Citoyen » 1442598840000
| 0 | ||
Arrasou amiga |
![]() ![]() « Citoyen » 1442599080000
| 0 | ||
Aeee, mt lgl, vou tentar aprender um pouco, vai que consigo. Ótimo tópico |
![]() ![]() « Consul » 1442599860000
| 0 | ||
Ficou muito bom o tópico, Parabéns. :) |
![]() « Citoyen » 1442602620000
| 0 | ||
Muito bom!! |
![]() ![]() « Citoyen » 1442603340000
| 0 | ||
Melhor tópico desses sítios aqui :p |
![]() ![]() « Censeur » 1442603520000
| 0 | ||
AFF tou no telemóvel :( O balançar chama-se pêndulo para qm n sabe Dernière modification le 1442603700000 |
![]() ![]() « Citoyen » 1442605200000
| 0 | ||
Belo tópico Kurt ^^ |
0 | ||
Brilhante tópico!!! Parabéns kurt |
![]() ![]() « Censeur » 1442610120000
| 0 | ||
Esperei tanto por issooooo parabéns lindoo |
![]() ![]() « Censeur » 1442614140000
| 0 | ||
Muito bom Kurt! Mitando como sempre :P agora muitos vão parar de me pedir pra fazer tal coisa uhsauhsaas |
![]() ![]() « Censeur » 1442620500000
| 0 | ||
razooooooooo |
0 | ||
Tópico muuito bem feito, qnd eu ter dúvidas logo irei consultar aqui. bela estrutura |
![]() ![]() « Citoyen » 1442621460000
| 0 | ||
Nossa, muito bom mesmo. Sempre quis aprender a fazer um simples elevador saoksoaksoaksoak |
0 | ||
OBRIGADO SENHOR POR CRIAR ESSE TOPICOOOOO GRAÇASSS A DEUS AMEM AGORA NAO QUERO NINGUEM ME PERTUBANDO, CHEGA DESSE POVO QUE SO SABE PEDIR PEDIR E PEDIR Otimo topico parabéns :) Desenhos maravilhosos e muito explicativos gostei muitoo mesmo Dernière modification le 1442624940000 |
![]() ![]() « Censeur » 1442623140000
| 0 | ||
nlff a dit : :( |
![]() ![]() « Citoyen » 1442624940000
| 0 | ||
Muita física p pouca pessoa, tópico ficou mt bom. |
![]() ![]() « Citoyen » 1442625540000
| 0 | ||
Ótimo tutorial ;) parabéns |
0 | ||
M I T O U |