Mudanças entre as edições de "Godot Engine: Personagens 3D"
Linha 1: | Linha 1: | ||
+ | |||
Linha 58: | Linha 59: | ||
Agora estamos prontos pra criar nosso game. | Agora estamos prontos pra criar nosso game. | ||
+ | == Cenas e Nós == | ||
Vamos então pra estrutura de Cenas: | Vamos então pra estrutura de Cenas: | ||
Linha 64: | Linha 66: | ||
*** MeshInstance - Mesh: CubeMesh; Material: SpatialMaterial... Albedo: Texture: ground.jpg; UV1: 30, 20, 10 | *** MeshInstance - Mesh: CubeMesh; Material: SpatialMaterial... Albedo: Texture: ground.jpg; UV1: 30, 20, 10 | ||
*** CollisionShape - Shape: BoxShape | *** CollisionShape - Shape: BoxShape | ||
− | *** Camera | + | *** Camera (''script)'' |
− | * '''Player (KinematicBody):''' | + | *** Player (LINK) |
+ | *** Box (LINK) | ||
+ | *** Box ... | ||
+ | * '''Player (KinematicBody):''' ''(script)'' | ||
** Object (praticing01_complete) | ** Object (praticing01_complete) | ||
** CollisionShape - Shape: CilinderShaper | ** CollisionShape - Shape: CilinderShaper | ||
** Camera - Current: Active | ** Camera - Current: Active | ||
* '''Box (RigidBody):''' | * '''Box (RigidBody):''' | ||
− | ** MeshInstance - Mesh: CubeMesh/ Material SpatialMaterial... Albedo: Texture: box.jpg; UV1: 3, 2, 1 | + | ** MeshInstance - Transform: Scale: 0.5, 0.5, 0.5; Mesh: CubeMesh/ Material SpatialMaterial... Albedo: Texture: box.jpg; UV1: 3, 2, 1 |
− | ** CollisionShape - Shape: BoxShape | + | ** CollisionShape - Shape: BoxShape; Transform: Scale: 0.5, 0.5, 0.5 |
+ | |||
+ | == Scripts == | ||
+ | Agora temos nossos scripts pra fazer as coisas funcionarem. | ||
+ | |||
+ | === Script do Player === | ||
+ | |||
+ | === Script da Câmera do World === |
Edição das 15h20min de 25 de novembro de 2022
Afluentes : Jogos Digitais, Usabilidade, desenvolvimento web, mobile e jogos
Screenshot
Assets
Bem, eu não trabalho como desenhista 3D e minha prática nisso ficou lá na década de 90. De qualquer forma, o processo de desenvolvimento de games envolve uma grande variedade de profissionais e nenhum desses precisa saber fazer tudo. Então eu, como programador, pego modelos prontos para usar nos games.
Para esse exercício eu pesquisei modelos de personagens 3D no site https://opengameart.org. Queria um modelo já com várias animações e o que achei mais completo nisso, sem uma pesquisa muito aprofundada, foi esse: https://opehttps://opengameart.org/content/quechanngameart.org/content/quechan. Então fica aqui os créditos aos autores.
A textura pra caixa peguei em na Adobe Stock, mais especificamente aqui e a textura do chão, peguei na pngtree, aqui.
De qualquer forma, os assets podem ficar indisponíveis por diversos motivos, então coloquei no meu site pra download para usarem nesse exercício. Segue os links:
Importando o Modelo do Blender para o Godot
O modelo aqui usado está no formato de arquivo do Blender, então precisamos ter o programa instalado no nosso computador e usá-lo para fazer a importação para o Godot. Para isso descompacte o arquivo do modelo que você achou e abra ele no Blender.
Certo, depois de aberto, selecionei no menu superior a opção Animation para ver as animações disponíveis. Como tinha bastante coisa legal, acabei escolhendo esse modelo. Eu preferia que a personagem estivesse de roupas, mas não sei fazer isso, então vamos usar o modelo assim mesmo.
O próximo passo é selecionar os elementos da personagem pra exportação na direita:
E depois ir no menu superior e selecionar:
- File..., Export..., glTF 2.0...
Na janela de exportação vai ter várias opções. Vamos ter que selecionar algumas delas. Então vamos selecionar algumas delas:
Observem que no lado direito tem algumas opções. Então vamos em cada uma delas selecionar alguns elementos:
Em Include, vamos selecionar o checkbox Selected Objects.
Na opção Transform, deve estar selecionado o +Y UP. Caso não estiver selecionado, então selecione.
Em Geometry, selecione Apply Modifiers.
E, por fim, em Animation, selecione a sub-opção Animation e lá selecione a opção Export Deformation.
E pronto, salve o arquivo em alguma pasta fácil de localizar porque depois vamos importar no Godot.
Projeto no Godot
Agora abra o Godot e crie um projeto:
Pra gente começar a se organizar melhor, vamos criar quatro pastas: scene, texture, model e code. Assim a gente separa cada tipo de arquivo em uma pasta diferente.
Agora que separamos as pastas. Vamos arrastar o arquivo exportado do Blender lá pra pasta do projeto chamada model.
Você pode dar dois cliques no arquivo practicing01_complete.glib ali na pasta para poder ver as animações disponíveis. Quando ele der uma janela de diálogo, mande abrir como Novo Herdado, mas não salve o arquivo. É apenas pra gente visualizar.
Agora estamos prontos pra criar nosso game.
Cenas e Nós
Vamos então pra estrutura de Cenas:
- World: (Spatial):
- Ground (StaticBody) - Spatial: Transform: Scane: 15, 1, 15
- MeshInstance - Mesh: CubeMesh; Material: SpatialMaterial... Albedo: Texture: ground.jpg; UV1: 30, 20, 10
- CollisionShape - Shape: BoxShape
- Camera (script)
- Player (LINK)
- Box (LINK)
- Box ...
- Ground (StaticBody) - Spatial: Transform: Scane: 15, 1, 15
- Player (KinematicBody): (script)
- Object (praticing01_complete)
- CollisionShape - Shape: CilinderShaper
- Camera - Current: Active
- Box (RigidBody):
- MeshInstance - Transform: Scale: 0.5, 0.5, 0.5; Mesh: CubeMesh/ Material SpatialMaterial... Albedo: Texture: box.jpg; UV1: 3, 2, 1
- CollisionShape - Shape: BoxShape; Transform: Scale: 0.5, 0.5, 0.5
Scripts
Agora temos nossos scripts pra fazer as coisas funcionarem.