Animation State Machines in Unreal Engine
Aulén, Janessa (2020)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202004276016
https://urn.fi/URN:NBN:fi:amk-202004276016
Tiivistelmä
The purpose of this thesis was to study and learn to use the animation tools and workflow in the commercial game engine Unreal Engine. It was also intended to make inheritable animation state machines for a game project’s player character and other characters.
This thesis also serves as a report of the problems and discoveries regarding the animations during the implementation, which should be considered in the future development of the project.
The project used as a basis for the thesis has been developed with Unreal Engine, so the work done for the thesis has also been done with the same game engine and implemented directly into the game project.
During the thesis study, animation state machines for the player character and one additional character were implemented. Contrary to the initial plan, the state machines cannot be directly inherited for other characters. Since there was only little prior experience with the animation tools and workflow, many parts of the thesis had been experimental and not all of the features that were initially planned were implemented in the way originally intended.
For future development, clear project-specific documentation concerning the problems and possible information needed prior to working in animations was also made and is now available for the project members.
The code shown in the work is very easy to read, but the basics of programming are not covered and so the reader should understand a programming language based on the C language. It would also help the reader to be familiar with the basics of Unreal Engine or a similar game engine. Tämän opinnäytetyön tarkoituksena oli tutkia ja opetella käyttämään Unreal Engine -pelimoottorin animaatiotyökaluja ja työvaiheiden kulkua. Tarkoitus oli myös saada lisättyä aiemmin aloitettuun peliprojektiin pelaajahahmolle ja muille hahmoille perittäviä animaatiotilakoneita.
Tämän dokumentin on samalla tarkoitus toimia raporttina siitä, mitä ongelmia ja huomioita tuli vastaan toteutuksen aikana ja mitä pitäisi ottaa huomioon animaatioihin liittyvissä asioissa tulevaisuudessa projektin kehittämisen kannalta.
Pohjana käytetty projekti on toteutettu Unreal Engine -pelimoottorilla, joten myös opinnäytetyön aikana tehty työ on tehty samalla pelimoottorilla suoraan samaan projektiin.
Opinnäytetyön aikana toteutettiin peliprojektiin animaatiotilakoneet pelaajahahmolle ja yhdelle lisähahmolle. Suunnitelmista poiketen tilakoneet eivät ole suoraan perittävissä muille hahmoille. Koska pelimoottorin animaatioiden työnkulusta ja työkaluista ei ollut ennalta suurta kokemusta, toteutuksesta on suuri osa ollut kokeilemista ja kaikki alkuun suunnitellut toiminnot eivät toteutuneet niin kuin oli aluksi tarkoitus.
Opinnäytetyön tärkeimmät tavoitteet saavutettiin. Tulevaa kehitystyötä varten myös animaatioon liittyvistä ongelmista ja tarvittavista ennakkotiedoista on projektin jäsenille tehty selkokielistä projektikohtaista dokumentaatiota.
Tämän työn lukijan olisi hyvä ymmärtää C-kieleen perustuvaa ohjelmointikieltä. Työssä näkyvä koodi on erittäin helppolukuista, mutta ohjelmoinnin perusasioita ei käydä työssä läpi. Olisi myös hyvä, että lukijalla on hallussa Unreal Enginen tai vastaavan pelimoottorin perusteet.
This thesis also serves as a report of the problems and discoveries regarding the animations during the implementation, which should be considered in the future development of the project.
The project used as a basis for the thesis has been developed with Unreal Engine, so the work done for the thesis has also been done with the same game engine and implemented directly into the game project.
During the thesis study, animation state machines for the player character and one additional character were implemented. Contrary to the initial plan, the state machines cannot be directly inherited for other characters. Since there was only little prior experience with the animation tools and workflow, many parts of the thesis had been experimental and not all of the features that were initially planned were implemented in the way originally intended.
For future development, clear project-specific documentation concerning the problems and possible information needed prior to working in animations was also made and is now available for the project members.
The code shown in the work is very easy to read, but the basics of programming are not covered and so the reader should understand a programming language based on the C language. It would also help the reader to be familiar with the basics of Unreal Engine or a similar game engine.
Tämän dokumentin on samalla tarkoitus toimia raporttina siitä, mitä ongelmia ja huomioita tuli vastaan toteutuksen aikana ja mitä pitäisi ottaa huomioon animaatioihin liittyvissä asioissa tulevaisuudessa projektin kehittämisen kannalta.
Pohjana käytetty projekti on toteutettu Unreal Engine -pelimoottorilla, joten myös opinnäytetyön aikana tehty työ on tehty samalla pelimoottorilla suoraan samaan projektiin.
Opinnäytetyön aikana toteutettiin peliprojektiin animaatiotilakoneet pelaajahahmolle ja yhdelle lisähahmolle. Suunnitelmista poiketen tilakoneet eivät ole suoraan perittävissä muille hahmoille. Koska pelimoottorin animaatioiden työnkulusta ja työkaluista ei ollut ennalta suurta kokemusta, toteutuksesta on suuri osa ollut kokeilemista ja kaikki alkuun suunnitellut toiminnot eivät toteutuneet niin kuin oli aluksi tarkoitus.
Opinnäytetyön tärkeimmät tavoitteet saavutettiin. Tulevaa kehitystyötä varten myös animaatioon liittyvistä ongelmista ja tarvittavista ennakkotiedoista on projektin jäsenille tehty selkokielistä projektikohtaista dokumentaatiota.
Tämän työn lukijan olisi hyvä ymmärtää C-kieleen perustuvaa ohjelmointikieltä. Työssä näkyvä koodi on erittäin helppolukuista, mutta ohjelmoinnin perusasioita ei käydä työssä läpi. Olisi myös hyvä, että lukijalla on hallussa Unreal Enginen tai vastaavan pelimoottorin perusteet.