0% found this document useful (0 votes)
147 views57 pages

Master The Art of Unreal Engine 4 Blueprints: Extra Credits - Saving & Loading + Unreal Motion Graphics!

Uploaded by

Nguyễn Huỳnh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
147 views57 pages

Master The Art of Unreal Engine 4 Blueprints: Extra Credits - Saving & Loading + Unreal Motion Graphics!

Uploaded by

Nguyễn Huỳnh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 57

MastertheArtofUnreal

Engine4Blueprints
Extra Credits - Saving & Loading +
Unreal Motion Graphics!

MastertheArtofUnrealEngine4BlueprintsExtraCredits(Saving&Loading+
UnrealMotionGraphics!)

Copyright2014KitatusStudios

Allrightsreserved.Nopartofthisbookmaybereproduced,storedinaretrievalsystemortransmittedinanyformorbyany
means,withoutthepriorwrittenpermissionofthepublisherand/orthebookscreatorRyanShah.However,piecesofthebook
maybereproducedincaseofbriefquotationsembeddedincriticalarticlesorreviews.

Everyefforthasbeenmadeinthepreparationofthisbooktoensuretheaccuracyoftheinformationpresented.However,the
informationcontainedinthisbookissoldwithoutwarranty,eitherexpressorimplied.Neithertheauthor,orpublisher,andtheir
dealersanddistributorswillbeheldliableforanydamagescauseddirectlyorindirectlybythisthisbook.

FirstPublished:28/09/2014
ProductionReference:014180SOLID14045

ISBN13:9781500313784
ISBN10:1500313785

www.kitatusstudios.co.uk
CoverimagebyRyanShah([email protected])

Credits
Author
RyanShah

SpecialThanks

ScarlettJuzzle
ThankYouScarlettforputtingupwithmeoverallthistimeandbelievinginevery
crazyideathatcomesintomyhead!IvehadsuchanamazingtimebeingwithyouandIcant
waitforeverystepofourfuture.Ihopeyoulookforwardtoevenmoreofmycrazyideas!

EpicGames
Thankyouforbeingawesome!

AbouttheAuthor

RyanShahisProjectLead/LeadDeveloperatKitatusStudios.Boastingover10yearsof
experiencecreatingvideogames,Ryanhasworkedonanassortmentofdifferentprogramsto
createvideogameexperiences.

BeforeKitatusStudios,Ryanwasafreelancewriter,whoselfpublishedworksoffiction.Using
hisexperienceasawriter,Ryanturnedtovideogames,alifelongpassiontobringtheworldsof
hisideastolife.

Hecanbefoundonlineathttp://kitatusstudios.co.ukandcanbecontactedat
[email protected]

Acknowledgement

AhugethankyouandahalfhastogotomybeautifulgirlfriendScarlett,whonomatterwhathas
alwaysbelievedinmewhennobodyelsedid.Herpatienceisinspiring.

IdlikeEpicforcreatingsuchadiverseyeteasytousesystemwithUnrealEngine4.When
peoplesayitsagamechanger,theywerentwrong!

Idalsoliketothankyou,thereader.Imightnotknowyoupersonally,butbyyoubuyingthisbook
Yourehelpingtosupportmeandhelpingtosupportthevideogameindustry.Whoknows
MaybethisbookwillhelpyouandbecomethesteppingstoneyouneedtomaketheBEST
GAMEOFALLTIME.Anythingispossible!

TableofContents

Chapter#1UnrealMotionGraphicsTitleScreen!
LetsBegin!Page11
CreatingaUMGBlueprintPage13
CreatingourTitleScreen!Page14
Buttons,Buttons,Buttons!Page19
MainMenuDIY!Page24
LinkToThePastPage26
LetsSeeOurMenus!Page29
ExtraButtons!Page31
TheseAreYourOptions!Page34

Chapter#2Saving&LoadingSavingourOptions!
HenshinAGoGoBaby!Page43
PlayerController=Conduit!Page46
SaveGame=False!Page48
SaveGame=True!Page49
OnButtonPress,SaveOurSettings!Page52
TheFinalShowdown!Page54

EndofTheBook!Page57

Preface

UnrealEngine4isthelatestversionofthepopularvideogamedevelopmentpackagetheUnreal
Engine.TheUnrealEngineneedsnointroductionBeingthepowerhousebehindtheprevious
consolegenerationfromthestart.TocalltheUnrealEngineapowerhousewouldbean
understatement,theUnrealEngineiseverythingadeveloper(IndieandCommercial)wouldever
needinavideogameenginetocreatetheiridealproject.Withitslatestiteration,UnrealEngine
4,EpichasimprovedUnrealEngineandpropelledtheengineintothenextgeneration,theyhave
broughtthefuturetothepresentwithUnrealEngine4andtheresliterallyneverbeenabetter
timetobeginusingUnrealEngine4foranyproject,bigorsmall,commercialorindependent.

MasteringtheArtofUnrealEngine4Blueprints(ExtraCredits)takesaconcise,clear,
informativebutfunapproachtodevelopingUnrealEngine4,withouttouchingasinglelineof
code.Byusingthisbook,youllbecreatingvarioussmallprojectscompletelyinblueprint.From
thisbook,youllbeequippedwiththeknowhowyoullneedtocreatethegameofyourdreams.
OntopofmasteringtheBlueprintssysteminUnrealEngine4,youllalsolearnthesecrets
behindgettingthemostoutofthebeastofanengine.

WhatYoullNeedForThisBook
InordertotakefulladvantageofthisbookYoullneedaWindows,MacorLinuxcomputerthatis
capableofrunningUnrealEngine4.Itrequiresacomputerwiththefollowingsystem
configuration,whichdoublesupattheMinimumRequirementsforthisbook:

DesktopPCorMac
Windows764bitorMacOSX10.9.2orlater
QuadcoreIntelorAMDprocessor,2.5GHzorfaster
NVIDIAGeForce470GTXorAMDRadeon6870HDseriescardorhigher
8GBRAM

Note:Believeitornot,YoullalsoneedUnrealEngine4(Version4.4ornewer).

WhothisBookisFor

MasteringtheArtofUnrealEngine4Blueprints(ExtraCredits)isdesignedforanyonewhose
dreamtofcreatingvideogames,butdidnthavetheknowhowto.Thisbookisalsodesignedfor

everyonewhowanttoharnessthepowerofUnrealEngine4totaketheircreationstothenext
levelandbeyondandthepeoplewhowanttocreategameswithoutwritingasinglelineofcode.

ThosewhoarefamiliarwithUnrealEngine4willhaveaneasiertime,buteverythinginthebook
isexplainedclearlyandwithreferencescreenshotstomaketheprocessofmasteringthe
blueprintssysteminUnrealEngine4abreeze.PeoplewithnopriorexperiencetousingUnreal
Engine4,orgameenginesingeneralshouldhavenoproblemwithfollowingthisbook,butifyou
needadditionalhelpwithanythinginthebook,feelfreetoaskontheUnrealEngineForums
(http://forums.unrealengine.com)oremailmedirectly:[email protected].

ReaderFeedback

Ilovefeedback!Goodorbad,itsallwelcomeandIhighlyrecommendyoudoso!Ifyouloved
readingorhatedit,Iseriouslywouldlovetoknow.Feedbackisimportantinhelpinglettingme
knowhowIvedone,whatneedstobefixedandImjustgenerallyintriguedonhowwell/badIve
done.ImaperfectionistandIstriveforthebest,soiftheresanythingIcanimproveon,feelfree
toemail:[email protected]

CustomerSupport
Sinceyou'retheownerofthisbook,Youhavetheopportunitytogetbonuscontent,suchas
colourimagesandprojectcontent:Headtohttp://content.Kitatusstudios.co.uktoaccessto
thesefiles!

Piracy

ImnotgoingtopretenditdoesntexistPiracyispiracyandnothingisgoingtostopit.Ifyouve
piratedthisbookItsalright.Imnotgoingtocurseyouoranything.Itssadthatyourenotwilling
tospendmoneyonthisbook,butIknowtimesaretoughandinthedigitalworldIknowthat
everythingisfreetosomepeople.

DuetothefactIvegivenupthetimetowritethisbooktohelpteachotherstoharnessthepower
ofBlueprints,losingoutonworkhoursandtimeIcouldhavespentonSuperDistro(Myfirst
Commerciallytobereleasedproject),Iaskthatifyoupiratedthisbookandyouveenjoyedthis
book,PleaseconsiderpurchasingSuperDistrooryoucouldsendadonationthroughmy
website.Thismeansthatevenifyoudontspendthefullpriceonthisbook,Myeffortstobring
thesetutorialstoyouarent100%invein.

Ifyouvepurchasedthisbook,thenIcantthankyouenoughforsupportingmeandmyworkandI
seriouslyamgratefulyoureexperiencingthebookthroughlegitimatemeans.

Errata
Atthetimeofwriting,thebookhasnoerrors.However,astheengineisupdated,thingsmight
change.Intheunlikelyeventsomeofthecodenolongerworks,pleaseemailmeimmediately:
[email protected],younotonlysecuretheintegrityofthebook,but
8

youalsohelpothersbynotcomingacrosserrorsandthisleadstoastressfreeexperiencewith
thisbook.Whoknows,youmightalsobecreditedinlaterbookrevisions!

DownloadingDLC(DownloadableContent)
Youcandownloadcolourvariationsoftheimagesinthisbook,aswellasUE4projectfilesfrom
http://content.kitatusstudios.co.uk.

Questions
Ifyouhaveanyquestions,[email protected],soplease
don'tbeafraidtogetintouch.

Mission#1TitleScreen
CreatingaTitleScreenandOptionsMenu!

Template:
ThirdPersonBlueprint

WhatYoullLearn:
HowtouseUnrealMotionGraphics
HowtosetoptionsinUnrealEngine4

WhatYoullNeed:
BackgroundTexture(ForTitleScreen)[1280x720or1920x1080]

[Extras]WhatYoullNeed:
AnimatedMaterial(Atleast720pwouldworkperfectly)

10

LetsBegin!

HelloagainoneandallandwelcometothenextinstallmentofMastertheArtofUnrealEngine4
BlueprintsWherewewillbecoveringlotsoflittlegoodiestohelpboostyourUnrealEngine4
knowledge.

Todayweretacklingatitlescreen,usingthe(Atthetimeofwriting)stillexperimentaltool:
UnrealMotionGraphics.Thistoolis(Again,attimeofwriting)stillinitsinfancybutitspoweris
leakingoutofthesides(Notliterally,ofcourse!)YoucandosomanythingswithUnrealMotion
Graphics(SuchasHUD,Menusandsomuchmore!)Onceyouvereadthroughthis
minitutorial,youcouldevengobacktoBook#1andcompareUMGtotheclassicwayof
creatingaHUD!

ImsostokedtobeshowingyoutheropesofUMGsoIamjustgoingtodivestraightintothings!
AreyoureadytolearnevenmoreAwesomestuff?!HensinAGoGo!

Step#1CreateanewUnrealEngineproject(MakesureitsonatleastUnrealEngine4.4.1,
anythingearlierthenversiondoesnthaveUnrealMotionGraphics!)

[NOTE:Itreallydoesntmatterwhatprojectyouuseasatemplate,butIrecommendthe
ThirdPersonBlueprinttemplateasthatiswhatIllbeusingforthis!]

Nowyoushouldhavesomethingsimilartothisscreen:

Doesntthatfeellikehomenow?Itnevergetsoldseeingthisscreen!

11

Beforewecarryon,ifyourelivinginthepresenttime(Andnotinthedistantfuture!),youllneed
toactivateUnrealMotionGraphics(Asitscurrentlyanexperimentalfeature!).Todothat:

Step#2GotoEdit(InthetopleftofyourUnrealEnginewindow,nexttoFile)andselectEditor
Preferences.

Step#3IntheEditorPreferenceswindow,clickExperimentalwhichisundertheGeneral
header,whichwillopenuptheExperimentalsection.

Fromhere,youcanseeUnrealMotionGraphics(UMG)ontheright.Currentlyitsunticked.All
youhavetodoisclicktheemptyboxtoactivateit(Makesuretheboxisfilledintosignifyithas
beenactivated!)

Step#4OnceyouhaveactivatedUnrealMotionGraphics(UMG),makesuretoclicktheSet
asDefaultbuttononthetopoftheEditorPreferenceswindow,thenyoucanclosethewindow
andgobacktothemainenginescreen.

Beforewecontinue,therestwomorequickthingsweneedtodo:

Step#5Saveyourprojectasitis(Justtobesafe!)
12


Step#6CloseUnrealEngine4(YourProjectandtheLauncher),waitafewsecondsand
reopenUnrealEngine4(Andthenyourproject!)

NOTE:RemembertoopenyourprojectinEngineversion4!

EXTRANOTE:Dontplaythisonecool.Iknowwhenyouinstallprograms,someofyou
hittheRestartlaterbuttonandcontinuetousetheprogramlikearebel,butdontdo
thatherebecausethatdoesntwork.YouHAVEtorestarttheeditororUnrealMotion
Graphicswontworkproperly!

Step#7Nowthatyouverestartedyourproject,weneedtocreateanewemptylevel.Callthis
newlevelUMG_MainMenuandmakesureyouselectEmptyLevel.

Savethelevelasitcurrentlyisandthenwecanbeginthefunstuff!

CreatingaUMGBlueprint!

Step#1WithintheContentBrowser,(MakingsureyouvegottheGAMEfolderhighlighted)
createanewfolder(ByclickingNew>Folder).NamethisfolderUMG.

Step#2Oncethefolderhasbeencreated,doubleclickUMGtoopenupthefolder.

Nowwe'regoingtohavesomefun!
13


Step#3WhilestillintheContentBrowser(InourUMGfolder),RightClick(Ctrl+Click)inthe
emptyspaceinthefolder(WhichbringsuptheCreatewindow).Inthiswindow,Scrolldownto
UserInterfaceandhighlightUserInterfacewithyourmouse,whenthepopupmenuopens,
selectWidgetBlueprint(NamethisBlueprintUMG_MiniTitle)

Step#4DoubleClickthenewlycreatedUMG_MiniTitletoopenupUnrealMotionGraphics
NowthenfunREALLYbegins!

CreatingourTitleScreen!

Firstthingsfirst,weregreetedwithaCanvasPanelalreadyplaceddownforus(Youcansee
thisinthebottomleftunderHierarchy.WedontneedaCanvasPanelforwhatweregoingto
do,so

Step#1ClickontheCanvasPanelentryinthehierarchyandpressdeleteonyourKeyboard
todoawaywiththeuselessCanvasPanel.

NowwevegotridoftheCanvasPanel,wecanputinaborder,whichwillcoverourgamescreen
edgetoedgewhichwillbeperfectforourMainMenubackground!

14

Tocreateaborder,wehavetofirstfindwhereitishiddeninUMG(Whichisactuallynotthat
hidden,ImeanifitwereSolidSnake,itwouldbedeadinseconds!)

Step#2InthePalette(InthetopleftoftheUMGwindow),thereareanumberofoptionsjust
waitingtobeclickedon.

IfyouclickonCommon,awholenewrangeofoptionsarenowatourdisposal.Toputthe
borderintoourproject,allwehavetodoisclickBorderanddragitintotheBlueprintlooking
UMGview.YoullknowifyouvedoneitrightasitllnowshowupintheHierarchy!

Tosomethiswouldntseemlikedoingmuch,butifyoucomparethistotheHUDwecreatedlast
timeround,wetechnicallycreatedaHUDblueprint,settheresolutionofthescreenthattheuser
isusingandgotitprimedtocreateourHUDInliterallyseconds!

Step#3NowourBorderisready,wecanfillitwithanimage.Todothis,weneedtocreatea
SlateBrush.Itsoundscomplicatedbutittakesagoodcoupleofseconds.

CloseoutofUMGforasecondandgobacktotheContentBrowser,intoyourUMGfolder.This
isthetimetoimportyourimageforthebackgroundifyouhaventalready(1280x720imageor
1920x1080isideal!)
15


Step#4Onceyourimagehasbeenimported,wecannowcreateourbrush.Justlikeyou
createdtheWidgetBlueprint,dothesamethingbutchooseSlateWidget(Ifyouveforgotten,
RightClick[Ctrl+Click]>UserInterface>SlateWidget)andnamethisUI_Title.

Yourfoldershouldnowlooksomethinglikethis:

NOTE:IvealreadycreatedaMaterialformytexturebutitsdowntoyouwhetherornot
youwanttodothat.

EXTRANOTE:Nowisagoodtimetosave!

Step#5DoubleclickUI_Titletoopenuptheproperties,andsetyourTextureorMaterial
Assettoyourimagethatyouhaveimported!

Beforeyoumoveon,makesureyousettheimagesizecorrectlyorthiswillcauseissues!

16

NOTE:IfyoureimportingaMaterial,itmightsaythatThisMaterialisnotsupportedin
UI.Ifthisisthecase,simplydoubleclickyourmaterialfromwithinthecontentbrowser
andintheproperties(OntheleftintheMaterialEditor),scrolldowntillyouseeUsed
withUIandsetthattotrue,compile,saveandthenallyourproblemsthatUMGis
churningoutshoulddisappear!

Onceyourehappywitheverything,saveandclosethiswindowandheadbackinto
UMG_MiniTitle

Step#6OncebackinUMG,GointotheHierarchyandclickBorder.Thiswillbringupthe
propertiesontherighthandside.

17

JustunderAppearance,whereitsaysBrushandhasabigemptywhitebox,Simplyclick
NoneandswapitwithyourSlateBrush.

Done!Nowourbackgroundimageisshowing,letsgetmakingourtitlescreen!
18

Buttons,Buttons,Buttons!

Nowwehaveabackgroundimage,weneedtoputabuttonintoourTitleScreensotheusercan
navigatearound,playthegame,changetheirsettingsorexityourproject.

Tocreatebuttons,weneedtocreateaboxthatcansitonourTitleScreen.Todothis

Step#1HeadbacktothePaletteonthetopleftandthistimeinsteadofusingtoolsfromthe
Commonsection,clickPaneltobringuptoolsthatwillbeextremelyhelpfultoourcause!

ThisiswhereweneedtobringtheCanvasPanelback,so
Step#2SimplyclickCanvasPanelanddragitintotheviewportofUMG.Done.

19

Justtobesafe,checktheHierarchyquicklytomakesuretheCanvasPanelisnowsittingunder
theBorderlikeso:

NowwecanstartaddingbuttonsandwhatnottoourWidget!

Step#3IntheHierarchy,clickCanvasPaneltomakesurewhatweaddnextgoesintothe
CanvasPanelandnotontheBorder.

OnceyouvehighlightedtheCanvasPanelintheHierachy,gobacktothePaletteboxandthis
timeclickHorizontalBoxanddragintoourUMGviewport.

20

Step#4Zoomin(ByusingyourmousesScrollWheel)totheHorizontalBoxandclickthe
newlycreatedHorizontalBoxandresizetheboxtocoverwherealongbuttonwouldsit.Once
youveresizedthebox,movetheboxnearthebottomofthescreenlikesobyclickingand
draggingthebox:

WevenowcreatedtheHouseforthebutton,sowhatsnext?Justbeforeweputourbuttonin
hishousetosleep,weneedtotellUMGoneimportantthing

WeneedtotellUMGthatnomatterwhatthescreensize,ourbuttonneedstostayinthis
positionatthebottomofthescreen.Andthisishowwedojustthat!

Step#5WiththeHorizontalBoxstillselected,gotoitsoptionsontherightofthescreenand
atthetopunderLayoutisasectioncalledAnchors,itlookslikethis:

Step#6UnderAnchorsthereisagreyboxwiththewordAnchorswritteninsidewithadown
arrow,clickthisdownarrowandselectthe10thoption(Smallboxinthebottomcentre).
21


Thisstopsthebuttondisappearingnomatterwhatthesizeofthescreen!

SowehavetheHouseallsetup,itstimetoputthebuttoninitshome!

Step#7HeadbacktothePaletteboxintheleftandgototheCommonsection.Withinthis
commonsection,clickButtonanddragitINTOyourHorizontalBoxwhichyousetuppreviously.

Theresstillsomeworklefttobedonebeforethisisafullyfunctioningbutton!

Thebuttonislookingalittlebareatthemoment,soletsgetsometextinsidesoplayersfindout
whatourbuttonshoulddo!

Step#8JustlikeyoudidwiththeButton,findTextBlockinthePalette(Whichisunder
CommonjustliketheButtonwas).DragthisINTOthebuttonandyoullseejustlikemagicthe
textbecomespartofourbutton.

22

Step#9Withthetextselected,justlikebeforeheadovertotheDetailspanelontheright.
Thistime,weneedtoeditthetextSojustunderContent,theresasectioncalledText.So
canyouguesswhatwehavetodowiththis?Yougotit!

Inthetextbox,write:ClicktoStart.

IbetyoureitchingtoknowwhattheBindbuttonisforButDONOTCLICKITJustyet.Well
comebacktothissoon!

Theresjustonelittlethingandweredonewiththisbuttonforthetimebeing:

Step#10ClicktheButton(Notthetext)andgointotheDetailsontheright.Scrolldownuntil
youfindtheLayoutsection.Inthissection,theresapartcalledPaddingandjustunderthatis
apartcalledSizewithtwooptions:AutoandFill.

23

ClickAutotomakeitfillourHorizontalBox.

WevedonewhatneededtobedonenowforthisbuttonButitsnotquitefunctionaljustyet.

Beforewecontinuehowever,weneedtocreateanotherWidgetBlueprint,sofornow:

Step#11Compile/SaveandclosethisUMGwindowandinourUMGfolderRightClick(Ctrl
+Click)ourUMG_MiniTitleandselectCreateCopy.

Namethiscopy:UMG_Title2.

MainMenuDIY!

NowitstimetotestyourskillssoIcanshowtoyoujusthowmuchyouvelearntwithoutrealising
it!

YourUMGfoldershouldnowlooklikethis:

24

Ifitdoes,Awesome!WecancontinueIfnot,however,thensimplydoublebackandskimover
thelastchaptertocheckifyouvemissedsomething.

Readytocontinue?Excellent!

Step#1DoubleClickUMG_Title2toopenupourduplicatedMenu.

Step#2ExpandalloftheobjectsintheHierarchyanddeletetheHorizontalBox,Buttonand
Text(DeletingtheHorizontalBoxshoulddeleteitallforyou!)

Step#3Nowusewhatyouvelearntsofartocreatethis:

RemembertoanchoreverythingtotheCENTREofthescreenthistime(Notthebottom)and
makesureeachofthebuttonsareintheirownHorizontalBoxbutthey'reallaChildofthe
CanvasPanel.

Ifyouneedhelp,refreshyourselfbygoingthroughthepastchapter,butIbelieveinyouandI
knowyoucandoitwithnoproblemswhatsoever!

25

LinktothePast

SowehaveaTitleScreenandaMainMenu,butnothinghookingthembothtogether.Ibetyoure
raringtoknowjusthowtolinkthemtogetherSowhatwearewaitingfor?Letsdoit!

Step#1Save/CompileyourUMG_Title2.Oncesaved,closeUMG_Title2andopen
UMG_MiniTitle.

Step#2ClickonourClicktoStartbutton(Besuretonotclickthetext!)andheadovertothe
detailspanelontheright:

WhereitsaysEvents,theresasectioncalledOnClickedEventwithaBindbutton.This
meanswecantellUMGwhatwillhappenwhenthisbuttonhasbeenpressed,soclickBindand
selectCreateBinding.ThiswillcreateaBlueprintforus,readyforustomessaroundwith.

26

Firstthingsfirst,weneedtobreakthisconnectionasatthemomenttheBlueprintreads:Start
thestuffinthisline>Endthestuffinthisline.This,obviouslyisntwhatwewant.

Step#3Alt+ClickthearrowontheGetonClickedEvent0tobreaktheconnection.Nowclick
theGetonClickEventnodeandmoveitabitfurthertoleftsowehavesomeroomtoplaywith.

Step#4FromtheemptypinontherightofGetonClickedEvent,clickanddragtotheright
andourfavouriteCompactBlueprintLibrarywillopenup.

27

TypeinRemoveandselectRemovefromViewport,thiswilltakeourcurrenttitleandgetrid
ofit.

NowthatwevegottenridofthecurrentTitleScreen,weneedtocreatetheotherTitleScreenwe
created(UMG_Title2)soitactsasaseamlesstransitionfromTitletoMainMenu.

Step#5FromtheemptypinontherightoftheRemovefromViewportnode,clickanddragto
theright.WhentheCBLopensup,typeinCreateWidgetandselecttheCreateWidgetnodeto
createit.

Step#6WithintheCreateWidgetnode,thereisasectioncalledWidgetType,withabox
calledSelectClass.ClickSelectClassandclickUMG_Title2_C.

Thiscreatesthesecondtitlescreen,butitdoesntactuallyshowourTitlescreen,itonlycreates
it.Itsoundsabitcomplicated,butallshouldmakesenseinamoment.

Step#7FromtheReturnValuepinofCreateWidget,Clickthebluepinanddragtothe
right.IntheBlueprintLibrary,typeAddandselectAddtoViewport.

Thiswillbringthesecondtitlescreenup,buttheresanumberofboolsweneedtotickinthis
nodebeforewecanuseitasaTitleScreen:
28


Modal&ShowCursorSetthesetotrue

ModalmeanstheTitleScreeneatsupalloftheinputs,soyoudontaccidentlyclickbehindthe
titlescreen.

ShowCursorshowsthecursor.

DontsetAbsolutetotrueaswhenAbsoluteisfalsemeansthatitshouldtakeupthewhole
screenandnotonlypartofit.

Step#8NowconnecttheemptyrighthandsidepinofAddtoViewporttotheReturnNode
thatwasoriginallyinthisBlueprintandpow!ThatsthisBlueprintdone!SaveandCompilethe
BlueprintthencloseUMGItstimetotellourprojecttoactuallydisplaythesemenuscreens!

LetsSeeOurMenus!

Headintoyouremptylevelandlikewevedoneafewtimesinthepreviousbook,headintothe
levelblueprint.Ifyouveforgottenhowtodothis:

#1ClicktheBlueprintsbuttonabovetheviewport
#2PressOpenLevelBlueprint

NowtheLevelBlueprintisopenWeneedtotelltheLevelthatwhenthelevelbegins,drawour
menu!

29

Aswehavethefirstmenuthatdrawsthesecondmenuonthebuttonpress,allwehavetotell
thelevelblueprintistodrawthefirstmenu.Sowhatarewewaitingfor?!

Step#1RightClick(Ctrl+Click)inemptyspaceintheBlueprintarea.WhentheCompact
BlueprintLibraryopensup,typeinBeginandselectEventBeginPlay.

Justlikebeforeinthepreviouschapter,createaCreateWidgetnodeconnectedtoEvent
BeginPlayandthencreateanAddtoViewportnodeconnectedtotheCreateWidgetnode
bydraggingfromtheReturnValuepin.

OnceyouvecreatedtheAddtoViewportnode,besuretoenabletheModalandShow
Cursorboolsagainbytickingthem!

Theonlythingyoushouldbedoingdifferentfrombefore(Apartfromobviouslymissingoutthe
RemovefromViewportnode!)issettingtheWidgetTypeintheCreateWidgetNodeto
UMG_MiniTitle_C.

NOTE:IfyourUMGfilesarentshowingupinWidgetTypethismeansthatoneofyour
WidgetshavehadissuescompilingUsuallybecauseyouforgottoconnecttheReturn
Nodeinthebuttonstogether!

Onceyourlevelblueprinthasbeenupdatedwith:EventBeginPlay>CreateWidget>Addto
Viewportasexplainedabove,CompiletheBlueprint,closetheBlueprinteditorandtestyour
currentprojectbypressing:Alt+Ponyourkeyboard.

30

Congratulations!Itworks!

WestillneedtocodetheNewGame,OptionsandQuitGamebuttons(Letsnotgetahead
ofourselvesjustyet!Theresstilloneortwoobstaclesinourwaybutwellgetthereinnotime!)

ButthiscausesforacelebrationYouvejustcreatedafullyworkingTitleScreenSoletsgetthe
otherbuttonsworking!

ExtraButtons!

OnceyouvetestedyourmenuandyourecompletelyhappywitheverythingItstimetoprogram
thebuttonsinourUMG_Title2UMGWidget!

Step#1IntheContentBrowser,OpenupUMG_Title2.

Step#2JustlikeinthechapterbeforethechapterjustgoneCreateaBindforallthree
buttons(NewGame,OptionsandQuitGame)butdontfillouttheBlueprintsyet.

31

OnceyouvecreatedBindsforallthreebuttons,gointotheGraphtab(Onthetopright)and
makesureyourFunctions(IntheVariableLibraryontheleft)looklikethis:

IfyourFunctionsdoesntlooklikethat,thenyouhaventcreatedBindsforallthreebuttonsGo
backuntilyouendupwithGetOnClickEvent_0,GetOnClickEvent_1andGetOnClickEvent_2
intheFunctionsareaofyourUMGBlueprint.

Readytocontinue?Awesome!

OpenuptheBlueprintforGetOnClickEvent_0(WhichshouldbeboundtotheNewGame
button).

AllwehavetodoforthisishookupaOpenLevelnode!

32

WithintheOpenLevelnode,thereisaninputcalledLevelName.Fordemonstration
purposes,letsputinExample_Map,whichwillopentheExampleMapwithinourproject!

Whatdidwejustdo?BasicallytheBlueprintreads:WhentheButtonisclicked,open
Example_Map!Simple...yeteffective!

CompileandmoveovertotheBlueprintGetOnClickedEvent2[Whichshouldbeboundtoyour
QuitGamebutton].

ImnottalkingabouttheOptionsButton(WhichisGetOnClickedEvent1.Donot
openGetOnClickedEvent1,openGetOnClickedEvent2).

WhenyoureinyourQuitGameBlueprint(GetOnClickedEvent2),weneedtoaddaExecute
ConsoleCommandnode,whichisanodewhich(Youguessedit!)executesaconsole
command!

Bynow,Imsureyoucanguesshowtocreatethenode,butifnot,heresahint:RightClick(Ctrl
+Click).WhentheCompactBlueprintLibraryopensup,typeinExecuteConsoleandselect
thecorrectnode!

Now,ImsureyourewonderingwhatCommandneedstogointotheinputwithinExecute
ConsoleCommand,soletsnotwasteanytime!

33

WithintheCommandinput,simplytypeQuit.Yup,thatsallyouhavetodoforthisBlueprint!

Sojustlikethat,wevesetupNewGameandtheQuitGame,werealmostalldonewiththis
project!Allwehavetodonowiscoupleupeverythingwevelearntsofaraswellasafewmore
pointerstocreatetheOptionsmenu!

TheseAreYourOptions!

CreateanewWidgetBlueprintandcallitUMG_Options.Withinthismenu,useeverything
youvelearnedthusfartocreatethreebuttons(Allwithtextin!),sometextabovethesebuttons
andtwomorebuttonsunderneaththeotherbuttonsandtext.Youshouldgetsomethingthat
lookslikethis:

Ifyoucantseetheimage,hereswhatyouneedintherelativeboxesandwhatnot:
34

Toptextbox:SetGraphicsSettings
ThreebuttonsundertheTextBox:Low,Med,High
ThetwobuttonsundertheLow,Med,HighApplyandCancel

Gotit?Awesome!Ifnot,Skimbackthroughwhatwevealreadycoveredinthebooktotouchup
onwhateveryouremissing.

Onceyourereadytocontinue,weneedtoheadoverintotheEventGraphofourUMG_Options
(Remembertousethetopribbontonavigate!).

Justlikewelearntinthelastbook,weneedtocreateanInteger.Rememberthat?Ifnot,heresa
realquickreminderofwhatanIntegerisandhowtocreateone:

WhatisanInteger?AnIntegerisanumberthatwecansetandcallbacktolater.Whyisthis
important?BecausewecanchangethingsifourIntegerisaspecificnumber!

ButRyan,WhycantIuseaFloat?Isntthatanumberwecansettoo?Well,Mysticalreader
whocanwriteandbeansweredalaHarryPottertoTomRiddleAFloatcandealwithdecimal
places,whichisgreatforstoringtimeoranythingthatneedsanumber.numberfigure,butan
Integerdoesntdealwithdecimals,Itjustdoesntunderstandthem.

Instead,itpridesitselfonactingasaswitchoracollectionforWHOLEnumbersonly(Sorry
decimalnumbers,itstotheFloatforyou!)

Soundscool!Butwhydoweneedthatrightnow?Well,Mr/Miss/Ms/Dr,wecanusean
IntegertoswitchbetweenLow,MedandHighwithalmostnoeffortatall!Wecanthensavethat
IntegerandcallitbackWHENEVERweneeditagain!

Groovitational!LetsMakeOne!Surething!Letsgetrighttoit!

[NOTE:Yes,itwas5amwhenIwrotethat,Dontmindme!]

Step#1Ifyourenottherealready,headintotheGraphtabofyourUMG_Options.(Usethe
toprightTabtonavigatetoit!)

Step#2Onthefarleft,theresawindowthatIliketocalltheVariableLibrary,itlooksalittle
likethis:

35

Step#3ClicktheVariablebutton(WhichisnexttoFunction,Macro.etc),tocreateanew
Variable.

Step#4Withinthedetailspanel(JustbelowtheVariableLibrary!),changetheVariableType
toIntandsetthenametoGraphicsSettings.

Step#5Done?Awesome!Thatsallweneedtodohereforthemoment,sousethetopright
ribbonagainandgobackintotheDesignertabtogobacktoourUMG!

Step#6ClicktheLowbuttonwhichyoucreatedearlier(Notthetext,thebutton!)andinthe
righthandsidedetailspanel,createanewBindforit(Justlikewedidbefore!)
36


Step#7ThiswillopenaBlueprinteditorforwhathappenswhenthisbuttonispressed.Onthe
leftinyourVariableLibrary,grabyourGraphicsSettings(Youmightneedtoscrolldowninthe
VariableLibrarytofindit!)anddragitintotheBlueprintarea.Whenasked,selectSet.

Step#8AsthisbuttonwillbetheLowsetting,keeptheGraphicsSettingat0andconnect
bothleftandrightwhiteinputstotheGetOnClickedEventandReturnNoderespectively.

Step#9DoexactlywhatwejustdidforboththeMedandHighbuttons,howeverremember
tosetGraphicsSettingsto1intheMidBlueprintand2intheHighBlueprint.Confused?Heres
whatyoushouldendupwith:

Step#10Threebuttonsdown,twotogo!WelldealwithApplyintwomoments,butfirstlets
takeonthatCancelbutton.CreateabindingforitandjustlikewhatwedidfromtheTitle
ScreentoOptions,createaRemoveforViewportnodefollowedbyCreateWidget
(RemembertoselectUMG_Title2inWidgetType!)followedbyAddtoViewport:
37

Step#11WevenowonlygotoneButtonlefttofillinApply!.Sowhatarewewaitingfor?
CreateabindforApplyandletsgettocoding!

Step#12RightClick(Ctrl+Click)toopentheCompactBlueprintLibraryandtypeinSwitch
onInt.

Step#13ClicktheSwitchOnItNodewhichwejustcreatedandintheDetailspanel
underneaththeVariableLibrary,setDefaultPintofalsebyuncheckingthebox.Oncedone,
withintheSwitchonIntnode,addtwomorePins.

Step#14DoesntthatlightgreenbuttonnexttoSelectionseemfamiliar?Youveguessedit!
GrabyourGraphicsSettingsfromtheVariableLibrary,dragitintotheBlueprintandselect
Getwhenasked.HookitintoSelectionandconnecttheleftinputpinoftheSwitchonIntinto
theGetOnClickedEvent

38

NoticethatwevecreatedthreeSwitchOnIntoutputs:0,1and2.Justlikewedidwith
GraphicsSettingsInteger.Socanyouguesswhatthismeans?Yougotit!0Standsforour
Lowoption,MedforourMediumandHighforourHighoption.Buthowdowechangethe
graphicsquality?Simple!

Step#15RightClick(Ctrl+Click)toopenuptheCompactBlueprintLibraryandtypein
ExecuteConsoleandselectExecuteConsoleCommand.Dothisthreetimes.

39

Step#16HookeachoneofthesenodesintotheoutputsofSwitchonInt,likeso:

NowweneedtofigureoutwhatCommandtouseAquickcheckoftheEngineScalabilitypage
ontheUnrealEnginesitegivesusanumberofoptionstoplaywith.Forthistutorialssake,well
justbeusingsg.PostProcessQuality.

Forlow,wellusesg.PostProcessQuality0,Mediumwelluse:sg.PostProcessQuality1and
forHigh:sg.PostProcessQuality3.

Step#17SointheCommandareaofourExecuteConsoleCommand,intheonethat
stemsfromSwitchonInt0putsg.PostProcessQuality0.Intheonestemmingfrom1,put
sg.PostProcessQuality1andsg.PostProcessQuality3respectively.

Sowhatnow?Ibetyourethinkingwevegottodosomesupercomplicatedstuff?Nope!Simply
dowhatwevedoneafewtimesnowCreateaRemoveforViewportnodefollowedbyCreate
Widget(RemembertoselectUMG_Title2inWidgetType!)followedbyAddtoViewport.

40

ConnectallthreeConsoleCommandoutputstotheinputofRemovefromViewportand
connecttheoutputofAddtoViewporttothemainoutputofourBlueprintlikesoandwere
done!

Nowitsfinished!WecantapourselvesontheshouldernowWevecreatedaworkingmenu
system!ButwaitWhatgoodisthismenusystemifitdoesntsaveourpreferences?

Ohhohoho,Itseemsimpossiblebutitsfarmoresimplerthenyouthink.Butwellsavethatfor
thenextMiniMission!Sowhatareyouwaitingfor?!Youmadeanawesomemenu,nowlets
makeit110%moreawesome!

41

Mission#2Saving&Loading
AutoSaving&LoadingourSettings!

Template:
ThirdPersonBlueprint

WhatYoullLearn:
Saving&Loading

WhatYoullNeed:
TheOptionsMenuYouCreatedInTheLastChapterorUseTheArtOfBP_Mini#1
Projectavailableathttp://content.kitatusstudios.co.uk

42

HenshinAGoGoBaby!

Letsnotdillydally,letsgetrightbackintothings!

Step#1Ifyourenottherealready,openuptheMenuprojectwecreatedinthelastchapterOr
ifyoudonthavethattohand,downloadandopentheArtOfBP_Mini1projectfilesavailableat:
http://content.kitatusstudios.co.uk

WeneedtocreateaSaveGameblueprinttostoreourSettingsinwhichwevecreated,sohead
intotheUMGfolderwithintheContentBrowserandgotoNew>Blueprint.

WhenitaskswhattypeofBlueprintyoudliketocreate,clicktheCustomClassesbuttonnear
thebottomoftheWindowandinthesearchfield,typeSaveandselectSaveGame:

Step#2ClickSelectandnamethisBlueprint:Save_SaveGraphics.Oncecreated,double
clickthenewlycreatedBlueprinttoopenitup.Theresnotaterribleamountwehavetodoin
hereButitscrucialyoudontgetitwrongornoneoftheawesomewereabouttoachievewill
actuallywork!

43

Step#3OnceyourBlueprinthasloadedup,headovertotheVariableLibrary(IntheGraph
tab!)andcreateanewInt(Yourememberhowto,right?Ifnot,goandskimthelastchapter
again!)andcallitS_Graphics.

Save&CompilethisBlueprintthenyoucancloseit!

ThatsallwehavetodofortheSaveblueprint!

What?!Buthowdoesthatwork?!Ihearyourmindscreamthroughthesepages.

Well,itsalittlemorecomplicatedthenwhatyoureassuming.ThisSaveBlueprintdoesnt
actuallysaveorevenloadinformation.TheBlueprintstoresinformationthatcanbecalledat
anytime.Thinkofitasapocket.

Apocketdoesnthavehands,soitcantgiveyouthechocolatebaryouveputinthereanditcant
addmorechocolatebarstoitself(Imaginethat)butwhatitdoesisstorethatChocolateuntil
youneeditnext.

Sowhatdowehavetodonow?Weneedtocreatethosevirtualhandstofeedourpocketwith
Chocolatebars!

Beforewecontinue,Idliketomentionwhywereabouttodothingsthewaywereabouttodo
thingsIvetriedmanycombinationsofcastingsandwhatnotbutalotofthecastingcasesdont
seemtoworkwiththecurrentUnrealMotionGraphicsversioninthecurrentUnrealEngine4
build.Thewaywereabouttofollowseemstoworkatthemomenthowever!

InthemainviewofyourUnrealEnginewindow(TheonewiththeGameView!),Theresa
ribbonatthetop,justabovetheingameview(WecoveredthisinBook#1!).Youhaveanumber
ofoptionsinthetopribbon,suchasQuickSettings,WorldSettings,Blueprints,Matinee.etc)
44

Step#4ClickWorldSettings,whichwilloptionadetailspanelintheright(WhereDetails
usuallyare).

Step#5ScrolldowntoGameModeintheWorldSettingswindow,andpresstheNew
button.NamethisGameModeBlueprintMainMenuGameMode.

IfyoucantseetheSelectedGameModeoptions,clicktheGreyrightarrownexttoSelected
GameModetoexpandthewindow.

WeneedtocreateaPlayerController,whichwillactastheconduitbetweenourUMGand
SaveBlueprint.

HeadbacktoourUMGfolderandcreateanewBlueprint.WhenthePickParentClass
windowopensup,selectPlayerController.

45

NamethisBlueprintPC_MainMenu.NowheadbacktotheWorldSettingsGameModearea
andsetthePlayerControllertoPC_MainMenu.

Nowthatitsbeenset,weneedtoconfiguretheBlueprintitself.DoubleClickthePC_MainMenu
blueprintintheContentBrowsertoopenitup!

PlayerController=Conduit!

Step#1WithinthePC_MainMenuBlueprintCreateanewVariable(Intagain!)andcallit
PC_Graphics.

46

Step#2IntheMainBlueprintview,RightClick(Ctrl+Click)andcreateanEventBeginPlay
node.

Note:Fromnowon,Ibelieveyoushouldknowhowtocreatenodes(RightClick[Ctrl+
Click])tobringuptheCBLandsearchforthenodeyouneed.SoIwillnolongerbe
tellingyouhowtocreatenodes!

Step#3CreateaDoesSaveGameExist?node.Thisnodedoesexactlywhatitsaysonthe
tin!

IntheSlotNameinput,typeinSettings.

WhatisSlotName?WhenweeventuallycreateaSaveGame,thiswilltelltheBlueprintwhere
tolookintheSaveGamefile!WhenwecreatetheSaveGame,welltellittosavethe
informationintotheSettingsslot.

Asthisnodeposesthequestion:DoesSaveGameExist?,Wehavetogivethenodetheability
toanswerthequestion.

Step#4CreateaBranchnode(WhichisessentiallyaTrueorFalsenode)andhookitinto
theoutputpinofDoesSaveGameExistandtheConditionpinintotheReturnValuepinof
DoesSaveGameExist.

47

WerenowgoingtosetwhathappensifaSaveGamedoesntexist.Everythingwecreatein
thenextfewstepswillstemfromtheFalseoutputofourBranch.

SaveGame=False!

IfaSaveGamedoesntexist,weregoingtohavetocreateit!

Step#1FromtheFalseoutputofourBranch,createandconnectaCreateSaveGame
Objectnode.

Step#2WithintheCreateSaveGameObjectnode,settheSaveGameClassunder
SelectClasstoSave_SaveGraphics.

NowweneedtotelltheBlueprintthatSaveGraphicsisathingandgiveitpermissiontomess
aroundwithitsvariables.

Step#3GrabthebluepinReturnValueanddragtotheright.TypePromoteandselect
PromotetoVariable.

IntheVariableWindow,NamethisnewlycreatedVariabletoSaveGame.

48

Tomakesureeverythingworksalright,GetSaveGamefromtheVariableLibrary,putitintothe
Blueprintanddragfromtheoutput,typinginCast(Select:CasttoSave_SaveGraphics)and
connectthisaftertheSetSaveGame.

WevenowcreatedtheSaveGameObject,itstimetogobacktotheBranchandbranchoffto
iftheSaveGameistrue!

SaveGame=True!

InsteadofCreatingaSaveGame(AsiftheBranchistrue,italreadyexists),wenowhaveto
LoadtheSaveGame.

Step#1CreateaLoadGameFromSlotnodeandconnectittothetruefromourBranch.

Step#2Justlikewedidbefore,SettheSlotNametoSettingsandthistimedragthe
SaveGamevariablefromVariableLibraryandSetit.HooktheinputsofSetSettingstothe
rightoutputofLoadGameFromSlotandhooktheReturnValueintoSetSettings.

ThereasonwevedonethisisbecauseiftheBranchwasfalse,weweresettingthe
SaveGamevariable.However,iftheBranchistrue,thenobviouslytheBlueprintwontexecute
anyoftheFalsecode.
49

Step#3JustlikewhatwedidintheFalsesetofevents,GetSaveGameanduseittoCast
toSave_SaveSettings.

Step#4FromtheAsSaveSaveGraphicsC,clickthepinanddragtotherightandtypein
GetGraphicsandselectit.

Step#5IntheVariableLibrary,draginPC_GraphicsandselectSet.Connectthisto
TargetS_GraphicsandthetoprightpinoftheCasttoSave_SaveGraphicsnode.

50

Whatdidwejustdo?WeretellingtheBlueprintthatwhatevertheSave_SaveGraphics
settingisforS_Graphics,thatiswhatiswhatwewantPC_MainMenusPC_Graphicstobe
too!

Itmaybeatadconfusingatthemoment,butdontworryPrettysooneverythingwillmake
sense!

WhatIwantyoutodonowthough,istocreatetheSwitchOnIntandExecuteConsole
CommandsexactlyastheywerebackintheUMGsApplybutton.FortheInputthough,use
thePC_Graphics.

Youshouldendupwithsomethinglikethis:

51


AndthisisthewholeBlueprintforPC_MainMenusofar:

WhatweneedtodonowissetitsothatwhenwepresstheApplybuttonintheUMG,itwill
savethechanges.Hereshowweregoingtodothat.

OnButtonPress,SaveOurSettings!

Step#1WhilestillinourPC_MainMenu,createanewevent(EventTick).Thismeansthis
codewillfireeverysingleframe!

Step#2IntheVariableLibrary,createanewVariable.SetittoaBoolandcallitApply!

Step#3CreateaBranch,andconnectittotheTickandbringintheApplyboolandattachit
totheBranch.

IfApplyhasbeenpressed,thenweneedtoaltertheSaveGamefiletostorethenew
information.
52


Step#4GrabtheSaveGamevariablefromtheVariableLibraryanduseitonceagainto
casttoSave_SaveGraphicsandconnectthistotheTrueoftheBranch.

Step#5FromtheAsSaveSaveGraphicsC,clickthepinanddragtotherightandtypein
SetSGraphics(NotGet!)andselectit.

Step#6BringPC_GraphicsintotheBlueprintviatheVariableLibraryonceagainandhook
thisintotheSetSGraphicsnode.

Step#7FromtherighthandsideoutputofSetSGraphics,createaSaveGameToSlot
nodeandconnectthemtogether.

Step#8GrabtheSaveGamevariablefromtheVariableLibrary,dragitintotheBlueprintand
connectittotheSaveGameObjectandSettheSlotNametoSettings.

Step#9AfterSaveGameToSlot,grabApplyfromtheVariableLibrary(Setitwhen
asked!)andsetittofalse(Byleavingthecheckboxunchecked)!

AndweredonewiththisBlueprint!TheresonlyacouplemorethingslefttodoSowhatarewe
waitingfor?Save&CompiletheBlueprintthenyourefreetocloseit!

ThefinalfewstepswillneedanadventurebackintoourMainMenuOptionsUMGBlueprint!

53

TheFinalShowdown!

OnceyourebackinyourMainMenuOptions,gointoyourGraphview.OpentheEventGraph
whichshouldbeinatababovetheBlueprintview.Incaseitsnot,youcanfinditnearthetopof
theVariableLibrary.

Step#1WhenintheEventGraph,weneedanEventBeginPlaybuttheydontworkinUMGs.
WecanhoweverusetheUMGequivalentConstruct.SodojustthatCreateanEvent
Constructnode.

Step#2OpentheCompactBlueprintLibraryandtypeinGetPlayerController.

Step#3FromtheReturnValuepinofGetPlayerController,ClickandDragtotheright.
WhentheCBLopensup,typeinCasttoPC_MainMenuandconnectittotheEvent
Constructnode.

Step#4FromAsPCMainMenuC,grabthepinanddragtotheright.TypeinGetPC
Graphicsandselectit.

Step#5GointoyourVariableLibraryandgrabGraphicsSettingsanddragitintothe
Blueprintandwhenasked,selectSet.

54

Step#6ConnecttheSetGraphicsSettingstothetopemptyoutputpinoftheCastand
connecttheGetPCGraphicsoutputintotheSetGraphicsSettingsnode.

WerenowsoclosetothefinishlineIcanalmosttasteit!Save&CompilethisBlueprint,thengo
intoyourDesignerview.

ClicktheApplybuttonandwherewecreatedBindsbefore,theresalittlemagnifyingglassnext
tothenameofourBindwecreatedforitbefore.Clickthemagnifyingglasstoopenits
Blueprint.

Step#1Alt+clickthelefthandsideinputofSwitchOnInttobreaktheconnectiontothestart
oftheBlueprintasweneedtoaddafewmorenodeshere.

Step#2JustlikebeforecreatetheGetPlayerControllernodeanduseittoCastto
PC_MainMenu.

55

Step#3FromAsPCMainMenuC,clickanddragtotheright.WhentheCBLopensup,
typeinSetPCGraphics.Oncethenodehasbeencreated,clickthepinnexttoAsPCMain
MenuConceagainandthistimetypeinSetApply.

Step#4IntheSetApplynode,ticktheboxinsideittosetApplytotrueandconnectthis
nodeintotheoutputofSetPCGraphics.

Step#5HeadintotheVariableLibraryanddragGraphicsSettingsintotheBlueprint.When
asked,selectGetandhookthisintotheSetPCGraphicsnode.

NowsimplyconnecttheoutputontherightoftheSetApplynodeandhookitintotheSwitchon
IntnodethatwecreatedinthisBlueprintearlier.

56

EndOfTheBook!
IsthistheendofthebookorthestartofBook#3?Whoknows!

Inallseriousness,thishasbeenanabsoluteblast!IvelovedwritingthesebooksandIwill
continuetodosotohelpeachandeveryoneofyou!

Asalways,ifyouvegotanyquestionsorifyoudliketoshowmewhatyouvecreatedwiththis
book,[email protected]

IhopeyouveenjoyedreadingandIllseeyounexttime!

Peaceout!
RyanS,ProjectLead@KitatusStudios.

57

You might also like