28 de mai. de 2010

Algumas Static Meshes

Devido a alguns problemas não pude postar imediatamente as modelagens finalizadas neste mês, porém hoje, postarei duas static meshes, já finalizadas e prontas para serem usada na engine UDK.

Cristo Redentor:

Cristo Redentor texturizado:

Cristo Redentor, já pronto para ser usado na UDK:




O Camburão da Polícia Militar, mais conhecido como Caveirão:

Caveirão texturizado:

Caveirão, já pronto para ser usado na UDK:

Em breve, postarei mais progressos.

Abraços!
Gabriel Giordano



24 de mai. de 2010

Solução de Programação!

Encontrei! Encontrei finalmente a solução para o nosso problema de programação.
Estávamos pesquisando como chamar pelo controle do usuário (o teclado) uma ação do Kismet, com a possibilidade de configurar o botão usado para executar esta ação. Após uma semana de procura, o link que nos deu base para fazer isso (em inglês): http://okita.com/alex/?p=682
Primeiro de tudo, críamos um novo 'Sequence Event', um novo evento do Kismet. Para isso, fomos até o diretório:
UDK\Development\Src\Engine\Classes

E críamos o SeqEvent_MyCustomKismetEvent.uc, com a seguinte programação em UnrealScript:
class SeqEvent_MyCustomKismetEvent extends SequenceEvent;


event Activated(){
`log("event activated.");
}defaultproperties{
ObjName="MyCustomKismetEvent"
ObjCategory="MyCustomEvents" bPlayerOnly=false
}
O 'event Activated()' é o mais importante no momento, porque ativa esse novo objeto quando você o procura no Kismet.

O próximo passo é adicionar essa função de execução no 'GamePlayerController', ou seja, o controle de jogo.
Caminho: UDK\Development\Src\GameFramework\Classes\GamePlayerController.uc
Função:
exec function MyCustomKismetEvent (){


local int i;

local Sequence GameSeq;
local array<SequenceObject> AllSeqEvents;

GameSeq = WorldInfo.GetGameSequence();
if(GameSeq != None)
{
GameSeq.FindSeqObjectsByClass(class'SeqEvent_MyCustomKismetEvent',
true, AllSeqEvents);
for(i=0; i<AllSeqEvents.Length; i++)
SeqEvent_MyCustomKismetEvent(AllSeqEvents[i]).CheckActivate(WorldInfo, None);
}
`log("MyCustomKismetEventactivated ");
}
Essa função mostra para o controle que existe uma ação a ser executada - nesse caso, uma ação do Kismet - quando um determinado botão for pressionado, que é o próximo e último passo que vamos fazer.

Agora, vá para o caminho:

UDK\UTGame\Config\DefaultInput.ini

E prepare-se para adicionar duas linhas de programação. A primeira:
;-----------------------------------------------------------------------------------------

; BINDINGS USED TO ORGANIZE ALL GAME BINDABLE ACT
IONS IN ONE PLACE FOR SYSTEMS SUCH AS UI
; GBA - GAME BINDABLE ACTION

; "_Gamepad" - IS USED WHEN A CONTROLLER IS USING AN ALTERED MAPPING FOR AN ACTION
;-----------------------------------------------------------------------------------------
//VÁRIOS OUTROS COMANDOS
//No final de todos esses comandos coloque a linha abaixo

.Bindings=(Name="GBA_F12",Command="MyCustomKismetEvent")
Essa serve para mostrar que a tecla 'GBA_F12' (que corresponde ao F12 de nosso teclado, como vamos mostrar na próxima parte) vai executar o comando 'MyCustomKismetEvent', que é o nosso evento do Kismet que críamos ali em cima.


;------------------------------------------------------------------ -----------------------
; Game Keyboard/Mouse Bindings

;---------------------------------------------------------------------- -------------------

; Primary default bindings

//vários outros comandos
//No final escreva...
.Bindings=(Name="F12",Command="GBA_F12")


Isso dirá ao controle que ao apertar a tecla F12, a sequência de Kismet para o 'MyCustomKismetEvent' será ativada.

Para testar, fiz uma sequência 'Toggle' no Kismet, que ativa e desativa um emissor de partículas pretas do chão. A sequência ficou assim:
  

Ao testar o level, o emissor está funcionando:

Aperto F12 (Que é a tecla que escolhemos para fazer o evento), e voilá! O emissor para de emitir as partículas, mostrando que nosso evento é um sucesso, e assim permitindo-nos criar novas teclas com novas funções para o nosso Pinball!



Lembre-se: Em um momento ou outro, talvez seja necessário editar as propriedades dos arquivos .ini e .uc para eles não serem 'Read-Only' - somente leitura - para que você possa editá-los.

Beijundas,
Kiki





22 de mai. de 2010

Início do desenvolvimento

 Este projeto está começando por uma disputa entre alunos do curso Playgame da escola Saga, localizada na Lapa, São Paulo. A disputa é a seguinte: as 5 melhores demos de jogos produzidas, de 01/05/2010 até 01/07/2010, serão apresentadas na São Paulo Game Show. Ou seja, nossa equipe terá 2 meses para produzir este game, um prazo muito curto para somente 4 integrantes.

 Nas primeiras semanas do mês de maio, discutimos idéias para nosso game, e chegamos a uma conclusão: Escolhemos o Pinball, por ser viável produzir em apenas 2 meses. (claro que somente com extrema dedicação)

 E baseado nesta escolha, cada integrante da equipe apresentou sua idéia para a mesa do Pinball. Nisto, decidimos criar o Rio de Janeiro (no futuro, pretendemos criar outras mesas).

 A partir de hoje, postaremos a evolução de nosso projeto, cada integrante irá postar, aqui neste blog, o que está fazendo para o desenvolvimento deste game.

- O nome de nosso Game:
Pinball 40°

 - A Equipe:
Kaique Biancatti
Gabriel Giordano
Felippe Leão
Ivan Macedo