Para ter uma ideia do resultado deste tutorial, é melhor assistir ao vídeo correspondente.
No arquivo de trabalho PSD_C4D_R12_Dyn_Motor_Auto_Start.c4d, os elementos mais importantes da cena já estão preparados, para que possamos começar imediatamente a trabalhar com Dynamics. Como vamos começar a montagem do pequeno brinquedo veicular, todos os elementos perturbadores da cena estão temporariamente ocultos através dos interruptores de visibilidade no Gestor de Objetos.
Montagem da Cena
Vamos dar uma olhada rápida na composição da cena. Além do carro, há também um objeto esférico como futuro obstáculo, um objeto HyperNURBS com um objeto paisagem integrado, bem como chão, céu e objetos de luz para o ambiente e iluminação na cena.
Para tornar a montagem do veículo o mais simples e compreensível possível, o carro é composto apenas pela carroceria e pelas quatro rodas. Como rodas, são usados no total quatro objetos de cilindro, alinhados na direção X positiva e colocados no local designado para as rodas do veículo.
Para facilitar a conexão posterior com conectores e motores, a posição de cada roda é identificada por uma sigla (vl = frente esquerda).
A carroceria é gerada por um objeto Extrude-NURBS de um spline. É possível utilizar outro carro ou carroceria; o essencial é a correta integração posterior através de um conector ou tag Dynamics Body.
No diálogo de configurações do objeto Extrude-NURBS, está definida a largura de nosso veículo. Ela é determinada pelo deslocamento na direção X na extrusão. As arredondamentos nas bordas da carroceria proporcionam um visual natural e realista.
O objeto paisagem está oculto dentro do objeto HyperNURBS, proporcionando um terreno utilizável para a aventura off-road do carro. Graças à subdivisão HyperNURBS, podemos economizar na segmentação da paisagem sem obter um terreno muito angular.
Para garantirmos mais ação durante a viagem pela paisagem, vamos integrar alguns obstáculos. No meu caso, são simples objetos esféricos com raio de 50 cm, que serão distribuídos aleatoriamente na paisagem ou no objeto paisagem através do MoGraph.
Montagem do Veículo com Conectores e Motores
Vamos começar com o carro de brinquedo. Quais funções ele precisa atender para nosso propósito?
Primeiramente, as rodas precisam ser fixadas de forma giratória ao veículo; além disso, elas precisam de um sistema de acionamento para poderem se mover automaticamente. E, é claro, ele precisa detectar colisões - começando com o fato de que as rodas estão em contato com o chão.
Para disponibilizar essa funcionalidade através do novo Dynamics do CINEMA 4D, os elementos envolvidos precisam ter tags Dynamics Body para serem aceitos pela Engine Dynamics.
Começamos com as quatro rodas, todas selecionadas no Gestor de Objetos e definimos no menu Simulação>Dynamics como Cuerpo Rígido.
Dado que todas as quatro rodas devem possuir as mesmas propriedades dinâmicas, deixamos os quatro tags Dynamics Body selecionados e ajustamos os parâmetros desejados.
Na página de Dynamics, podemos manter as configurações padrão. A ativação instantânea é importante para que as rodas tenham contato imediato com o chão.
Na página de Colisão, auxiliamos no reconhecimento de colisões da Dynamics, definindo a forma como Eixo de Cilindro X. Isso corresponde à forma da roda e melhora o desempenho nos cálculos Dynamics. Para que o veículo salte levemente ao colidir com o chão, definimos uma leve elasticidade de 10%. Em contrapartida, aumentamos a fricção para 120%, para que as rodas possam aderir adequadamente ao chão.
Passamos para o próximo elemento do veículo, a carroceria. Infelizmente, o objeto Extrude-NURBS não é adequado como ponto de referência para a carroceria devido à sua posição desfavorável do eixo, então simplesmente utilizamos o objeto nulo Carro como substituto. Seu eixo está centrado no carro.
Portanto, atribuímos ao objeto nulo Carro um tag Dynamics Body como Cuerpo Rígido através do menu Simulação>Dynamics.
No diálogo de configuração das Tags do Corpo Dinâmico, permitimos que o acionamento do carro comece imediatamente.
Na página de colisão, precisamos considerar a hierarquia do nosso veículo para que a carroceria possa ser reconhecida. Para isso, definimos a hierarquia como Forma de Colisão Composta e escolhemos a melhor Forma como sendo o invólucro convexo ou a malha em movimento.
As demais propriedades de colisão podem permanecer; afinal, o veículo estará essencialmente sobre as quatro rodas e não irá capotar necessariamente.
Para garantir que o eixo desejado seja utilizado como centro de gravidade para nosso veículo, devemos brevemente ir para a página de massa.
Aqui, ativamos a opção de Centro de Massa Personalizado - no entanto, como não queremos nos desviar do eixo definido, deixamos os valores de deslocamento em X, Y e Z como 0.
Se iniciássemos a animação agora, nosso veículo simplesmente desmoronaria. Isso não é surpreendente, pois definimos apenas cinco Corpos Dinâmicos e o Cinema 4D ainda não tem conhecimento dos relacionamentos construtivos.
Vamos mudar isso agora com Conectores. Com eles, fixamos as rodas no veículo, permitimos a rotação em torno do eixo da roda e ao mesmo tempo implementamos uma suspensão razoável para o percurso pelo terreno.
Vamos obter o primeiro Conector no menu Simulação> Dinâmica.
Cada roda terá seu próprio conector. Começamos com a roda dianteira esquerda e renomeamos o novo Conector de forma adequada. Para que o conector assuma a posição da roda, ativamos a Ferramenta de Assumir do menu Funções e arrastamos a Roda vl para o Campo de Objeto para assumir.
Após clicar no Botão de Atribuição, o conector estará na mesma posição que a roda designada.
Da mesma forma, criamos o próximo conector; desta vez para a roda dianteira direita. Também associamos a posição da roda correspondente a este conector através do Comando de Assumir.
Antes de prosseguirmos com as rodas traseiras, alinhamos os conectores nas rodas dianteiras corretamente. Para isso, selecionamos o conector e o giramos para fora usando o Ângulo de Cabeçalho no Gerenciador de Atributos com a parte de dobradiça amarela. Para a roda dianteira direita, o ângulo é de 90°, para a roda dianteira esquerda, o ângulo é de -90°.
Da mesma forma, agora você pode equipar as duas rodas traseiras com conectores na posição correta e configurar a rotação correta. A figura abaixo mostra os quatro conectores posicionados vistos de cima.
Para que os conectores sejam visíveis mesmo quando não estão selecionados, ative a opção Sempre Visível na página de exibição do Conector Settings Dialog. Reduza um pouco o tamanho dos conectores para que correspondam melhor ao veículo.
Agora devemos finalmente determinar a função correta para os conectores; afinal, queremos eixos com suspensão e não dobradiças no carro. Isso é feito na página do objeto, onde definimos o tipo de Suspensão da Roda para os quatro conectores.
Ainda mantemos os quatro conectores selecionados, pois podemos configurar as próximas definições para todas as quatro suspensões de rodas. Como primeiro objeto para conectar os conectores, arrastamos o Objeto Nulo Auto como Objeto A para o campo correspondente.
Escolhemos um valor de 20 para a Rigidez da Suspensão e 20% para a Amortização da Suspensão, ou seja, a rapidez com que a suspensão retorna à sua posição original.
Ativamos o Limite Inferior e Superior na direção Y, com um deslocamento de 20 cm cada. Embora seja improvável que nosso veículo atinja esses limites, a cena se tornará mais organizada.
Agora vamos nos concentrar em cada um dos conectores ou Suspensões de Roda individualmente. A única adaptação que precisamos fazer para cada conector é definir o segundo objeto de ligação. Para isso, arrastamos a roda correspondente ao conector para o campo Objeto B.
Quando tivermos configurado os quatro conectores ou suspensões das rodas, também os integramos na hierarquia de objetos do veículo. Colocamo-los próximos das rodas como subobjeto no objeto nulo "Carro".
O que falta ao nosso carrinho de brinquedo é a propulsão para que possa se mover automaticamente. Embora fosse desejável uma tração nas quatro rodas para fora de estrada, no nosso exemplo, apenas as duas rodas dianteiras serão acionadas com motores. Dois motores, pois dessa forma a transmissão de potência para as rodas individuais é mais correta fisicamente.
Vamos inserir o primeiro motor na cena através do menu Simulação>Dynamics.
De forma semelhante aos conectores, também renomeamos o motor de acordo com a roda acionada. Neste caso, o motor irá acionar a roda dianteira esquerda.
Com a ferramenta Adotar do menu Funções, vamos permitir que o motor adote a posição da roda. Após clicar no botão Atribuir, o motor estará na posição desejada e só precisará ser alinhado.
Faremos isso através do Gerenciador de Atributos na página de Coordenadas. Giramos o motor em um ângulo de direção de 90°, de modo que a direção amarela coincida com a rotação da roda.
O motor é vinculado através dos campos do objeto em seu diálogo de configurações. Em nosso caso, colocamos a roda dianteira esquerda no campo Objeto A. Para a propulsão, damos ao motor uma velocidade angular alvo de 400° e um momento de torção de 50.
Da mesma forma, agora instalamos mais um motor para acionar a roda dianteira direita. Renomeamo-lo adequadamente e mais uma vez transferimos a posição da roda correspondente para o motor com a ferramenta Adotar.
Também giramos o segundo motor no Gerenciador de Atributos para a direção correta e transferimos desta vez a roda dianteira direita como Objeto A.
O segundo motor naturalmente recebe os mesmos parâmetros para a velocidade angular alvo e o momento de torção.
Agora a propulsão foi corretamente instalada no veículo. Recomendo incluir os motores como subobjeto na hierarquia de objetos do veículo, para que o Editor permaneça organizado durante a Simulação.
Antes de finalmente deixarmos nosso carro andar, precisamos de um terreno sólido, caso contrário, o carrinho de brinquedo simplesmente cairia no vazio.
Para nosso primeiro teste e como camada de base para mais tarde, transformamos o chão em um objeto de colisão. Para isso, selecionamos o objeto do chão e atribuímos a ele uma Etiqueta de Corpo Dynamics através do menu Simulation>Dynamics.
Como é comum em um objeto de colisão, o diálogo de configurações é bastante simples. O que nos interessa principalmente é o valor de fricção. Aumentamos para 100% para que as rodas possam aderir rapidamente e acelerar corretamente.
Ao pressionar o botão de reprodução agora, o carrinho de brinquedo começa a andar sozinho. Mais tarde, vamos equipar o carro com um pequeno controle; por enquanto, vamos nos concentrar no terreno.
Expansão da cena com elementos Dynamics e MoGraph
Até agora invisível, pois desativado como objeto paramétrico através do Gerenciador de Objetos, o objeto de paisagem será utilizado agora como terreno montanhoso. Assim como com o objeto de chão, devemos primeiro definir o terreno como um objeto de colisão. Atribuímos então ao objeto HyperNURBS pai uma Etiqueta de Corpo Dynamics como objeto de colisão através do menu Simulation>Dynamics.
Também neste objeto de colisão, a página de colisão do diálogo de configurações é de particular importância. Aqui precisamos da forma de colisão sendo o mesh estático, para que o carro possa reconhecer cada elevação na superfície posteriormente. De forma análoga ao objeto de chão, atribuímos um alto valor de fricção de 100%.
Vamos testar como nosso carro se sai no terreno. Para isso, primeiro movemos todo o grupo de carros sobre a coordenada Z no Attribute Manager para 3000 cm. Assim, o carro está pronto na direção de viagem e pode rumar em direção ao terreno com ímpeto.
Ao clicar no botão de reprodução, podemos ver nosso carro de brinquedo navegando corajosamente pela paisagem montanhosa. Para animar um pouco mais a cena, adicionamos obstáculos adicionais.
A base para nossos obstáculos já existe na forma do objeto esférico. Para que as bolas clonadas não apenas fiquem no caminho do carro, mas também sejam empurradas para longe, devemos defini-las como Corpo Rígido. Na verdade, não importa se a bola em si ou o objeto clonado recebe o tag de corpo dinâmico. Vocês serão mais flexíveis com a primeira opção, pois podem atribuir propriedades dinâmicas específicas para cada tipo de clone.
Vamos então atribuir ao objeto esférico o tag de corpo dinâmico necessário como Corpo Rígido; o encontramos como de costume no menu Simulação>Dinâmica.
No diálogo de configurações do tag de corpo dinâmico para a esfera, na página Dinâmica, configuramos o Trigger para em colisão. Isso evita que as bolas se movimentem indesejadamente, fazendo-as reagir somente quando o carro ou outra bola provoca uma colisão.
Devido à forma simples do objeto, confiamos na deteção automática de colisões; um aumento de fricção de 80% mantém as bolas principalmente no chão, permitindo que rolem pelo terreno sem saltos indesejados.
Agora a bola está preparada com propriedades dinâmicas, para que possamos distribuí-la pelo terreno. Para isso, usamos um objeto clonado do menu MoGraph.
No Objeto Manager, atribuímos o objeto esférico ao objeto clonado como clone. Como estamos usando uma esfera paramétrica, que usa o centro da esfera como ponto de referência, posicionar os clones das bolas significaria que todos os clones estariam parcialmente enterrados no terreno.
Para evitar isso e mover as bolas para cima de acordo com o raio, na página Transformação do diálogo de configurações, encontramos a opção de definir um deslocamento. Movemos as bolas na direção Z em 50 cm, ou seja, o raio da bola.
As configurações reais para a duplicação e distribuição dos clones são feitas na página Objeto do diálogo de configurações.
Primeiro selecionamos o modo Objeto; afinal, queremos usar o objeto paisagem para distribuir os clones. Em seguida, arrastamos o mencionado objeto paisagem para o campo correspondente Objeto.
A distribuição dos clones deve ser na superfície do objeto, e a quantidade pode ser determinada por vocês mesmos. Para evitar que o carro tenha que remover um grande número de bolas, um número máximo de 80 seria recomendado.
Na imagem abaixo, você pode ver o progresso atual na renderização. As bolas foram bem distribuídas no objeto paisagem, mas ainda estão todas voltadas na mesma direção. No entanto, esse pequeno problema pode ser resolvido rapidamente com um efetor de aleatoriedade.
Para atribuir o efetor de aleatoriedade ao objeto clonado ao incorporá-lo na cena, selecionamos o objeto clonado no Objeto Manager, antes de pegar o efetor de aleatoriedade do menu MoGraph>efetores.
No diálogo de configurações do efetor, na página Parâmetro, encontramos os parâmetros de transformação. Como as bolas devem ser giradas apenas ao redor de todos os eixos, precisamos apenas de parâmetros de ângulo alterados. Um ângulo de 90° em cada caso é suficiente para fornecer uma margem de manobra suficiente para várias rotações.
Uma renderização de teste mostra que as bolas, graças ao efetor de aleatoriedade, agora estão distribuídas aleatoriamente na paisagem, com diferentes rotações.
Agora é hora de soltar o nosso carro de brinquedo nos obstáculos. Como no futuro podemos esperar mais colisões, vale a pena dar uma olhada nas Configurações de Dinâmica e nas Configurações de Documento, dependendo do tamanho ou escala dos obstáculos.
Como o tamanho das bolas, rodas e do carro de brinquedo estão muito próximos da escala predefinida e lidam bem com a Tolerância de Colisão, não são necessários ajustes neste exemplo.
Agora você pode pressionar o botão de reprodução e observar o carro durante sua jornada pelo terreno cheio de obstáculos.
Adicionando um controle simples para o carro com XPresso
Seria ótimo se o carro não simplesmente seguisse em linha reta pelo terreno, mas se nós, como usuários, também tivéssemos a capacidade de controlá-lo.
Para o nosso exemplo, basta uma direção simples para a esquerda ou direita através de um controle deslizante. Como na verdade precisaríamos controlar dois objetos (as rodas ou conectores), mas só queremos um controle conveniente, simplesmente integramos um parâmetro de controle próprio na forma de Dados do Usuário.
Agora temos uma maneira de controlar um parâmetro próprio. Agora só precisamos encaminhá-lo para o local correto em nossa estrutura do veículo.
Uma tarefa ideal para XPresso. Para isso, precisamos primeiro de uma Tag XPresso, que podemos atribuir da maneira mais simples através do menu de contexto com o botão direito do mouse no submenu Tags CINEMA 4D.
Clicando duas vezes na Tag XPresso, abrimos o Editor XPresso. Como primeiro ítem ou Nó (Node), arrastamos o Objeto Nulo Auto do Gerenciador de Objetos para a janela do Editor XPresso.
Para disponibilizar nosso parâmetro criado como uma porta para a conexão, clicamos no botão vermelho das Portas de Saída e selecionamos a Porta Lenkung do submenu Dados do Usuário.
Com nosso parâmetro Lenkung, queremos influenciar o ângulo de direção dos Conectores de Suspensão. Para acessar esses parâmetros no Editor XPresso, procuramos os dois Conectores da roda dianteira esquerda e direita no Gerenciador de Objetos e também os arrastamos para o Editor XPresso.
Como queremos passar um valor para os dois Conectores, precisamos dos parâmetros Ângulo de Direção nas Portas de Entrada. Para isso, clicamos no botão azul das Portas de Entrada dos nós de Conector e selecionamos a Porta Ângulo de Direção no submenu Atributos do Objeto.
Agora só precisamos conectar as duas portas de ângulo de direção com a porta de direção do carro. Para fazer isso, basta arrastarmos de um port para o outro enquanto mantemos o botão do mouse pressionado.
Nossa breve incursão no XPresso já está concluída, então podemos fechar o Editor XPresso. Para não precisarmos procurar constantemente o objeto nulo e sua entrada de dados do usuário para controlar o carro, simplesmente integramos o controle deslizante ao Display Head-Up (HUD) da janela do editor.
Para isso, clicamos com o botão direito do mouse na entrada do parâmetro da direção no Gerenciador de Atributos e selecionamos no menu de contexto a opção Adicionar ao HUD.
Para mover a entrada do HUD no editor, basta clicar com o botão esquerdo mantendo pressionadas as teclas (Ctrl)- ou (Ctrl) e posicionar com o mouse em um local apropriado.
Além disso, para garantir que o elemento do HUD não seja visível apenas quando o veículo estiver selecionado, chamamos o menu de contexto correspondente pressionando o botão direito do mouse e selecionando no menu Mostrar a opção Sempre.
Agora você pode clicar no botão de reprodução e enviar o carro pelo terreno conforme desejar com o controle deslizante. Certifique-se de voltar a direção ao iniciar cada viagem para evitar derrapagens.
Quem desejar transformar mais tarde essa jornada aventureira em uma animação, basta adicionar keyframes nos pontos de controle importantes para o respectivo valor de direção. Divirta-se girando pelo terreno!