Recreating Half Life ALYX VR mechanics inside of Unreal Engine 4 ð€ Quick Selecttion Part2
Summary
TLDRãã®ãããªã§ã¯ãHalf-Life Alyxããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãã¯ã€ãã¯ã»ã¬ã¯ã·ã§ã³ã¡ãã¥ãŒã®å®æãç®æããŸããæåã«ãããŒãšãã§ã¯ããæ¹åãããããªã¢ã«å±æ§ãå€æŽããŠèŒããšäžéæ床ãå¢ãããŸãã次ã«ããã³ããŒãªã³ã°ã®ãšãã§ã¯ãã確èªããVRãããã»ãããè£ çããã«ãšãã£ã¿ã§ç¢ºèªããŸãããããŠãæãšéã®ã¡ãã·ã¥ã調æŽããã¢ãã¡ãŒã·ã§ã³ãå®çŸ©ããŸããããã«ãã¢ãŒã·ã§ã³ã³ã³ãããŒã©ãŒãšã®éãªããæ€åºããŠãå³æã®ã¿ã«åå¿ããããã«èšå®ããŸããã¢ãã¡ãŒã·ã§ã³ãã«ãŒããªã³ããæŽçãããšãã§ã¯ãããã¹ãããŸããæåŸã«ãã¯ã€ãã¯ã¡ãã¥ãŒã®è¡šç€ºãšæ¶å»ã®ã¢ãã¡ãŒã·ã§ã³ãå®è£ ããéã®ããžãã¯ãè¿œå ããŠãããªã¬ãŒãæŒããšçºå°ãããããã«ããŸãã
Takeaways
- ð ïž ã¹ã¯ãªããã¯ãHalf-Life Alyxã®ã¯ã€ãã¯éžæã¡ãã¥ãŒãå®æãããããã»ã¹ã説æããŠããŸãã
- ðš æåã®ãã¥ãŒããªã¢ã«ã§ã¯ãã¹ã±ãŒã«ãäžåºŠã ãå€æŽããŠãããŒãšãã§ã¯ããäœããŸããããä»åã¯ãããªã¢ã«å±æ§ããããŒãšãã§ã¯ãã«åæ ãããŸãã
- ð© ãããŒãªã³ã°ã®ãšãã§ã¯ãããšãã£ã¿ã§ç¢ºèªããããã«ãããã§ã¯æ¥ç¶ãè¡ããŸãã
- ð€² ãã³ããšã¬ã³ã®ã¡ãã·ã¥ãã€ã³ããŒããã調æŽããŠã¬ã³ã«åãããŠãã£ãããããŠããŸãã
- ð ã¢ãŒã·ã§ã³ã³ã³ãããŒã©ãŒãšã®éãªãã確èªããå³æã®ã¿ã§ããªã¬ãŒããããã«ã¹ã€ãããèšå®ããŸãã
- ðïž ã¬ã³ããŒãºãåæåã«è¿œå ããã¢ãã¡ãŒã·ã§ã³ã®ãã¬ã³ããå®è£ ããŸãã
- ð® ã¢ãã¡ãŒã·ã§ã³ãã«ãŒããªã³ããæŽçããäžèŠã®å€æ°ãåé€ããŠã¯ãªãŒã³ãªã¢ãããŒãã§äœãçŽããŸãã
- ð¡ ã¢ãŒã·ã§ã³ã³ã³ãããŒã©ãŒããäžèŠãªæ©èœãåé€ããæ°ããã«ã¹ã¿ã ã€ãã³ããäœæããŠããã©ãŒãã³ã¹ãåäžãããŸãã
- ð§ ã¯ã€ãã¯ã¡ãã¥ãŒã®è¡šç€º/é衚瀺ã管çããããã®ã«ã¹ã¿ã ã€ãã³ããäœæããã¢ãã¡ãŒã·ã§ã³ãéåçããŠã¡ãã¥ãŒãæ¶å»ããŸãã
- ð« ã¬ã³ã®ããžãã¯ãå®è£ ããããªã¬ãŒãæŒããšããºããºãããšè¡šç€ºãããããã«ããŸãã
- ð¯ ã¯ã€ãã¯éžæã¡ãã¥ãŒã®åãã¿ã³ãé åã«åéããã¡ãã¥ãŒã®éããæã«ã³ãªãžã§ã³ãç¡å¹ã«ããŸãã
Q & A
ãããªã§ã¯äœãå¶äœããŠããŸããïŒ
-ãããªã§ã¯ãHalf-Life Alyxã®ã¯ã€ãã¯ã»ã¬ã¯ã·ã§ã³ã¡ãã¥ãŒãå®æãããããã»ã¹ã玹ä»ããŠããŸãã
ãããŒãšãã§ã¯ããæ¹åããããã«äœãå€æŽããŸãããïŒ
-ãããŒãšãã§ã¯ããæ¹åããããã«ã以åäœæãããããªã¢ã«å±æ§ãå€æŽããŠãããå€ãã®ã°ããŒãšéæ床ãè¿œå ããŸããã
VRãããã»ããã䜿ããã«ãšãã£ã¿ã§å¹æã確èªããæ¹æ³ã¯äœã§ããïŒ
-ãããŒãšãã§ã¯ãã確èªããããã«ããšãã£ã¿ã§ãã³ããŒãªã³ã°ã«æ¥ç¶ããŠå¹æã確èªããæ¹æ³ã䜿çšããŸããã
éã®ã¡ãã·ã¥ã調æŽãããããã©ã®ããã«ãšã¯ã¹ããŒãããŸãããïŒ
-éã®ã¡ãã·ã¥ã調æŽãããããã¹ã±ã«ã¿ã«ã¡ãã·ã¥ãšããŠãšã¯ã¹ããŒãããŸããã
Motion Controllerãšã®éãªããæ€åºããããã«äœãããŸãããïŒ
-Motion Controllerãšã®éãªããæ€åºããããã«ãããªã¬ãŒã«ãããŒããŠãããšãã«ã¢ãŒã·ã§ã³ã³ã³ãããŒã©ãŒã«å¯ŸããŠãã£ã¹ããè¡ããŸããã
ã¢ãã¡ãŒã·ã§ã³ãã«ãŒããªã³ãã§äœãåé€ããŸãããïŒ
-ã¢ãã¡ãŒã·ã§ã³ãã«ãŒããªã³ãã§ã以åã®ãã¹ãŠã®ã¢ãã¡ãŒã·ã§ã³ãšå€æ°ãåé€ããããã¯ãªãŒã³ãªã¢ãããŒãã§äœãçŽããŸããã
ã¯ã€ãã¯ã»ã¬ã¯ã·ã§ã³ã¡ãã¥ãŒã®è¡šç€ºãšé衚瀺ãåãæ¿ããããã«ã©ã®ãããªã¢ãããŒãã䜿çšããŸãããïŒ
-ã¯ã€ãã¯ã»ã¬ã¯ã·ã§ã³ã¡ãã¥ãŒã®è¡šç€ºãšé衚瀺ãåãæ¿ããããã«ãã¢ãã¡ãŒã·ã§ã³ã®åçãšéåçã䜿çšããŸããã
å ¥åèšå®ã§æ°ããã«ã¹ã¿ã ã€ãã³ããäœæããçç±ã¯äœã§ããïŒ
-æ°ããã«ã¹ã¿ã ã€ãã³ããäœæããããšã§ããã£ãã¯é¢æ°ã§ã®ãã£ã¹ããé¿ããããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸããã
ã¢ã¯ãã£ããªããŒã«ãåãæ¿ããããžãã¯ã¯ã©ã®ããã«å®è£ ãããŠããŸããïŒ
-ã¢ã¯ãã£ããªããŒã«ãåãæ¿ããããžãã¯ã¯ãEnumã䜿çšããŠç¶æ ã管çããç¶æ ã«å¿ããŠç°ãªãã€ãã³ããåŒã³åºãããšã§å®è£ ãããŠããŸãã
éã®ããžãã¯ããã¹ãããããã«è¡ã£ãããšã¯äœã§ããïŒ
-éã®ããžãã¯ããã¹ãããããã«ãããªã¬ãŒãæŒããããšãã«'pew pew'ãšããæååãããªã³ãããæ©èœãè¿œå ããŸããã
ã¯ã€ãã¯ã»ã¬ã¯ã·ã§ã³ã¡ãã¥ãŒã®ãã¿ã³ãåç §ããããã«ã©ã®ãããªæ¹æ³ã䜿çšããŸãããïŒ
-ã¯ã€ãã¯ã»ã¬ã¯ã·ã§ã³ã¡ãã¥ãŒã®ãã¿ã³ãåç §ããããã«ãåã¢ã¯ã¿ãŒãšããŠãã£ã¹ãããå®éã®ãã¿ã³ãéããŠåç §ããã¡ãœããã䜿çšããŸããã
ãããžã§ã¯ãã®ãµããŒããæ±ããæ¹æ³ã¯ãããŸããïŒ
-ãããžã§ã¯ãããµããŒãããããã«ãPatreonããã§ãã¯ããŠãµããŒããæäŸããããåŒã³ãããŠããŸãã
Outlines
ð ïž ããŒãã©ã€ãã¢ã¬ãã¯ã¹ã®ã¯ã€ãã¯éžæã¡ãã¥ãŒã®æ¹è¯
ãã®æ®µèœã§ã¯ãããŒãã©ã€ãã¢ã¬ãã¯ã¹ã®ã¯ã€ãã¯éžæã¡ãã¥ãŒãæ¹åããããã»ã¹ã説æãããŠããŸãããããŒãšãã§ã¯ãã®åŒ·åããããªã¢ã«å±æ§ã®å€æŽãVRãããã»ããã䜿çšããã«ãšãã£ã¿ã§ã®ãã¹ãããããŠã¢ãã¡ãŒã·ã§ã³ãšã¡ãã·ã¥ã®èª¿æŽãè¡ãããŠããŸããããã«ãã¢ãŒã·ã§ã³ã³ã³ãããŒã©ãŒãšã®éãªããæ€åºããŠãå³ã®æã®ã¿ãããªã¬ãŒã§ããããã«ã¹ã€ãããèšå®ããã¢ãã¡ãŒã·ã§ã³ã®é·ç§»ã管çããããã®å€æ°ãäœæããŠããŸãã
ðš ã¢ãã¡ãŒã·ã§ã³ãã«ãŒããªã³ãã®æŽçãšæé©å
第2段èœã§ã¯ãã¢ãã¡ãŒã·ã§ã³ãã«ãŒããªã³ããæŽçããããã¯ãªãŒã³ãªã¢ãããŒãã§äœãçŽãæ¹æ³ã玹ä»ãããŠããŸããã¢ãã¡ãŒã·ã§ã³ã°ã©ããåé€ããEnumã䜿çšããŠã¢ãã¡ãŒã·ã§ã³ã¹ããŒããå®çŸ©ããæ§ã ãªããŒãºããã¬ã³ãããæ¹æ³ã説æãããŠããŸãããŸããã¢ãã¡ãŒã·ã§ã³ãã¬ãã¥ãŒãšãã£ã¿ã䜿çšããŠåäœã確èªããã¢ãŒã·ã§ã³ã³ã³ãããŒã©ãŒã®èšå®ãå€æŽããŠããã©ãŒãã³ã¹ãåäžãããæ¹æ³ãææ¡ãããŠããŸãã
ð§ ã¯ã€ãã¯ã»ã¬ã¯ãã¡ãã¥ãŒã®æ©èœå®è£
ãã®æ®µèœã§ã¯ãã¯ã€ãã¯ã»ã¬ã¯ãã¡ãã¥ãŒã®æ©èœãå®è£ ããããã»ã¹ã詳述ãããŠããŸããããªã¬ãŒã®å·Šãšå³ã®å ¥åãè¿œå ããã¡ãã¥ãŒã®è¡šç€ºãšé衚瀺ãå¶åŸ¡ããã«ã¹ã¿ã ã€ãã³ããäœæããŠããŸããããã«ãã³ã³ããã¹ãã«å¿ããããªã¬ãŒãã¬ã¹ã€ãã³ããåŠçããã¢ã¯ãã£ããªããŒã«ã«å¿ããŠç°ãªãã¢ã¯ã·ã§ã³ãå®è¡ããããã«èšå®ããŠããŸãã
ð® ã¬ã³ãšããŒã«ã®ããžãã¯ã®å®è£ ãšãã¹ã
第4段èœã§ã¯ãã²ãŒã å ã®ã¬ã³ãšããŒã«ã®ããžãã¯ã®å®è£ ãšãã¹ããè¡ãããŠããŸããã·ã³ãã«ãªã¹ã¿ãã£ãã¯ã¡ãã·ã¥ãšããŠã¬ã³ãšããŒã«ãäœæããã¢ã¯ãã£ããªããŒã«ã®ç®¡çæ¹æ³ã説æããŠããŸããããã«ãã¬ã³ã«ã·ã§ããæ©èœãè¿œå ããããªã¬ãŒãã¬ã¹ã€ãã³ããæ€åºããŠçºç ²ããããžãã¯ãå®è£ ããŠããŸãã
ð¹ ã¬ã³ã®ããžãã¯ã®åŒ·åãšãããžã§ã¯ãã«ã®è¿œå
æåŸã®æ®µèœã§ã¯ãã¬ã³ã®ããžãã¯ã匷åãããããžã§ã¯ãã«ãè¿œå ããããã»ã¹ã玹ä»ãããŠããŸãããããªã¢ã«ã®èšå®ãç¢å°ã䜿çšããçºå°äœçœ®ã®ååŸãã·ã³ãã«ãªãããžã§ã¯ãã«ã®äœæãšçºå°ããžãã¯ã®å®è£ ãè¡ãããŠããŸãããŸããã¢ãŒã·ã§ã³ã³ã³ãããŒã©ãŒã®èšå®ãå€æŽããŠãã¢ã¯ãã£ããªããŒã«ãé©åã«ç®¡çããæ¹æ³ã説æãããŠããŸãã
Mindmap
Keywords
ð¡ã¯ã€ãã¯ã»ã¬ã¯ã·ã§ã³ã¡ãã¥ãŒ
ð¡ãããªã¢ã«å±æ§
ð¡ã¢ãã¡ãŒã·ã§ã³
ð¡ã¹ã±ã«ã¿ã«ã¡ãã·ã¥
ð¡ãšãã
ð¡ã«ã¹ã¿ã ã€ãã³ã
ð¡ã¢ãŒã·ã§ã³ã³ã³ãããŒã©ãŒ
ð¡ã¢ãã¡ãŒã·ã§ã³ãã«ãŒããªã³ã
ð¡ã¹í°ã¢ã¯ã¿ãŒ
ð¡ãããžã§ã¯ãã«
Highlights
Improving the hover effect in the quick selection menu from Half-Life Alyx tutorial by changing material attributes for a glowing and opacity effect.
Integrating functionalities into the quick selection menu which currently has no active features.
Testing the hammer ring effect in the editor without using a VR headset.
Exporting and importing gun mesh and adjusting it to fit for skeletal mesh import.
Creating a new socket for the gun and defining a specific animation for the hand.
Casting to the motion controller to check for overlaps and setting up hand switches for right-hand triggers.
Using an enum to add gun pose and change animation states for testing purposes.
Creating an 'active state' variable to manage different states in the selection button.
Adjusting animations for different tools and hands using child print buttons and enum list.
Importing and positioning tool meshes, creating sockets, and assigning them to the enum list.
Deleting and reworking the animation blueprint for a cleaner approach.
Using state-dependent blending of poses in the animation graph for skeletal mesh.
Testing animation states in the animation preview editor.
Modifying the motion controller blueprint for better performance and custom event creation.
Setting up input actions for quick menu access and trigger inputs.
Creating custom events for quick selection menu appearance and disappearance.
Handling trigger pressed events context-sensitively based on the current state.
Forwarding inputs to the active tool from the motion controller.
Adding logic to the gun for shooting and testing the functionality.
Getting references to all buttons in the quick selection menu for animation control.
Disabling collision for the trigger when closing the quick selection menu.
Creating a simple projectile blueprint for the gun's shooting mechanism.
Spawning and managing the active tool or gun based on the current state.
Finalizing the quick selection menu setup and considering further polishing.
Transcripts
hey guys
and e42 here and today we are going to
finish the quick selection menu from
half-life Alex so the first thing I want
to do today is to improve the holla
effect a little bit in the first
tutorial we only changed the scale once
we hover over it right now I want to
change the material attributes we
created earlier to also represent a
hovering effect so I want to have a
little bit more glow and also increase
the opacity a little bit and once we are
finished here we really start with all
the functionalities because right now
nothing is really happening so let's do
this today for a quick test I'm going to
connect this here so I can see the
effect of the hammer ring in the editor
because I don't wanna put on my VR
headset right now and the next thing
would be it to really do the pauses for
our grabbing so I just exported the hand
and imported my gun mesh and I'm
adjusting the mesh to really fit the gun
and export it as a skeletal mesh import
it into you Andrea I'm going to create a
new socket for the gun and here I can
define a specific animation so in this
case here's the hand animation I am
going to add the gun mesh and now I can
position the socket that the hand really
fits the gun so in the selection button
itself
once I hover over my trigger
I want to cast to the motion controller
to see if it's really the motion
controller overlapping I want to make a
switch on the hand the reason for this
is I only want the right hand to trigger
this overlap so this way the left hand
will be completely ignored by this I'm
also going to make a variable out of it
because later if we end the hovering I
want to check if it's the the actual
right hand that is leaving and only if
it is the right hand I want to reverse
the animation you could have caused also
do the casting again but it's a little
bit cleaner and also more back safe to
do it this way so let's go into the enum
itself and actually add our gun pose in
here so now I can choose it from the
enum and I can really change things I'm
going to do a little different approach
later on but right now just for testing
purposes let's do it this way I created
a new variable called active state
and this is the one I'm going to use
later on to really change between the
different states
I'm going to open on my child who print
buttons I created earlier and now I can
change the activated state for each
so for the gun I can say use the gun
animation for the to later on I can say
use the tool animation and for the hand
I want just the open animation so let's
quickly do the same for the tool I
imported the mesh here and I'm doing my
crap house once I finished I'm also
going to import it again make sure to
select the same skeleton and then I'm
creating a new socket again at my
preview mesh of the tool and position
the socket the right way
so this will be the position the two
later on will be spawned so I'm also
adding this tool here to my enum list
and assign it to the child crew print
button so here comes a fun part let's
open up the skeletal mesh and go into
the animation blueprint and what is in
here is really not a good example of how
to do this at all so we're going to
delete everything in here and make it
with a much cleaner approach so we open
up the animation graph also we delete
everything that is in here so it kind of
works for this demonstration but it's
really not good for production so we
also get rid of the variables we don't
need here we're just working with the
State so depending on the
state we have selected we want to blend
the poses so we have the possibility
with right-click to add all the policies
from our innum list in here so we are
going to add all of them and for every
enum entry we can define an animation
state so it really blends into this pose
here and you can switch between the
different poses the cool thing is this
is for the skeletal mesh and it's really
blending so it's not just setting this
animation is really blending between all
of them and you can use it with a
different hand also if it's using the
same skeleton you can use every hand you
want for example we have three different
hand meshes with the same skeleton in
our as a pack and you can switch between
all three of them and all this logic
will work seamlessly
this is a really nice approach and it's
very clean because we really use the
curb states from the enum here and you
can also test to see if everything is
working if you go to the animation
preview editor on the right side and
here you can switch between the crap
States and you can see that the hand is
slapping into the positions and you can
play around with the splint I'm here if
you want to have as a fast or slower
blend but let's keep it for now and now
I'm going into the motion controller and
there's a lot of stuff in there that is
really not not that great for the
purpose we are using here so I'm just
going to modify and delete quite a lot
of stuff in here
I'm also making a new custom event for
this because you really don't want to
have this in the tick it's really not
performant and there's better ways of
integrating this kind of functionality
so I'm creating a custom event call it
on State changed and this is the
one I'm going to correlate home also I
really don't want to cast in the tick
every time so it's enough if I cast at
the beginning once and create a variable
out of this so I'm doing this same thing
he's done in the tick but I'm doing it
at the begin play once and I'm going to
save this variable and this way I just
can refer to a variable later on
and it's much better performance wise to
do it this way basically you should
really try to keep your tick clean and
especially don't do any for loops or a
lot of casting in there so for now I'm
just doing the set state this is
basically just for the animation
blueprint and we are going to modify
this later on also going to delete this
here and clean this up even more for now
now I don't want to handle the
teleportation stuff so I'm just leaving
it the way it is we may need to
integrate this later on so the next
thing would be to open up our input
settings and at our functionalities so I
want one for the quick menu and I'm
using the thumbstick pressed of course
you can use your own ones but make sure
to remove it from the teleportation
because they also use the thumbstick
pressed so I removed it here and I also
added inputs for my trigger left and
trigger right
so let's open up our motion controller
create a new custom event called import
quick select let's create a new boolean
called set and depending on if it is
pressed or not the set is true or false
so if it's true I want to spawn my menu
actually so let's select the class in
there we get the word transform from the
hand mesh right now and also save the
menu as a variable so this way I can
later on call my events on this so let's
do a quick check if the variable is
still valid if I let go of the button
and also create a new event in our quick
selection menu for the disappearing it's
just basically the reverse from the
appear animation right now and I want to
make sure if it's backwards in the end I
want to destroy my actor so back in the
pawn I can now call my input quick
select if pressed it is set to true and
if released it a set of false this way I
can call the two different events
depending on the pressed state of the
button and if it's set to false and a
quick selection menu is still valid I
want to play the disappear disappear
animation
and now let's handle the actual trigger
pressed event this I want to be context
sensitive depending on the crib state
I'm currently in so I want to make
different things father if the crib
status gun for example I want to shoot
if it's on the tool I want to do
something with the tool and now if I set
it up this way I can really forward the
inputs to the actual tool that is active
right now for a quick test
I'm just doing a print string with pew
pew and to time let's go into our motion
controller pan and set this up so for
the left controller I want to call the
function trigger pressed and I'm doing
the same for the right controller and
this way you can really forward all your
inputs into the controller itself and
there if necessary follow-up them to the
tools
so let's add the enum to the actual
event so this way I can just define the
enum I want to have into my event here
set us set the variable and also set it
in my animation blueprint I'm also going
to create a van event dispatcher I'm not
using it right now but this might be
handy handy later on so I edit it for
now so now I can remove my test here I
did earlier I'm going to keep the
activated trip State but now I want to
call the event I have just created and I
want to set my activated State in
here and connect everything up again so
now every time the State has
changed
I can call different events for example
if I switch to the gun I want to spawn
the actual gun and if I switch back to
the hand I want to destroy the tool or
the gun so let's do this right now let's
do a simple spawn actor note and also
snap it to the component and make sure
to use the right socket name in here
so for the gun it was a socket gun I'm
also going to spawn the mesh at the
exact same position of the socket so
it's already in the right place we do
the same for the tool and right now we
don't have the actors yet so there's no
gun and there is no tool so let's create
them for the beginning they are very
simple and also this is something
different
then half-life Alex because in there
they really made a fixed tool so you
cannot drop it or throw it away in our
case you would be even able to throw the
gun at your enemies if you want to but
for now it's just a simple static mesh
that has been spawned and attached so
let's select the actual blueprints we
just created one for the gun the other
further tool and we are also going to
create a variable out of it so we have a
reference to our gun and one for our
tool
so here I'm doing a quick check if the
gun is already spawned and if so I want
to delete the old one and spawn a new
one but I'm going to change this later
on to be year for the active tool
because I don't want to not only to
de-spawn a gun but every tool that is
active right now let's do the same for
the tool so let's create a new variable
called active tool and this is just an
actor reference and if the gun is being
store pawned the gun will be the active
tool if the tools being spawned the tool
will be the active tool and if I select
one of the other trap houses here for
example the open or the crab or the
king-crab I want to destroy the active
tool if it's valid so this way I am back
to the original hand pause without any
tool in there let's go to our gun and
give it some logic so for now I'm just
doing the pew pew to see if it's
forwarded correctly to the gun
so now if I hit the trigger pressed and
the state is actually gun I want to
call this shoot function from the gun
and see if it's already working so let's
do a quick test I can select the gun and
now if I press the trigger you can see
the string is firing so this is already
working fine
[Music]
the next thing I want to do is I want to
get a reference to all my buttons in my
quick selection menu so because they are
child actors I need to first cast to my
child and then cast through the actual
button and I'm going to add all of them
into an array and I'm also doing a
function out of it because I'm doing
this three times so now I have this
function called @ button to array and I
am calling this function for all my free
child actors so this way in the end all
of them will be in this array and this
seems a little bit complicated but it's
necessary for child actors so now if I
call the disappear event for each of my
buttons I will also call the
disappearing event so they scare down
and once all of the child actors are
scared down I want to reverse the
animation of my actual appear menu and
once this is finished I can destroy the
quick selection menu completely one
thing you want to add here is you want
to disable the collision for the trigger
immediately if you close it down
otherwise you may overlap one of the
buttons so now let's do a quick test if
everything is working
so the other effect is working the
states changed the way they should and
I'm also getting the right tool or the
gun here you may notice that my hand is
rotated wrongly because I did a mistake
in Maya so I fixed it
and re-imported it again make sure that
the socket is still in the right
position
so this seems right and now you can see
it's nicely blending into the different
positions here you have the effect is
working and if I let go I have the tool
in my hand okay so the next thing would
be to actually give the gun some logic
because right now it's just printing the
strings let's open it up give it the
right material because we don't want to
have the ghost material in here I am
creating an arrow this will be the
location the projectile will be spawned
so let's position it and in the event
craft I want to get this position from
the arrow and spawn my projectile at
this exact position
right now we don't have a projector so
let's create it it's also just a very
simple blueprint actor I use a sphere
for the visual representation and scale
it way down and I'm using the projectile
movement component for the actual
movement so in there I can just define
an initial speed that's the speed of the
projectile and you can also define
things like do you want to have gravity
on there so let's select projector we
just created and hit compile and
actually this is everything you need in
order for the gun to work so now I can
shoot
let's open up the motion controller
again and change the check at the
beginning if we switch the tools to
actually look for the active tool not
only the gun itself so if there is an
active tool regardless of what it is I
want to destroy it first and after that
is done I want to spawn my actual gun on
my tool so this is it I think we are
finished with the quick selection menu
so far there are some things you can go
in there and polish them up if you liked
the video so far it would be awesome if
you check out our patreon and support us
that we are able to create another
videos not only for the framework but
also for unreal in general and it would
also be very awesome if you hit the like
and subscribe for this video so that way
we know there's interest in this
half-life to Alex serious thank you so
much for watching and let me know in the
comments what you want to see next
Browse More Related Video
Apple Arrow Motion Graphics in After Effects - After Effects Tutorial
SEAMLESS ZOOM SIGN BOARD Transition like Cole Bennett (After effects)
How To Avoid Floaty Animation
How To Separate Kicks, Snares, Hats From Audio Drum Loop Quickly In Logic Pro.
Next.js 14 Tutorial - 13 - Route Groups
Unreal Engine 5 - AI Driven Cars
5.0 / 5 (0 votes)