Pra quem é este tutorial?
Para todos que queiram aprender a modelar para GTA, ou até mesmo outros jogos.
Por outro lado, não ensinarei os básicos de Sketchup e eu assumo que você já saiba do básico sobre ele (nada demais, por exemplo saber modelar uma casa de cubo com janelas e criar componentes).
Para aprender o básico de Sketchup, você facilmente encontra no Google e Youtube. Pode pesquisar por tutoriais em português mesmo, eles são ótimos, o Sketchup é muitíssimo usado no Brasil, há até mesmo vários empregos.
Por que usar Sketchup?
Google/Trimble Sketchup é líder em produtividade na modelagem arquitetônica.
Ele deve ser "o" ou "um dos" softwares de modelagem mais fáceis de usar do mundo. Outro dia deixei meu PC aberto no Sketchup e fui mijar, quando voltei o meu cachorro tinha modelado uma Glock G25.
O ponto negativo dele é que ele é, simplesmente, simples! O que além de ser bom, é ruim ao mesmo tempo. Por exemplo, modelar um carro no Sketchup não é impossível, mas é uma tarefa um tanto sem sentido e pouco produtiva, já que o Sketchup não foi feito para isso (neste caso, o Blender é a melhor opção). Sketchup é bom para construções, objetos etc, coisas mais "simples", assim como ele é interessante também para modelagens lowpoly.
Sketchup, como o próprio nome diz ("sketch"), tem foco em rascunhos, por isso é produtivo em modelagens simples.
É sim muito utilizado em desenvolvimento de jogos, e mesmo engines como Unity têm suporte nativo (e muito bom) à arquivos .skp.
O que você precisa antes de começar?
Sketchup que exporte .OBJ/.FBX (ou improvise!)
Pode ser qualquer um, mas eu particularmente recomendo o Sketchup 8, na qual é o último criado pelo Google e após vender pra Trimble, testei o 2013, 2014 e 2016 e todos tinham bugs. Por outro lado o 2016 adicionou umas coisas legais.
O Sketchup 8 grátis tem uma licença que, pelo meu entendimento, pode ser usado em projetos comerciais, mas após ser comprado pela Trimble isso mudou.
É recomendado o "Pro" por somente um motivo: Exportador .OBJ/.FBX... A diferença do Pro pra versão grátis é inútil para você, e você pode querer baixar a versão grátis. Mas se você baixar a versão grátis, em seguida você terá que procurar e baixar algum exportador de arquivo .OBJ (alguma extensão pro Sketchup que exporte para .OBJ, pois é .OBJ que utilizaremos!)
Atualização: Para importar no 3DS Max, eu recomendo que exporte em .FBX, senão pode causar vários bugs. Eu já portei um mapa grande, de quilômetros, do Sketchup pro GTA San Andreas usando 3DS Max, e em .FBX ficou ótimo, há mais informações aqui.
Download do Sketchup 8 Grátis em Português BR — não é pirataria! É original.
Se você quiser baixar o Pro pirata, a escolha é sua, e não envie links piratas no fórum pois é contra as regras.
Em últimos casos, você pode querer improvisar, por exemplo salvando em .dae e convertendo para .obj ou outro formato utilizando algum aplicativo para isto (assim como outros editores 3D).
(Opcional) Extensões úteis
Sketchup é um lixo se você não instala extensões/plugins.
2Nibble Tools — Uma extensão que eu mesmo criei focado em desenvolvimento de jogos. São funções básicas que eu acho que deviam vir nativamente no Sketchup, por exemplo trocar o material das faces sem mudar mapeamento UV, recarregar todas as texturas etc. Pare de ler e entre lá e baixe logo.
CleanUp³ — Limpa os resíduos do seu modelo, como arestas inúteis e outras melhorias. Espere que eu ainda explicarei como usá-la.
Solid Inspector (procure no Google) — Adorei essa extensão. Ela descobre falhas no seu modelo, como buracos e outros tipos de erros para você corrigir, ou não.
Eneroth Extended Deletion — Eu não consigo mais viver sem isto, é muito, muito necessário... Sabe quando você vai deletar uma face mas continuar as arestas por volta? HORRÍVEL, com esta extensão você pode configurar um atalho para deletar as arestas juntas, como deveria ser. Eu gosto de usar na tecla End, assim o Delete continua normal e o End utiliza esta melhora. Há um tutorial de como fazer isto lá na página.
Eneroth Texture Positioning Tools (procure no Google) — Eu amei ele! Ele tem uma ferramenta onde num clique irá alinhar o mapeamento da textura com uma aresta, e em outro clique você pode rodar 90°, inverter etc.
Reversed Faces Tools (procure no Google) — Auxilia na hora de inverter as faces. Ainda explicarei sobre faces invertidas.
Model Info (procure no Google) — Indo em "Plugins > Model Info > Statistics to console" você pode ter informações importantes sobre o peso do seu modelo, como o número de triângulos (triangles).
Axes Tools (procure no Google) — Você pode rapidamente configurar a posição do eixo do seu componente para alguma posição, como deixar no centro, ou embaixo etc. Ainda explicarei sobre eixos!!!!!
Pivot Around Axis (procure no Google) — O Sketchup não tem como rotacionar um modelo a partir do seu eixo, o que é comum e importante nos jogos (por exemplo, uma porta precisa ter o eixo do lado para ela abrir corretamente, e com esta extensão você pode estar a abertura da porta se está rotacionando como deveria para o jogo). Você dificilmente pode precisar dessa extensão, mas ainda precisará. Assim como peças para o Tuning Mod, onde também são rotacionadas a partir do eixo.
Material Tools (procure no Google) — Faz algumas coisas interessantes, mas pode ser útil principalmente para você limpar o seu modelo na hora de criar um modelo de colisão.
Selection Memory (procure no Google) — Sabe quando você está fazendo uma seleção difícil, e sem querer perde toda ela? Não irá mais perder!
Select Curve (procure no Google) — Há vários casos que você precisa selecionar todas as arestas de um quadrado, ou de todo um caminho longo, e é bem chato, né? Com esta extensão você pode fazer isto num só clique.
Dica: SketchUcation é melhor que o Extension Warehouse. Tem muita coisa boa lá.
(Opcional) Template que eu fiz
Eu criei um template focado em desenvolvimento de jogos para aparecer sempre que você abrir o Sketchup ou clicar em Arquivo > Novo. É opcional mas eu recomendo muito.
Nota: Barra de ferramentas não incluída, afinal, elas são as extensões que eu tenho.
Download
Leia o arquivo "Leiame" para saber como instalar (10 segundos) e entender exatamente o que é e os benefícios em usar. Não explicarei aqui.
Interface
Obviamente a interface é de sua preferência, mas deixo aqui uma dica do que você possivelmente mais usará:
Nota: Nos Sketchups mais novos todas as janelas ficam grudadas do lado direito, mas o que importa é o que usar.
Nota 2: Obviamente você vai querer deixar as janelas fechadas ao invés de todas abertas o tempo todo ocupando espaço. Basta clicar na parte de cima da janela para ela "minimizar".
Você pode abrir estas janelas na guia "Janela" selecionando eles.
(no caso do Suavizar arestas, selecione duas arestas ou mais e botão direito > Atenuar/Suavizar arestas para abrir a janela)
Materiais — Você usará muito essa janela, já que é onde os materiais estão.
Suavizar arestas — O "smooth", onde faz suavizar o seu modelo, o que é importante para ter um modelo bonito, e o Sketchup tem uma ferramenta de suavização muito fácil de mexer!
Informações da entidade — Onde você pode por exemplo mudar o nome das coisas, ver algumas informações, mas principalmente configurar os segmentos. Que ainda explicarei!...
Estrutura — É a "hierarquia", como você pode ver em todos os softwares de modelagem:
Na qual ela não importa muito para o Sketchup, mas você pode necessitar em algum momento, como antes de exportar.
Estas são as janelas mais importantes quando o assunto é modelagem de jogos.
Componentes
Como acabei de mostrar na imagem acima, os "componentes" do Sketchup ficam desta maneira dentro do ZModeler.
Na maioria das vezes no GTA você só usará 1 componente, sem nenhum outro dentro, como acontece em praticamente todos os objetos de mapa etc etc etc. Mas em outros jogos isso pode ser super útil.
A utilização de componentes separados também serve para não soldar vértices e assim não aumentar o número de vértices/triângulos. Você aprenderá na seção sobre triangulação no fim do tutorial.
Faces invertidas
Faces invertidas não são mostradas no jogo, mas são mostradas no Sketchup, como pode se ver no interior do cubo:
No meu template, elas estão em ciano, pelo motivo que já expliquei no "Leiame". No template padrão básico do Sketchup está em azul cinzento (o que é um pouco difícil de enxergar).
E se eu fizer isso com o cubo?
Essa face em ciano não aparecerá, ela não existe no jogo! (nem no ZModeler). Somente as brancas aparecerão. Ou melhor dizendo, não aparecerá neste ângulo de visão, pois ela está invertida virada pra dentro, então só será possível vê-la caso a câmera estiver dentro do cubo, algo que você não vai querer, né?
Para corrigir isso, simplesmente "Botão direito na face > Inverter faces"
E assim a face ficará branca.
Se a face tiver um material, você vai ter que pegar o material e recolocar, portanto neste caso eu recomendo o uso da extensão "Reversed Faces Tools" (que citei no início deste tutorial). Basta selecionar a(s) face(s) invertida(s) ir em "Plugins > TIG: Reversed Faces Tools > Reverse Faces and Materials".
Pivot e eixos
O pivot é a origem do modelo, o centro, e ele tem 3 eixos.
Quando um modelo é rotacionado, ele rotaciona a partir do eixo. Assim como movido (na maioria das vezes).
Um bom exemplo é uma porta, onde o eixo precisa ficar do lado dela:
Simplesmente, é a origem da rotação.
Para fazer o teste acima usei a extensão Pivot Around Axis que citei no início do tutorial.
Isso não é tão importante na maioria das vezes no GTA, já que você geralmente só deixar o eixo no centro mesmo.
Pode ser importante em outros jogos, em carros e caso você esteja modelando peças para o
Tuning Mod, onde a origem da rotação, posição da câmera e até origem do esticar da peça são a partir do eixo! Então as vezes pode ser interessante ajustar o eixo em alguma posição que auxilie nisso. Por exemplo colocar o eixo na parte debaixo do aerofólio faz o jogador poder esticar o aerofólio para cima facilmente.
No entanto, no GTA você não deverá fazer isto no Sketchup e sim no ZModeler, depende do padrão de exportação (sempre que eu exporto para .obj aqui a posição do pivot se perde...).
Os eixos só existem nos componentes. Para configurar o eixo do componente, basta ir "Botão direito no componente > Modificar eixos"
E em seguida colocar ele numa boa posição. Prefira o eixo azul virado para cima! (no GTA, azul = Z, mas na maioria dos jogos e no ZModeler, azul = Y, portanto isto pode te confundir, sempre preste atenção)
Para colocar o pivot no centro do componente (ou do lado, ou embaixo, ou em cima...) eu recomendo o uso da extensão Axes Tools, que já citei aqui. De qualquer modo, pro GTA você pode colocar o eixo no centro do modelo dentro do ZModeler indo em "Display > Local Axes > Center to Object" e clicar no modelo.
Segmentos
Sempre quando você cria um círculo ou qualquer tipo de curva no Sketchup, ele te dá um número de segmentos único.
Por exemplo, um círculo tem por padrão 24 segmentos:
Isso pode ser highpoly ou lowpoly demais dependendo da ocasião, e a regra número 1 para uma boa modelagem é saber usar definição da maneira correta: Aplicando a definição onde mais é necessário! É assim que você se torna um bom modelador.
Para escolher quantos segmentos, use a janela "Informações da entidade" clicando na borda com o botão direito:
Por exemplo,
8 segmentos:
Comparação:
Materiais e texturas
É muito importante tomar cuidado com certas coisas quando o assunto é materiais e texturas do Sketchup para o GTA e outros jogos.
O Sketchup tem um sistema de materiais e mapeamento UV muito diferente do comum, e isso é um dos principais motivos do Sketchup ser criticado no uso de jogos, já que é uma coisa muito automática e pouco otimizada e livre, mas extremamente (muito mesmo!) mais fácil do que os outros softwares de modelagem, mas também limitado.
Como as texturas devem ser?
Primeiro, um assunto que vale para qualquer jogo e qualquer software de modelagem.
Todas as texturas têm que ter resolução potência de 2, ou seja:
4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, e no máximo 4096. Acima disso o GTA / algumas placas de vídeo não suportam.
Por exemplo: 512x256, 1024x1024, 32x128 etc. Se você por exemplo tem uma textura 400x400, estique-a para 512x512; caso 300x300, prefira diminuir para 256x256; caso 950x1000, estique para 1024x1024; caso 42x45, diminua para 32x32 etc. Entendeu, né?
Isso é regra para todos os jogos 3D, todos os jogos são assim pois basicamente o PC consegue processar melhor, a compressão da textura funciona melhor e tudo mais.
Também nunca use arquivos .jpg como textura. Isso é sem sentido! .jpg é um formato para fotos extremamente compressado com alta perda de qualidade, o que inclusive se perde a cada salvação. O melhor a se usar é por exemplo .png (além de vários outros, mas vamos continuar na simplicidade aqui, já que .png é facilmente manipulável por qualquer editor de imagem, exceto o MS Paint que faz a transparência ser perdida).
Configurando o material
Um material no Sketchup é extremamente simples, pois só usa diffuse/basecolor e coloração, não há absolutamente nada além disso! Ele é realmente um software simples, o que é bom para o GTA SA, já que no GTA SA também usa materiais simples (de somente diffuse/basecolor, coloração e no máximo um environment map e specular highlighting).
Janela de criação de novo material:
Vermelho: Nome do material. Deixe o mesmo nome da textura! Caso necessitar de nome diferente, coloque algum diferenciador básico, como "2", "3" ou "a" e "b" etc. Te ajudará na hora do ZModeler.
Laranja: Cor do material. É aqui que a coisa complica, pois o Sketchup tem um configurador de cor de material muito ilimitado e diferente do que um jogo faz, inclusive, se você editar a cor do material, a cor da sua textura também será editada!!! No GTA SA (não sei de outros) suporta cor nos objetos de mapa; Veículos só suportam caso tenha alguma cor primária ou secundária etc na mesma mesh, ou algum material de luz (use
VehFuncs para corrigir esta limitação!); Peças para o
Tuning Mod sempre suportam. Portanto tome cuidado. Branco = cor original da textura, enquanto no Sketchup o branco é realmente uma textura editada para ficar branca/cinza clara. Para pintar um material que usa textura sem se preocupar com problemas, você terá que usar uma textura sem saturação (tons de cinza), e relativamente clara (tons de cinza claro), daí sim você pode usar a pintura de material que terá o mesmo (ou quase o mesmo) resultado, e isto será ÓTIMO pois você economizará o número de texturas (dica: use isto em texturas de paredes! Uma única textura de parede branca você poderá pintar numa infinidade de cores diferentes).
Azul: Isso é o tamanho do mapeamento UV padrão quando você coloca o material no modelo. Isso é somente do Sketchup, nada a ver com jogos.
Verde: Opacidade. Testei criando um vidro (um material preto sem textura em baixa opacidade) e realmente funcionou como deveria. Se tentar usar isso e ficar bugado dentro do jogo, pode tentar clicar com o botão direito do mouse no modelo dentro do ZModeler, ir em Properties > Mesh > Vertices > Format > UV Channels e mudar para "2". Caso objeto de mapa,
ative a flag de alpha no .ide.
Mapeamento UV
Como eu disse, o mapeamento UV do Sketchup é muito diferente do comum, e muito mais fácil.
Por outro lado, o mal uso dele faz causar problemas na exportação para jogos.
Durante o mapeamento há taxinhas
E você inclusive pode mover estas taxinhas, não somente clicando-segurando e arrastando, mas também clicando, soltando e clicando em outro lugar para colocá-las em outro lugar.
O problema está na taxinha amarela. Vamos supor que você teve que fazer isso:
Olha o que acontece ao exportar o modelo:
Ele irá criar duas texturas, pois o Sketchup não sabe contornar esta situação.
O fato é que você NUNCA pode deixar a taxinha fora do ponto azul:
Lembre-se disso!!!
O pior é quando a taxinha ainda está no ponto azul, mas na verdade ela não está e é exportado uma textura separada. Assim você vai ter que identificar, ir lá e tirar e colocar no ponto azul novamente para "corrigir" e exportar novamente para ver se mais uma vez exportou errado, ou ficou certo.
Às vezes pode ser frustrante, então tome cuidado enquanto você esteja modelando para não precisar passar por isso.
2Nibble Tools te ajudará neste problema.
Por outro lado, você pode sim se sentir livre em mexer as taxinhas, só que não tanto! Se fazer coisas loucas como cruzar as taxinhas fazendo um X, também dará este problema.
Mas isso por exemplo,
exportou normalmente:
O problema é realmente quando você tenta desafiar o Sketchup, distorcendo a imagem.
Outras otimizações
Suavizar
Suavização é uma das coisas básicas do Sketchup, mas não tive como deixar de colocar aqui pois é incrível a quantidade de pessoas que modelam coisas para o GTA e não aplicam suavização, que é o básico da modelagem.
Para suavizar os modelos use a janela de "Suavizar arestas", simplesmente selecionando duas ou mais arestas (ou o modelo inteiro, ou o componente etc) e indo em "Botão direito > Atenuar/Suavizar arestas".
Configure bem quantos graus de ângulo você quer suavizar. Evite exagerar nos números (acima de 90° = perigo!)
Outra coisa super importante que é pouco falado:
Vamos supor que eu tenha esta parede, e eu quero a suavizar:
E então, tudo certo?
Quase!
O problema é que esta aresta suavizada, faz suavizar até o fim da parede:
As vezes pode ficar um resultado bom ou aceitável, mas na maioria das vezes (especialmente quando a parede é muito grande ou há uma janela no modelo) fica muito,
muito feio!
O certo é fazer um limitador de suavização, criando uma aresta ali:
Agora a suavização só irá até a metade, fazendo uma suavização como deveria ser (suavizando a mesma distância para todos os lados).
Abaixo uma demonstração melhor, onde eu adicionei uma janela ao modelo.
Na imagem abaixo eu aumentei o contraste para você conseguir enxergar melhor a suavização:
Viu como é importante criar um limitador para a suavização ir só até onde você quer?
Isto é sim muito importante, não só para a suavização mas também para a geração de iluminação da Unity (como o GI) ou
prelighting do GTA 3/VC/SA.
Topologia
Isso também faz a gente entrar no assunto de topologia, mas esse é um assunto um tanto complexo e não preciso abordar aqui senão o tutorial ficaria muito grande, dependente do caso pode ou não ser tão necessário (para modelar um carro ou skin é
extremamente importante estudar topologia!)
Procure sobre topologia no Google. Você aprenderá rápido. É basicamente o bom uso dos triângulos para a suavização etc ficar correta, bonita e uma mesh (malha) bem otimizada. Usar faces ocupando áreas de mesmo tamanho, triângulos em mesmas direções etc deixa em geral o modelo mais bonito e correto, sem detalhes tortos e diminuição do uso de triângulos para ter melhor qualidade (ou seja, otimização!). E topologia é muitíssimo importante em modelagem lowpoly, pois os triângulos do lowpoly são muito visíveis!
Resíduos
Procure por faces que não aparecerão no jogo.
Isso é uma coisa extremamente simples que economiza MUITOS triângulos de peso da sua modelagem — ou melhor, o número de vértices, que é o que realmente importa no processamento da malha.
Procure entrar dentro dos modelos, ver se há faces na qual no jogo nunca serão vistas, por exemplo um modelo de uma casa não precisa ter um "chão" lá dentro, já que a casa ficará em cima de um chão dentro do jogo, então porque deixar uma face ali?
Como eu disse no início do tutorial, use o CleanUp para limpar o seu modelo, mas tome muito cuidado com as configurações ou pode estragar o seu modelo!
Eu deixo no "Optimizations" o "Purge unused" selecionado, e no "Edges" tudo selecionado (exceto o Smooth). De resto eu deixo tudo sem selecionar (exceto "General" que não importa, vem selecionado).
Assim como eu também sugeri o uso da extensão "Solid Inspector" para ser usada também quando terminar de modelar. Basta ativar ela, clicar nos componentes (ou ter selecionado o modelo todo) para aparecer vários círculos na tela mostrando as partes onde há buracos ou imperfeições. Veja cada um destes círculos se é um buraco proposital ou não. Em modelagens complexas, isso ajudará muito! (me ajuda
muito ao modelar as quadras do
IMPUNES)
Triangulação
Também peço para que você estude sobre triangulação.
"Ham? Qual a diferença??"
A diferença é que num o "cubo" ali na frente está soldado, e no outro não (só está por cima).
Quando o assunto é "soldar" o Sketchup é um problemão! Já que ele solda tudo automaticamente (o que pode ser bom, já que mal modeladores modelam modelos inteiros em outros programas sem soldar e causa um peso drástico), mas soldar partes desnecessárias pode aumentar o número de triângulos do modelo.
Para você evitar que o Sketchup solde as arestas, separe-as em milímetros ou em componentes. Só. Simplesmente. Por exemplo o cubo em cima do outro do meu exemplo, para economizar e ter somente 22 triângulos eu modelei, e depois separei um cubo do outro, deixando 1 milímetro longe, sem encostar (geralmente o que você vai fazer é separar 1 milímetro pra dentro, ou seja, enfiar um cubo 1 milímetro dentro do outro (e é óbvio que 1 milímetro é só um exemplo, né)). Como se pode ver, a borda está mais escura na segunda imagem, pois no meu template quando uma coisa não está grudada na outra cria essa borda grossa.
A exata mesma coisa aconteceria se eu usasse um componente separado, ou seja, eu separo os dois cubos por componentes separados para eles não grudarem um no outro.
Ok, acredito que você ainda não entendeu.
Todos os modelos dentro de um jogo serão triangulados, pois é assim que um computador funciona e eu já expliquei no meu
tutorial teórico de modelagem.
Por exemplo, o segundo exemplo (22 triângulos) ficará assim dentro do jogo:
Mas quando eu deixo soldado, a triangulação irá contornar o meu cubo ali no meio, ficando assim:
Aumentou muito os triângulos, né? Por isso as vezes você pode preferir modelar coisas sem encostar na face ou separar em componentes.
Só que nem tudo é tão simples assim!
Como explicado no
tutorial de modelagem teórica, vértices são tão importantes quanto triângulos, senão mais, portanto não fique tentando solucionar demais o número de triângulos sem solucionar também o número de vértices.
E diminua o número de materiais diferentes, juntamente com o número de diferentes materiais, pois cada objeto e cada material, é 1 draw call, algo altamente importante para o desempenho de um jogo (mais do que número de triângulos/vértices). Ou seja, prefira usar menos meshes, e menos materiais/texturas diferentes.
Eu fiz um teste na Unity com um prédio relativamente detalhado com múltiplos materiais e 26 andares. Tendo todos os andares separados, 100 desses prédios abaixou o FPS do jogo para em torno de 60. Quando eu juntei todos os andares, grudando-os, inclusive em materiais iguais, o FPS de 100 prédios abaixou para quase 1000. Sim, tudo isto.
Exportando
Antes, eu recomendo que desassocie todos os componentes não necessários (ou seja, componentes que não precisam estar separados). Recomendo pois no Sketchup isto é muito fácil de ser feito diferente do ZModeler. E no caso de jogos, também, é importante que não exista grande quantidade de meshes (bem, depende o caso, mas não vamos nos aprofundar em desenvolvimento de jogos aqui).
Quando estiver tudo certo (ter feito todas as coisas que já citei, como limpar os resíduos etc), vá em "Arquivo > Exportar Modelo 3D"
Se você estiver usando Sketchup grátis com extensão para exportar para .OBJ, simplesmente vá até o botão para exportá-lo, na qual depende de qual extensão você estiver usando.
Vá até numa pasta desejada, de preferencia vazia, já que na hora da exportação criará dois arquivos e uma subpasta com o nome do .obj.
Clique em "Opções..." / "Options..." e configure assim:
Pode estar em português aí e não em inglês.
Mas muda nada, basta olhar a ordem das caixas de seleção e marcar igual.
Ali no "Model units" em português deve estar "Unidades do modelo".
A pasta exportada ficará assim:
É importante que você verifique todas as texturas, para ver se o Sketchup não criou texturas extras além das que você quis usar — aquilo que falei na seção "Materiais e texturas"!!!
Caso criou texturas "bugadas" (além das que você quis), apague todas as texturas exportadas, tente corrigir, e exporte o modelo novamente, e mais uma vez vá na pasta de texturas para ver se exportou errado ainda. Ou simplesmente na hora de exportar olhe o número de "Texturas" para ver quantas exportou, e assim saber se corrigiu. Ou melhor ainda, use a extensão "Model Info" que eu recomendei no início do tutorial, no mesmo lugar onde se vê o número de triângulos também se vê o número de materiais, se há mais materiais do que realmente devia ter, é porque o tal problema existe!
Importando no ZModeler
Para você que está modelando para o GTA:
Importe (File > Import...) o arquivo .OBJ normalmente, mas fique atenção para isso marcado:
Caso na hora de abrir o modelo fique sem textura, olhe no console do ZModeler (geralmente embaixo) para ver se tem alguma mensagem de erro sobre texturas etc, simplesmente tente ler a mensagem e identifique o que há de errado.
Se há nenhuma mensagem, acredito que a textura está lá sim. Continue seguindo o tutorial que você entenderá:
Ele abriu assim:
Perceba que na hierarquia ficou somente uma mesh (uma malha) e um componente com nome "Model". Se ficou mais do que uma mesh ou componente (por exemplo se você estiver com um modelo com partes separados e/ou seguiu a minha dica de otimização de Triangulação acima) você precisa que seu modelo fique com componente único (o que praticamente sempre tem que ser quando o assunto é GTA SA), use a ferramenta "Modify... > Attach" e vá clicando em todas as meshes separadas (em qualquer modo de câmera do ZModeler, exceto o "3D", óbvio) para juntar todas em uma só, assim até que a hierarquia fique como na imagem acima. Se você não sabe como usar Attach, dê uma olhada em algum vídeo curto no Youtube, super fácil.
Perceba que nosso cubo não ficou com o branco sendo branco, e sim marrom claro.
É porque o Sketchup exporta a cor do material junto, o que pode ajudar, e atrapalhar ao mesmo tempo, como eu já expliquei na seção sobre materiais.
Caso a textura que você usou seja muito escura, você possivelmente terá um modelo totalmente preto.
Para remover essa coloração e ficar na cor correta que deveria ser, ajuste a cor do material para branco:
Agora sim!
Caso algum material ficou sem textura, como eu recomendei anteriormente de usar o nome do material como o nome da textura, é só usar a dica agora! Procure pela textura manualmente e selecione-a.
Você lembra de quando falei que quando muda a cor do material, a textura será pintada junto? Então, se você realmente quer um material pintado numa cor, você terá que trocar a textura importada, pois importará a textura pintada e assim pintará 2X. O certo é trocar a textura pintada pela textura original, afinal, a ideia é de que não usemos múltiplas imagens de texturas e sim somente uma, mas com diferente cor de material. Aproveitando, se o seu material é pintado, você pode querer fazer mais alterações na cor dele para ficar ao seu gosto, agora estamos no ZModeler, agora sim você está vendo o modelo como ficará no jogo!
E caso tiver texturas iguais repetidas com nomes diferentes, o melhor a se fazer é trocar, deixar usar somente uma textura.
Eu não preciso explicar como faz para trocar, adicionar, remover etc as texturas pois é meio auto-explicativo. É só usar estas duas janelas da imagem.
Você pode também querer importar um .dff do GTA SA para testar se a medida está realmente correta.
Seguindo o tutorial, irá sim ficar correta, mas caso algum imprevisto, faça o teste e use a ferramenta "Modify... > Scale" com "Scale Normals" marcado no quadradinho do lado, e clique e arraste o mouse no modelo segurando SHIFT para mudar o tamanho dele.
Neste momento você está pronto para configurar as coisas do ZModeler, como aplicar specular highlighting (ali em "Extensions")(só aplique isso quando realmente precisar! Além de que causa perda de FPS). Ou até mesmo adicionar reflexos (reflection map, envmap) (procure, se você ainda não sabe como. Também muito simples, é só adicionar uma textura a mais no material, ir em "Edit..." e "Low Level Additive" e "Auto Sphere Environment"). Nota que adicionar reflexos em objetos de mapa, construções etc é possível (por exemplo janelas de casas com efeito de reflexo!), só que fica meio forte demais in-game e a textura de reflexo (o reflection/env map) tem que ser mais escuro que o normal. E no Tuning Mod é necessário aplicar a flag "1" no .IDE da peça.
E não deixe de verificar o pivot e eixos do modelo, como eu já expliquei!
Exportando do ZModeler
Quando tudo estiver pronto (inclusive, dê uma olhada no eixo, como já expliquei antes. Nas minhas prints acima o pivot está no canto, é, eu estou errado) agora exporte do ZModeler em arquivo .dff para ser usado no GTA.
Organize a hierarquia assim:
Tem que ficar igual, exceto o nome "Mesh1" que não importa e pode ser qualquer nome. Preferencialmente com menos de 16 letras.
Nota que o modelo TEM QUE ESTAR no "Mesh1", ou seja, quando você clica na caixa de seleção do "Mesh1", o modelo tem que sumir e aparecer. Se o modelo só some e aparece quando clica no "modelo_test.dff", inverte os nomes, os lados etc para ficar correto.
Caso você precise colocar um componente a mais na hierarquia, experimente selecionar Dummy Helper, e em seguida clicar no botão dele:
Assim criará um componente novo vazio (ou seja, um "dummy"), para caso você precise (o que não é o meu caso).
E exporte (File > Export...) com o exato mesmo nome que você colocou na hierarquia.
Será criado um arquivo .dff, somente.
Caso o arquivo .dff ficar 0 bytes é porque você digitou um nome diferente.
Os arquivos do Sketchup são exportados quase sem solda, portanto ficará mais pesado do que o normal e causará bugs de paredes invisíveis (colisão bugada) ao usar a mesh pra criar um .col. Portanto é altamente recomendado que antes você utilize ferramenta de solda (Weld) em algum software. Sei que Blender faz isto direitinho mas pode ser que ZModeler também resolva.
(Se você está modelando pra usar na Unity Engine, basta usar importar o .skp na engine que fará todo o trabalho de otimização para você).
Agora você terá que criar um .txd com as texturas que você usou (na qual é super fácil de se fazer usando
Magic.TXD, só peço para que lembre de usar compressão, como ensinado no post da MixMods), e em seguida, adicionar ao jogo como você necessitar.
Há tutoriais por aqui de como adicionar objetos ao jogo. Dê uma olhada na categoria de
tutoriais de mapa aqui no fórum.
Bônus:
Bugs dos Sketchup
Mesmo na versão atual há vários bugzinhos chatos no Sketchup.
Eu presenciei (acho que na versão 2014 ou 2016) um bug absurdo que comia todo o modelo, eu perdi um trabalho de 1 semana por causa disso.
Eu uso Sketchup 8 pois é grátis pra uso comercial e não têm tais bugs (mesmo que ainda tenha os mesmos bugzinhos chatos presentes ainda nas versões atuais). Mas nele há um bug que REALMENTE incomoda:
Mudança de foco de janela ao apertar Alt (Sketchup 8)
Devido ao sistema de janelas separadas (diferente dos novos onde são grudadas na lateral), ter a janela de materiais aberta, segurar
Alt
(esquerdo) para usar o conta-gotas para pegar um material, pode causar uma mudança de foco da janela, e assim o Sketchup agora focará na janela de materiais. Isto quer dizer que agora quando você usar atalhos como
Espaço
para a ferramenta de seleção ou
L
para a linha, em vez de selecionar a ferramenta, digitará um nome no material, assim sem querer você estará trocando os nomes dos materiais e passando frustrações com os atalhos não funcionando.
Solução: Use
KeyTweak para trocar o
Left Alt
pelo
Right Alt
e vice-versa. Note que ele funciona alterando o registro do Windows, não precisa ter o .exe aberto monitorando sua digitação...
"Nossa, mas trocar as teclas do Windows só por causa do Sketchup?"
Quantas vezes você usou a tecla Alt esquerdo esta semana para abrir um menu suspenso? Eu acho inútil, e o Alt direito funciona em programas igualmente o esquerdo, com a diferença que ele não muda o foco para abrir um menu, e convenhamos que usar o esquerdo é mais agradável do que o direito. Fazer isto deixará o menu no Alt direito, e o esquerdo será um Alt menos chato.
Atualização: Ainda há outro caso que este problema pode acontecer, e aparentemente não é bug ao Alt, não entendi ainda. A solução é simples: Não deixe a janela do material no modo Editar, isto é, deixe a guia Selecionar aberta em vez da guia Editar.
Vértices e arestas causando bugs (todos os Sketchup?)
Esta imagem explica tudo:
Arrastar a aresta de uma posição para a outra, acredito eu, não estando fixada em um eixo, pode causar (nem sempre, mas pode) bugs graves naquela aresta, fazendo com que todas as faces por volta sejam deletadas com alguns comandos, e a chata mensagem de erro "Não é possível mover a face. A face em contato com o canto deve ser um triângulo.".
A solução é simples:
Evite mover a aresta ou face, prefira sempre mover as vértices para a outra vértice / extremidade.
Se você se acostumar com isto, verá que grande parte dos bugs chatos do Sketchup desaparecerão.
Evite a ferramenta de extrusão / puxar / empurrar / push (todos os Sketchup?)
Eu não sei dizer cada bug específico ao utilizá-la, mas lembro que há uma lista de vários.
Não confie nesta ferramenta para realizar trabalhos delicados (como criar muros em locais com várias faces por volta, algo do tipo). Prefira criar as arestas e faces manualmente.
Se você se acostumar com isto, verá que grande parte dos bugs chatos do Sketchup desaparecerão.
Evite modelagem longe do ponto de origem (quebra de precisão) (todos os Sketchup? Somente em 32 bits?)
Normalmente em gráficos 3D é usado pontos flutuantes (float) para determinar as coordenadas de tudo. O problema é que existe um limite de precisão, e ele perde cada vez mais precisão quanto mais longe você estiver do ponto
0.0
. Você pode ver um exemplo em vídeo
aqui.
Experimente criar uma face vários quilômetros longe do ponto de origem, colocar um material qualquer de área
10cm x 10cm
e tentar mapeá-lo aumentando e diminuindo a escala dele. Na visualização ficará duplicado, e quando você aceitar, a posição ficará diferente do que você colocou.
A solução é que seus modelos fiquem o mais próximo possível do ponto de origem e não use materiais com área pequena demais. Assim a precisão de float será mais eficaz (
veja também a solução logo abaixo, também pode ajudar).
Perceba que o bug sempre existirá, portanto mesmo assim evite forçar muito a escala do mapeamento (não fique movendo deixando-a pequena e grande demais, irá bugar o mapeamento, mesmo que pouco) e use materiais com área de pelo menos meio metro, ou 1 metro. Caso você estiver modelando áreas muito grandes, de vários quilômetros, você pode precisar dar uma atenção ainda mais especial à isto. Caso você está com este problema em seu modelo de vários quilômetros, considere tratar 1 metro como 1 centímetro, algo do tipo.
Como corrigir o bug de quando você está posicionado uma textura, ela fica duplicada na visualização (todos os Sketchup?)
Provavelmente relacionado com o problema acima.
Quando isto acontecer, mova o pino amarelo e volte para a posição original (simplesmente arraste e volte, nada demais). Irá corrigir, simplesmente. Se não corrigir, leia a solução acima. Você também pode tentar restaurar o mapeamento ou até mesmo refazer o componente (se acontece mesmo fora de componente, é o problema acima).
Cuidado ao posicionar o pivot (eixos) em uma face com ângulo bugado (grave) (todos os Sketchup?)
Um problema relativamente raro, mas você nunca vai querer passar.
É um bug que, de um momento para outro, um componente fica fora do lugar, mais especificamente, rotacionado alguns graus e/ou alguns centímetros fora. Isto é fácil acontecer sem você perceber. Fica grave quando acontece em ângulos que parecem aleatórios, assim fica praticamente impossível voltar ao exato original.
Acontecia muito com o Meck da 2nibble, no projeto de ruas do IMPUNES, que é um projeto bem grande e complexo. Aconteceu também comigo em um projeto de uma quadra que também era grande e complexa. Mas ainda não sei se só acontece em casos assim ou mesmo em modelos simples.
Ocorre devido o posicionamento de um pivot com um eixo seguindo o ângulo de uma face com ângulo bugado. Sabe quando uma parede não está funcionando corretamente no corte e criação de novas faces? E você posiciona o pivot naquela face para que você consiga mexer nela? Então, casos como este podem causar este bug quando você sair do componente que você está editando.
Imagine que você tem uma casa, e uma parede é bugada, você entra no componente da casa, coloca o eixo seguindo o ângulo daquela parede, trabalha naquela face, e quando você sai do componente, o componente vai se movimentar ou rotacionar.
É raro, portanto você pode fazer isto, só fique atento na hora de sair do componente para ver se ele irá se mover ou não.
É relacionado com o ângulo dos eixos, não posição, portanto tenha cuidado quando você for rotacionar um eixo seguindo alguma face ou aresta. Usar por exemplo a extensão que centraliza o pivot no modelo não vai corrigir, pois ela só muda a posição, não rotação.