thegoodfellas/blogset-br huggingface dataset:
e passe para o passo 2!Passo 2 - Incluir o projeto XACT no jogo: Para isso, basta clicar com o botao da direita no diretorio Content de seu jogo e selecionar a opcao Add existing item, escolhendo na janela de dialogo que aparece o projeto XACT salvo no passo anterior.Passo 3 Tocando sons: Precisamos inicializar os objetos de gerenciamento de som do XNA para podermos tocar sons em nossos jogos. Isso efeito com uma receita de bolo, que sera sempre igual para todos seus projetos: criar as variaveis adequadas e inicializa-las no? 123456789 AudioEngine audioEngine;WaveBank waveBank;SoundBank soundBank;protected override void Initialize(){ audioEngine = new AudioEngine(@"Content\MySounds.xgs"); waveBank = new WaveBank(audioEngine, @"Content\Wave Bank.xwb"); soundBank = new SoundBank(audioEngine, @"Content\Sound Bank.xsb");} A seguir, podemos tocar os sons de duas formas: Para um som longo (ou em loop), devemos declarar uma variavel, carregar o som e, entao, toca-lo ou para-lo quando quisermos, conforme as linhas a seguir (onde o nome do som seria notify):? 123456 Cue myLoopingSound = null;...myLoopingSound = soundBank.GetCue("notify"); myLoopingSound.Play();...myLoopingSound.Stop(); Agora, se queremos tocar o som como um feito sonoro (uma explosao ou um tiro), podemos faze-lo diretamente, a partir do objeto soundBank. Por exemplo, para tocar o som de nome chord, basta executar a linha:? 1 soundBank.PlayCue("chord"); Lembrando que, normalmente, esta linha estara dentro do metodo Update de seu jogo, junto ao comando que vai somar uma vida, verificar se houve alguma colisao entre objetos e iniciar uma explosao, ou coisa semelhante. Ate o proximo artigo!
Foto: DivulgacaoOs jogos de videogame tambem passam a ser considerados pela legislacao brasileira como artigo cultural.Por Fernanda MoralesNo comeco de dezembro, os membros da Comissao de Ciencia e Tecnologia, Comunicacao e Informatica da Camara dos Deputados aprovou o projeto de lei que visa reduzir os impostos e garantir os mesmos beneficios fiscais da Lei da Informatica para os jogos eletronicos.Outra grande vitoria para o setor e que agora os jogos de videogames passam a ser considerados pela legislacao brasileira como artigo cultural. Anteriormente, esses tipos de jogos eram considerados de azar, o que contribuia ainda mais para seus altos precos.Com a aprovacao do projeto, o Imposto sobre Produtos Industrializados (IPI) para os fabricantes de jogos e consoles que invistam parte de sua renda em pesquisa tecnologica sera reduzido.A resolucao ainda nao entrara em vigor, pois ela ainda precisara ser analisada por tres comissoes diferentes de Constituicao e Justica, de Cidadania, de Financas e Tributacoes e depois ela ainda deve ser encaminhada para o Senado para que se torne uma lei efetivamente.Acoes como Jogo Justo, criada pela ACIGAMES (Associacao Comercial, Industrial e Cultural de Games), contribuiram para trazer o problema a tona, com a ajuda de lojas de varejo que faziam promocoes de jogos por precos mais baixos sem a aplicacao dos impostos e tributos nacionais.Ainda deve demorar algum tempo para que os fas de jogos eletronicos consigam comprar titulos mais baratos no Brasil, mas a aprovacao na Camara e o comeco de uma grande conquista. Left 4 Dead e um jogo multiplayer de survival horror, cooperacao de primeira pessoa inicialmente desenvolvido pela Turtle Rock Studios que passou, no dia 10 de Janeiro de 2008, a fazer parte da corporacao Valve. O jogo foi construido pelo Source Engine da Valve e esta disponivel para PC e Xbox 360. A Certain Affinity e a responsavel pela versao do Xbox 360. Left 4 Dead coloca a disposicao quatro personagens principais (imunes) (sendo que dois sao controlados pela Inteligencia Artificial do jogo, no Xbox 360) contra as hordas de centenas de infectados. Estes sobreviventes vivem num ambiente de pandemia apocaliptico, onde terao de enfrentar hordas de infectados a quase todo momento, estes terao apenas sobre o dominio do jogo "IA Director", enquanto que apenas outros quatro bosses (infectados especiais) com habilidades especiais e unicas que poderao ser controlados pelos jogadores em alguns modos de jogo.A grande diferenca de Left 4 Dead e que o jogo obrigara a cooperacao em equipe, em que, para se manterem vivos os sobrevivente terao de se ajudar uns aos outros, em pequenos atos de socorrismo, cooperando e tornando assim a passagem dos capitulos mais facil. Para o lado infectado estes terao de cooperar para os impedir de seguirem.O lancamento de Left 4 Dead, considerado por muitos como o game mais esperado de 2008, foi no dia 4 de novembro, 2008 exceto para o Reino Unido, que foi 3 dias depois, no dia 7 de novembro. O jogo foi primeiramente revelado no natal em 2006 pela PC Gamer UK com um artigo de seis paginas descrevendo as primeiras estrategias dos membros da
Valve. O primeiro teaser treiler deste jogo esta disponivel na Orange Box e em variados locais da Internet. O jogo foi testado pela primeira vez na LAN do Showdown 2007 em Sao Jose e no QuakeCon 2007.
deste tutorial: Ser familiarizado com a interface do Unity Editor. Possuir algum personagem 3D animado ou saber como produzir um em seu software de preferencia. Ter acesso aos guias e manuais oficiais da Unity para referencia. Ter um conhecimento minimo da estrutura e programacao em JavaScript.Sendo assim, vamos la:1. Entendo Assets, GameObjects e Components:1.1 Assets:Assets, se voce ja andou explorando as funcionalidades e documentacao, ja deve ter em mente que os Assets sao os arquivos fisicos de seu projeto. Nao ha nenhum segredo aqui, todos os seus modelos 3D, arquivos de audio, scripts, etc e etc que precisam ser estocados em disco sao parte desta classe de seu projeto, os recursos com o qual voce ira trabalhar encima de seu projeto.Antes que um Asset possa ser utilizado e necessario que voce tenha um projeto criado e adicione o arquivo desejado dentro da pasta Asset na pasta raiz do projeto.Uma funcionalidade incrivel da Unity e que voce pode trabalhar, por exemplo, em suas cenas 3D e apenas clicando save no modelador o resultado e automaticamente atualizado na Unity, voce apenas assiste a engine re-compilando a cena e logo em seguida o resultado pode ser facilmente visualizado no Scene View.De uma olhada no guia basico da Unity para um melhor entendimento.1.2 GameObjects:Todo objeto que faz parte do mundo 3D de sua cena e possui um Component Transform e um GameObject. Um Transform e apenas um componente ligado ao objeto que indica que o mesmo tem volume, escala ou apenas se localiza em algum ponto no mundo 3D de sua cena, sao as basicas informacoes XYZ. Ao trabalhar na Unity, voce geralmente usa um Asset como base para criar seu GameObject e com o auxilio de Components vai adicionando funcionalidades, com o GameObject implementado da maneira que voce deseja, e sempre boa pratica converter o GameObject em um Prefab para melhor organizacao, melhor performance e facilidade de re-uso de seus objetos entre os varios leveis que pode ter o seu game.Prefabs sao outra ferramenta de destaque extremamente uteis e poderosas na Unity. Consulte a documentacao para melhor informacao.1.3 ComponentesSem eles e impossivel dar vida a qualquer objeto que faca parte de seu cenario. Os Components sao a essencia de como as coisas na Unity funcionam, sao a maior expressao das facilidades de trabalho que a engine oferece. Scripts sao Components, objetos e efeitos de fisica, particulas, audio e etc sao todos Components que podem ser adicionados ao seu GameObject para faze-lo se comportar dar maneira que voce deseja no game. E importantissimo ter uma visao clara de como os Components funcionam e como se relacionam entre si.Mais sobre isso sera falado durante a secao de programacao, mas se voce sente que nao entende realmente o que exatamente sao essas coisas, procure pensar que Components sao Itens que formam um item ainda maior, seu objeto na cena, e que eles controlam todas as caracteristicas do objeto no game. Um GameObject sem Components e um objeto sem caracteristica alguma, por isso nao pode ser manipulado de forma alguma e provavelmente e um objeto inutil para o seu
projeto neste ponto.Simplificando, Components sao propriedades que tornam seus GameObjects unicos atraves da combinacao entre as ferramentas providas pela Unity e os Assets que voce produz. E assim justo dizer que quanto melhor forem os Assets que voce produz, melhores serao seus GameObjects e maiores as capacidades de seus Components de realizar exatamente tudo que voce deseja extrair deles.2. Importando Skinned Meshes e trabalhando com animacoesVoce ja conhece bem a interface da Unity e agora tem um entendimento mais claro dos como e por que seus objetos funcionam. Sendo assim, partiremos para um pequeno experimento pratico, importar um personagem animado e dar funcionalidade a ele.2.1 O PersonagemSe voce nao possui um personagem animado, divirta-se, crie um! :)Para este personagem em questao que eu usarei, existem algumas notas que devem estar em mente.Eu tenho a intencao de utilizar efeitos de fisica real no personagem, por isso neste caso ha duas versoes dele, uma sem Skin com todas as partes do corpo separadas em pedacos para serem adicionadas componentes fisicos e gerar um efeito rapido e facil diferenciado de ragdoll onde o personagem explode ao morrer.E a versao convencional com a Skin e animacoes como de costume.Este e um caso especifico do meu trabalho em questao, voce nao e obrigado a fazer um personagem da mesma maneira, use sua liberdade e imaginacao.2.2 Implementando o PersonagemPor motivos de Pipeline, ja utilizo o formato FBX a um bom tempo, eu continuo usando FBX mesmo na Unity, por conveniencia.Voce pode utilizar o formato que preferir e se adaptar melhor.Bom, apos um tempo relativamente grande, voce modelou, texturizou, animou seu querido personagem e esta pronto pra faze-lo mandar ver na Unity. Apesar das facilidades que a Unity oferece, voce precisa ter em mente que certas convencoes devem ser seguidas.Antes de qualquer coisa, adicione seu modelo em qualquer diretorio dentro da pasta Assets do seu projeto, a Unity ira detectar o arquivo e ele aparecera na lista do Inspector com todas suas opcoes de importacao. Nao mecha em absolutamente nada, click e arraste o modelo da lista do Project View para a Scene View e veja o que acontece. Seu personagem aparece na cena sem problemas? Otimo, voce e um cara de sorte! Click Play e rode o game, veja se as animacoes rodam normalmente como esperado.As animacoes estao ok? Otimo, voce e mesmo um cara de sorte! :)Ao arrastar o personagem para a cena, ele esta distorcido, como se os bones nao estivessem nas posicoes corretas ou coisa semelhante? Opa, volte ao seu modelador 3D e reveja seus conceitos, evite criar uma hierarquia muito complexa de parents e childs, grupos e sub grupos quando se trata de um personagem animado.Ao arrastar o personagem para a cena, o modelo parece estar ok, mas as animacoes simplesmente nao tocam ou existe algo de errado com elas, como se suas animacoes nao estivessem ali?Opa, volte ao seu modelador 3D e reveja novamente seus conceitos, se voce tem conhecimento basico sobre animacao deve saber que as animacoes de controladores e parentes dos bones, efeitos fisicos, driven keys e etc, nao sao automaticamente
adicionados aos bones do seu modelo no momento da exportacao, por isso, se for o caso de haver animacoes faltando ou animacoes faltando pedacos, voce precisa ter certeza de que todos os movimentos que faz esta gerando animation keys nos bones do personagem ou seja, voce precisa usar a solucao Bake Animations. Voce pode fazer isso diretamente na Unity simplesmente acionando a check-box de mesmo nome no Importer do seu modelo ou se quiser mais controle sobre os resultados, faca isso voce mesmo no modelador, os resultados sao mais faceis de serem mantidos da maneira que voce exatamente quer. Se voce nao sabe como fazer um bake em suas animacoes, consulte a documentacao do seu programa ou peca socorro a comunidade la no forum da Unity, sempre tem alguem perguntando sobre este tipo de problema.No geral, clicando em Bake Animations na Unity vai resolver seus problemas e muita dor de cabeca se voce nao gosta de ficar horas otimizando keys no seu modelador 3D.Apos ajustadas as configuracoes de importacao, seu personagem e animado da maneira que voce espera? Otimo, e hora de prepara-lo para o futuro que o reserva, no Importer do seu modelo, clicando no arquivo importado no Project View ficara visivel no Inspector, voce vera que existe uma variedade grande de opcoes e propriedades. Seja um bom amigo com voce mesmo e pesquise na documentacao cada uma dessas caracteristicas e opcoes para ter uma visao mais intuitiva e verdadeira do que cada uma delas possa vir a ser.Mais abaixo no Inspector, existe um pequeno grupo que e acionado quando voce seleciona a opcao Split Animations. Click nessa opcao e voce tera acesso a ferramenta mais simples da terra para criar clips de animacoes. Voce pode dar um nome aos clips e definir o inicio e fim da animacao, seu WrapMode e etc de maneira rapida, facil e visual.Neste ponto, e extremamente recomendavel criar um Prefab para seguir seu trabalho, voce nao pode trabalhar diretamente encima do Asset do seu personagem por isso e boa pratica criar um GameObject com seu personagem, apenas arraste ele do Project View para a Scene View, no menu Assets click em Create New > Prefab, renomeie o Prefab com o nome que quiser e arraste seu personagem da Scene View para cima do Prefab. Pronto, voce tem uma instancia totalmente reutilizavel do seu personagem em que qualquer mudanca no Inspector afetara todas as copias do objeto em sua cena.Apos configurar seus clips, seu personagem esta pronto para ser animado in-game... Mas hey, e agora? Como se anima o personagem, pergunta-se o afobado aprendiz...A resposta para isso se resume a uma palavra Scripts!Mas antes, precisamos ter uma ideia mais aprofundada do que exatamente vamos animar. E uma boa hora para pesquisar sobre o Character Controller Component!3. Conhecendo melhor o Builtin Controller ComponentA primeira vista voce deve estar imaginando que este componente e responsavel pelo controle das animacoes de seu personagem durante a execucao de seu game, certo... Errado! :PO Component responsavel pelas animacoes, voce ja passou por ele, seus Animation Clips estao prontos, lembra? A partir
dai voce pode animar seu personagem atraves de qualquer script; Mas e interessante analisar a relacao restrita entre o Controller, que controla a interatividade entre o jogador e a jogabilidade estabelecida por voce, no caso o controle do personagem em questao. O Controller Component existe para facilitar a sua vida na hora de identificar acoes e inputs tanto do player quanto do ambiente que cerca seu personagem para uma interacao funcional mais rapida pratica e intuitiva.Sem essa belezinha voce teria deliciosas dores de cabeca para conseguir fazer seu personagem interagir com o resto dos objetos no game e responder aos comandos do jogador. Existe tambem uma variacao mais complexa de Controller, totalmente baseada em fisica real, mas e um topico muito nex-gen e avancado demais pra mim no momento e nao e meu foco neste tutorial, vamos examinar inicialmente o Controller basico. Se voce ainda nao leu a respeito deste componente na documentacao, esta e a hora.Apos ler a documentacao, voce agora deve saber bem que um Controller basicamente permite que voce de interatividade ao objeto em que o Component esta ligado de maneira que esse objeto interaja com o ambiente fisico ao redor. Baseado neste fundamento, voce pode ter certeza, se voce nunca trabalhou com fisica real antes, ou voce aprende um pouco sobre fisica ou aprende muito sobre fisica por que a Unity se aproveita ao maximo de todas as formas de manipulacao fisica e estudar um pouco a respeito desta materia e bastante saudavel para facilitar sua vida. Na Unity voce ira programar como nunca voltado a interatividade com fisica real, mesmo que o componente em questao nao seja baseado em fisica. Por mais que seja um tanto incomodo precisar fazer certos calculos para atingir certos resultados por conta da fisica, cedo ou tarde voce acaba percebendo que esta forma de trabalho diminui de maneira gritante a quantidade de codigo que voce precisa para realizar efeitos complexos e poderosos de mesmo nivel que qualquer game comercial existente no mercado.Nao vou entrar em extremos detalhes aqui por que seria redundante ficar citando o que ja e muito bem explicado na documentacao, mas ao trabalhar com Character Controllers, tome sempre um cuidado especial com Physical Materials e com as propriedades do Controller, Height e Skin Width.E aconselhavel sempre manter a propriedade Min Move Distance em zero, a nao ser que voce tenha mesmo um bom motivo para nao faze-lo.Todos scripts que forem criados com intencao de manipularem a interatividade do personagem farao referencia a este componente de alguma forma entao, antes de prosseguir, faca os ajustes que achar necessario, experimente bastante com cada propriedade do componente e personifique da maneira que achar melhor.Com o Controller Component adicionado ao seu personagem, ao seleciona-lo voce ja deve ter notado que aparece um Capsule Collider ligado ao mesmo. Ajuste a posicao e volume do Collider da maneira que puder de modo que ele represente bem o volume geral do corpo de seu personagem.Para testes, crie uma Box com um Collider Component, modifique sua escala e a utilize como chao, click Play e verifique se
os pes de seu personagem nao estao flutuando ou afundando no chao, faca os ajustes que achar necessarios para ter uma colisao refinada entre seu personagem e os objetos que virem a existir no seu cenario. Quando atingir o resultado que deseja, voce pode sempre adicionar as mudancas ao Prefab do Personagem se houver um. Isso afeta todas as copias do seu Personagem, independente de qual cenario voce esteja trabalhando. Apos estes pequenos ajustes, estamos prontos para comecar a programar.Voce pode escolher a linguagem de suporte que achar melhor, eu prefiro JavaScript :)4. Entendendo Unity's JavaScript, suas funcoes e co-rotinasLembre-se que a estrutura aqui e JavaScript, para C# existem pequenas diferencas que devem ser levadas em conta ao programar, se voce esta iniciando em Unity como eu, e extremamente recomendavel comecar com JavaScript ao inves de C# pois a comunidade da muito mais suporte a JavaScript na pratica.Antes de entrarmos em detalhes, e importante ressaltar que a Unity tem como expectativa assumir que voce, como programador, siga as convencoes estabelecidas para programacao na ferramenta. E sempre importante lembrar que a engine espera que voce siga os padroes de nomenclatura para funcoes e variaveis, isso nao e exatamente obrigatorio, voce pode nao seguir nada disso se quiser, mas no fim das contas voce apenas acaba gerando problemas a si proprio. Tendo isso em mente, vejamos as convencoes adotadas na Unity mais importantes que sao adotadas por toda a comunidade que busca sempre utilizar a ferramenta com eficiencia e clareza.4.1 Nomeando FuncoesQuando criar uma funcao, lembre-se de que o nome de cada funcao deve comecar com um caractere legal e sempre em letra maiuscula. Sabendo disso e seguindo esta padronizacao, lhe salvara uma vida de problemas e bugs que voce mesmo escreveu e nao consegue resolver pelo simples fato de nao ter seguido uma convencao tao simples.Se a funcao e um conjunto de varias palavras, voce pode optar por usar underlines se quiser, mas e aconselhavel apenas seguir o padrao, como por exemplo, MyFunctionName(). Assim quando um problema surgir no debug e apontar para um identificador, voce tem certeza absoluta de que o caso se trata de uma funcao e nao qualquer outro tipo de dados.4.2 Nomeando VariaveisAssim como na criacao de uma funcao, e boa pratica seguir o padrao estabelecido pela comunidade e desenvolvedores da engine, a simples diferenca aqui e que nomes para variaveis sempre devem iniciar com um caractere legal em letra minuscula. Exemplo, minhaVariavel : int;4.3 FuncoesEste ponto e onde a coisa pode complicar de inicio para programadores que nao estao acostumados a seguir o tipo de logica adotado na Unity. A engine, por padrao, faz todo o trabalho sujo de controle do software, execucao, loops, carregos e despejos, etc e etc. Sendo assim, ela trabalha com funcoes padronizadas que todos os scripts que voce escreva irao utilizar uma ou outra de alguma forma.Por exemplo, na Unity voce nao cria um loop principal para a execucao do seu game, pois ele ja esta la antes mesmo de voce comecar a programar. Voce apenas precisa chamar uma instancia da funcao responsavel
Delta-Time, consulte a documentacao da classe Time na referencia de scripting. Voce vai encontrar variaveis muito uteis como Time.deltaTime que podem facilitar suas animacoes via script de maneira suave e limpa.6. Colocando tudo em praticaAgora que ja temos uma visao mais ampla das caracteristicas da engine que envolvem a implementacao de um personagem interativo na Unity, vamos arregacar as mangas e botar as maos na maca! :)Nota: Meu projeto em particular se trata de um platformer, e no site da Unity voce pode encontrar muito material de referencia que estou usando como guia base tanto para este tutorial quanto para o desenvolvimento do meu projeto pessoal. Sinta-se sempre compelido a baixar tudo que o site da Unity oferece e examine de cabo a rabo todos os scripts que cairem em suas maos. No tutorial basico para um 2D Platformer, voce podera perceber que existem muitas funcoes implementadas pelo Flashbang Studios que tambem sao usadas aqui de forma muito semelhante, se nao identicas em alguns casos.Lembre-se de que nem tudo se trata de autoria, muita coisa se trata de pesquisa. Nao trate o habito de pesquisar como algo ruim, isso apenas vai lhe impedir de compartilhar com gente muito mais experiente e com conhecimento muito mais profundo do que o seu. Mantenha a mente aberta! :)6.1 Importe o Asset de seu personagemCrie um GameObject, crie um Prefab e estamos prontos para comecar a botar as ideias em pratica. Por enquanto nao se preocupe com esse Prefab, apenas seguimos em frente com nosso personagem existente na cena.6.2 Crie uma pasta no Project ViewApos criar a paste, renomeie para Scripts. Em seguida, selecione essa mesma pasta, va ate Assets > Create > JavaScript. Um script descendente da classe MonoBehavior sera criado na paste selecionada. Selecione o script criado e renomeie com o mesmo nome de seu personagem, apenas para melhor organizacao.6.3 Criando um ComponenteAgora que ja temos um Component que podemos trabalhar encima de nosso personagem, na Hierarchy View selecione seu personagem, va ate Components > Create New > NomeDeSeuScript. Notou como o script que criou aparece instantaneamente no menu? Coisa linda nao? Selecione o script de seu personagem, preste atencao nas propriedades no Inspector de seu personagem, ele agora tambem lista o componente recem-adicionado.Seu Script e um componente como qualquer outro ligado ao personagem, se quiser voce pode aplicar as mudancas do GameObject ao seu Prefab.Selecione a opcao Edit no Component Script de seu personagem ou de um duplo clique no script no Project View, a Unity ira iniciar seu editor padrao para a edicao de scripts. Voce pode utilizar qualquer editor que quiser para isso, o editor de scripts e sempre um programa externo, voce pode tambem customizar de modo forcado as opcoes do editor padrao, mas isso ja e conteudo para um outro tutorial, nos manteremos focados ao que realmente importa aqui.6.4 Editando um ScriptAo abrir seu script para edicao, por padrao a Unity ja o cria com uma funcao Update() vazia. Isso, por enquanto, nao e muito util. Agora, vamos parar e pensar um pouco... O que queremos fazer aqui?-Bota essa