Este blog esta em reforma no momento.

Mais veículos

Bom, peguei um freela, e pra não perder a concentração nele, fiz poucas coisas, e variadas.
Enquanto não descubri porque os meus programas CG não compilão (suspeito que seja um problema na versão do OGRE), vamos às modelagens

Como o acervo de veículos estava pequeno resolvi ampliar, agora um patinete.
Lembro dos problemas do Mauricio Cunha, com o oclusion map, aqui tive uns parecidos. O oclusion nos objetos quadrados ficou horrendo e fora de contexto.
A solução foi separar os pedaços do modelo, e criar objetos de alta resolução para servir de referência para o oclusion. O resultado ficou satisfatório ^_^
De posse do material, resolvi fazer uma textura em "radical". Lembrei-me de uns desenhos de skate que vi uma vez, infelizmente não achei até hoje o autor, por issu não vo poder usar os desenhos nas texturas.
Mas, consegui fazer umas coisinhas parecidas, santo Speedy Paint, to melhorando nessa técnica. O SAI é muito eficiente, da p rotacionar o desenho, mover de um lado p outro, sem mecher na matriz original.
A única coisa que esta me deixando irritado aki é o fato dele não receber a pressão da caneta, mesmo o driver do Wine estar indentificando ela a coisa não rola. Estou fazendo testes com a nova versão da Virtual Box, e me recomendarão um tal de Xen (que eu ví é beeeeem complicado).
Estou com um problema de organização, não sei se compensa dividir mais texturas em materiais diferentes, pois não planegei se os objetos estarão disponíveis apenas em uma fase especifica ou no game inteiro. Lógico, vou tentar fazer com que eles possam ser "comprados" a qualquer momento.
Bom, ficou simpático ^_~
A bruxinha na placa é provisória.

Agora parei em uma mobilete, leve-se em conta a simplicidade do motor achei estranhamente dificíl achar uma referência em close do motor!!! Claro, são só 3 peças aparentes, mas as miudezas não achei, vo procurar fotografar uma mobilete. Se alguem puder me dar uma mão agradeço.

Aqui em baixo esta a imagem do artista que estou tentando copiar o "clima", se alguem souber quem é me dá um toque.

Mais um fruto, ferramenta de simetria

Motivado pela preguiça e pelo fato de mais tarde ter que fazer o mesmo esforço em outros elementos do jogo, eu sentei o dedo no Python nessa ultima sexta.
Basicamente este script pega o objeto selecionado e verifica se ele se encontra transpondo as bordas da imagem que irá ser rendida. Como a camera é isométrica e em escala 2x esses limites são de -1 até 1, ou seja, o sistema de cordenadas padrão em uma tela de jogo 3D. Quando o objeto sangra o limite o script o duplica e o coloca na aresta oposta do quadrado. Pode-se pensar que é facil fazer a mão, mas esperimente fazer issu sem ter que fazer conta na calculadora. Assim, surge o terceiro filho do projeto, uma pequena ferramenta para ajudar nas texturas de tile em normalmap.
Observe que o funcionamento deu certinho no resultado final não se percebe emenda.
Não achei nada parecido nas ferramentas ja inclusas, tão pouco tive passiênia para procurar, ha coisas tão específicas que é melhor agente por a mão na massa mesmo.

O código funciona apenas com a biblioteca nativa do Blender, sem necessidade de instalar o Python em si. E não sofreu otimização, ainda apresenta falhas quando se seleciona multiplos objetos, mas já reduz em muito qualquer trabalho.
import Blender
from Blender import *

def simetrize( ob ):
print ob.name
loc = ob.getLocation()
box = ob.getBoundBox()
for b in box: print b

#checa bounds independente da rotacao
minX = 10000
maxX = -10000
minY = 10000
maxY = -10000
print "#" * 8
for v in box:
if (v[0]<minX): minX = v[0]
if (v[0]>maxX): maxX = v[0]
if (v[1]<minY): minY = v[1]
if (v[1]>maxY): maxY = v[1]
print " %s %s %s %s " % (minX, maxX, minY, maxY )

#fora do box 2x2 ?
if (minX<-1 or maxX>1 or minY<-1 or maxY>1):
if (minX<-1 or maxX>1) and (minY<-1 or maxY>1):
#solucao p 2 eixos
if (loc[0]<0):
mvX = -(-2 - loc[0])
else:
mvX = -1+(-1 + loc[0])
if (loc[1]<0):
mvY = -(-2 - loc[1])
else:
mvY = -1+(-1 + loc[1])
#duplica
Object.Duplicate()
sel = Object.GetSelected()[0]
atualLoc = sel.getLocation()
sel.setLocation(mvX, atualLoc[1], atualLoc[2])
#duplica
Object.Duplicate()
sel = Object.GetSelected()[0]
sel.setLocation(atualLoc[0], mvY, atualLoc[2])
#duplica
Object.Duplicate()
sel = Object.GetSelected()[0]
sel.setLocation(mvX, mvY, atualLoc[2])
ob.select(1)
else:
#solucao para 1 unico eixo
#analiza eixo x
if (minX<-1 or maxX>1):
if (loc[0]<0):
mv = -(-2 - loc[0])
else:
mv = -1+(-1 + loc[0])
#duplica para eixo X
Object.Duplicate()
sel = Object.GetSelected()[0]
atualLoc = sel.getLocation()
sel.setLocation(mv, atualLoc[1], atualLoc[2])
ob.select(1)
#analiza euxo y
if (minY<-1 or maxY>1):
if (loc[1]<0):
mv = -(-2 - loc[1])
else:
mv = -1+(-1 + loc[1])
Object.Duplicate()
sel = Object.GetSelected()[0]
atualLoc = sel.getLocation()
sel.setLocation(atualLoc[0], mv, atualLoc[2])
ob.select(1)
Blender.Redraw()

list = Object.GetSelected()
for ob in list:
simetrize( ob )

Coisa Ruim da Silva

Foi numa chuvosa manhã de domingo, com o estomago queimando de tanto café e ouvindo Epica que escrevi esta historia.
Coisa Ruim da Silva, era o primogênito do Grande Senhor Supremo das Trevas. Apesar da origem de “sangue nobre”, Coisa Ruim foi um adolescente revoltado como qualquer um.

Quando seu pai chegou e lhe disse: -Filho, essa terra você há de reinar, sob seus pés os mortais deverão se ajoelhar, que seu nome seja sinônimo de dor e agonia. Que por onde pise, as pastagens morram, e os campos sejam irrigados com sangue. Que seu horizonte seja de terror absoluto com suas legião de “caídos”. Domine a terra, o mar, chegue aos céus diante do trono.... entre outras coisas num belo e magnifico discurso magnifico irrigado pela mais pura maldade.

Mas revoltado, no clímax de sua revolta de um adolescente de 14 anos, Coisa Ruim olhou nos olhos negros do Senhor das Trevas, e com sua revolta encarou aquele olhar de onde emanavam ondas de dor e agonia do mais puro ódio e disse:

-Seguinte “velho”, to de saco cheio com essa historia, nuca foi minha praia. FODA-SE você e esse lance de maldade!

Coisa Ruim saiu pelo mundo, logicamente com seus poderes supremos não tinha de temer nem escuro, nem luz, nem ladrão, nem policia, nem bicho, nem fome, nem sede, nem bala de revolver banhada em vela de sete missas do Galo, nem decapitação, nem NADA!

Entrou em um templo budista, raspou a cabeça e passava seus dias em rezas, praticando boas ações e aprendendo com os monges.

Até que um belo dia foi picado por um pernilongo enquanto meditava, e Coisa Ruim se surpreendeu com sua reação, automáticamente levantou a mão e deu um tapa e matou o bicho. Coisa Ruim, se revoltou de novo, pois há quase 2 anos estava estudando naquele templo, rigado a paz, harmonia e beleza das altas montanhas - Porra! como se distraiu assim!? - se indagou. Naquele instante arruinara sua promessa de nunca mais fazer mau a nenhum ser!?

Ao concluir que finalmente achou que a raiz de sua revolta estava dentro de si mesmo, Coisa Ruim se dirígio ao grã-monge, pediu perdão por não ter aprendido seus ensinamentos e concluiu que não podia ficar mais naquele lugar sagrado pois ainda tinha “sangue nos zóios” e “pavio curto”. Decidiu, por sua própria lei, sair de novo pelo mundo até achar seu destino.O monge pediu desculpas por seus ensinamentos não serem o bastante para ajudar o pobre rapaz, e para não deixar que tudo tivesse sido em vão, deu-lhe uma tábua com um mantra gravado. Um poderoso mantra que tanto servia para proteger Coisa Ruim das maldades, como para lembrar-lhe que um dia esteve perto da iluminação. Claro mau sabia Coisa Ruim, que na origem mistica dos sons das palavras há também vários segredos, e um desses estava ali escondido, mesmo aos olhos dos iniciados!

Com o tempo Coisa Ruim foi se esquecendo dos ensinamentos, deixou o cabelo crescer, passou a se envolver em brigas, a corromper-se com mulher e cerveja. Derrepente se cansou e largou das brigas (afinal ele SEMPRE ganhava, são poucos que conseguem pulverizar os outros com golpes de colunas de fogo). Logicamente ele não largou das mulheres e cerveja.

Arrumou uma Harley tunada, e saiu pelo deserto, a procura de seu caminho.

Esta nele até hoje, virou uma figura lendária e folclórica, como o motoqueiro negro, hora contado como demônio justiceiro hora descrito como espirito traiçoeiro sempre disputando racha com quem acha-se pelo caminho, e punindo os perdedores....

Quem quiser e tiver coragem de procurar esta figura, basta ir rumo a rota 666


^_^

Eu realmente gostei desta história, o personagem pensei ha mutio tempo enquanto preparava os modelos, e evoluí ele de um ser estranho que andava pelas ruas com um sobretudo para um corredor selvagem. A idéia dele ser um demônio tão revoltado que deidiu ser bonzinho tive nessa manha. E apesar do toque comico, acabou que eu achei que surgirão umas coisas bonitas no meio dela.
Coisa Ruim é um personagem que pode ser bem explorado.

Um possivel dialogo:
(na casa do Coisa Ruim)
Cibele: - Ow! Seu Coisa Ruim, tem uma pilha de um metro de lata de cervaja no meio da sala!
Coisa Ruim: -Não liga, a empregada vem toda terça a tarde e limpa.
Cibele: -Más hoje é quarta!!!
Coisa Ruim: -Uhm. É que amanheci com sede hoje.

Curiosidades:
  • Coisa Ruim não abastece no posto, quando a gasolina acaba corta o pulso e enche o tanque (alcool e fator de cura são realmente bençãos)
  • Mágias e simbolos divinos não afetam Coisa Ruim, afinal esses ítens só servem contra o mal
  • Mágia negra e ítens sombrios são piores pois deixam ele mais forte
Bom, acho que posso aproveitar a
Estou com poucas referências de imagens, por incrivel que pareca não acho aquelas Harley com aspecto exagerado. Mas acho que a tunada deve ser o suficiente
Referencias

Correções e mais objetos


Bom, esta lista de ítens é a parte fundamental do jogo. Cibele tem que juntar todos eles para salvar o planeta da mortifera Bunda-Assassina-do-Espaço-Cideral.
Notem que existe um certo gráu cadavério de dificuldade para se conseguir cada um. Calma ela ira contar com a ajuda de um poderoso arque-mago, que eu apresentarei nos próximos posts.
Cada ítem gera uma aventura de caracteristicas únicas, e se possivel um nó mental em quem estiver jogando.
Coloquei um ícone de joypad do lado, para demostrar como seria a interação do usuário. Pretendo fazer o jogo jogável pelo joypad.

http://docs.google.com/Doc?id=dddvrrg4_7cd9w8f2v
Estou comecando a usar o Google Docs para toda a documentação do projeto, além de me dar liberdade de escrever em qualquer lugar aproveitando tempos livres e inspirações momentâneas, posso publicar os documentos como páginas. Permitindo o acompanhamento do projeto.
Logo porei do lado do blog uma lista com os links dos documentos.

Corrigindo de novo e de novo.
Bom, por indicação da Carla (trabalha comigo e foi organizadora do Animeguara), troquei a cor do urso de rosa por amarelo. Logo depois o Mauricio Cunha do Forum da PDJ me sugeriu bege, mas como eu ja tinha alterado por amarelo e uma opinião feminina nessas horas é rara, deixei amarelo.
Por falar nissu, interessantes minhas estatistias no youtube, a mulherada é cerca de 7% do pulico, cinal que elas ainda não tem um grande interesse por games e 3D, que pena.
Seguindo ainda as dicas do Mauricio (mcunha98), eu tentei pintar mais marcas de dobra no tecido. No entanto fiquei com preguiça de pintar e usei o sculpt do Blender pra gerar o oclusiomap e sobrepuz na textura. Oque acham?

Esse fim de sabado criei mais alguns objetos, quero montar uma vendinha, clássica em jogos de RPG, onde a personagem pode comprar alguns itens. Se não der, também posso utiliza-los no jogo como opcionais no cenário.
O cavalinho-de-páu, um "crássico", eu sériamente pensei em fazer simplezinho com 1 textura de 256x256 apenas. No entanto lembrei que deveria ser usado pela personagem principal e resolvi melhorar os detalhes. São duas texturas de 512x512, no entanto elas podem ser redimencionas pra 256x256 que provavelmente não vai perder qualidade. Fiz uma coisa diferente, para não ter que usar uma textura de alpha, dupliquei as faces da correia e inverti suas normais.
A idéia é que ele conceda um bônu de movimento de 15%. Não teria lógica em se gastar dinheiro apenas por ver ela trotando num cavalinho-de-pau, né.
Agora a péroloa, um PogoBall!!! Uhulll, infância 80 extreme retro-core ^_~
Bom, eu acho q um aumento de 7% no movimento seria coerente. Além de poder ver o vestidinho pulando nos saltinhos ^_^
Uma coisa legal, eu parti de uma UVSphere normal, e depois apliquei o decimate. Acabou que o decimate não proporcionou uma deformação muito drastica num valor de 0.75, depois foi só acertar os triângulos.