No announcement yet.

Help making inventory menu.

  • Filter
  • Time
  • Show
Clear All
new posts

    Help making inventory menu.

    Hullo, everyone. This is my first post. I've a few questions but I'll start with just this one here. I can't find a good explanation of how to make an inventory menu in UDK. I've heard loads about Scaleform but that costs a lot of money. Is there somewhere I can learn to code my own one with Canvas or something? I can sort of rationalise a method using a Boolean system and rendering images using Marko Permanto's Kismet Nodes yoke, but that has to be the wrong way about it.
    Additonally, I can't seem to remove the default UDK HUD without hiding the text in Permanto's Kismet Nodes function. Any advice there would be fantastic.
    To end, please be aware I'm only doing this a week or two and have no programming experience. I mean to teach myself using the internet so if it's not too much trouble to talk to me like a baby, your help will probably go further. Any advice on how to approach learning UnrealScript would be lovely as well. Please do not simply paste UDK's official documentation on UnrealScript because that is the most daunting thing I have ever seen and every link reads like a foreign tongue to me. I need to start a bit smaller.

    P.S. Here's footage of what I've done since starting:

    I know how to make inventories in flash.

    Follow this steps please.

    1 Get flash in order, get some basic actionscript knowladge, " just 1 week training not too much "

    2 Get to open the inventory demo of the clik demonstrations

    3 Get to atleast for instance, 1 or 2 changes that work for it, instance idk display A if mouse it's over an inventory slot.

    4 Train your components creation training following this tutorial, WHY ? so you know how components are set and such, Inventory and item slot CLIK widget is a component. " im talking about flash ". nothing to see with def properties comps.

    5 Now go modify the Item or Inventory slot component class, good luck.


      I'm sorry, I'm still fairly confused. By 'Get flash in order' do you mean to start learning it? Is actionscript essentially the same? A week's training in it sounds about right for what I was hoping but I wouldn't know where to begin. Have you any advice? Thanks.


        Sorry i though that you had a better level at the engine, so you have to options 2 create UI

        -Canvas, wich renders 2d shapes into the screen, pretty much you can create anything but, get ready to work a lot if you want to go for it everything it's done in there has to be done through a function wich is DrawHud ( or something like that ) wich updates every frame.

        -Scaleform flash with whatever you would like to use there is free software to, Third party software to create HUD and UI for your game, with something called the clik components, wich are premade necessary elements for your possible HUD movies.


          Yeah, I don't think it could be said there's much of anyone my level with the engine is better than, haha.
          I definitely won't be using Scaleform, that's for sure, so Canvas it is. I just need to know how to do it. My goal is to make something like Resident Evil's inventory (the old ones, so pretty simple), I just have no idea how.

          I've found this:

          Any use? I'd imagine it is but I don't know what to do with it. I'll download it now and see what can I make of it.

          Last thing is that the forum was blocking me from posting when I made my account. It let me make a thread to-day and post replies but then I had to log in again before it would let me post replies, and it said no new threads. Now it says i can make new threads. Is this normal?


            Well, ofc it's valid, youll have to deal with 2d maths a x and y of your screen, there's a lot of things you can get from that

               * Returns true if a point is within a bounding box
               * @param		Point				Point (usually in screen space) to test
               * @param		boundingbox			Bounding box (usually in screen space) to test
               * @return							Returns true if the point is within the bounding box
              final function bool IsPointWithinBox(Vector Point, Box BoundingBox)
            	if (BoundingBox.Min.X == -1.f || BoundingBox.Min.Y == -1.f || BoundingBox.Max.X == -1.f || BoundingBox.Max.Y == -1.f)
            		return false;
            	return (Point.X >= boundingbox.Min.X && Point.X <= boundingbox.Max.X && Point.Y >= boundingbox.Min.Y && Point.Y <= boundingbox.Max.Y);

            You may find this important, finds whether something it's inside a 2d box. "pretty basic function for UDK cartesian coordinates system. Wich are the same in flash btw. ( i think ).

            I don't really know. Maybe some kinda of temporal script of the webpage xd no idea.


              How complicated is your inventory system EPD Gaffney?

              -For inventory in particular, there is very simple alternative using just basic UDK that's often overlooked. i.e. Create a hidden room in your level. As you collect items teleport the items there, or unhide identical meshes etc.

              -Then either teleport the player there and back using Set-Actor-Location, or use a SceneCapture2DActor to project a view of that room onto a popup mesh attached to the player using Kismet 'Attach-To-Actor'. There are plenty of 'Security Camera' tutorials on YouTube that show how to set-up SceneCapture2DActors.

              -Lastly create a menu control system using a particle effect beside each mesh to 'use' or 'drop' that item via the 'Arrow' & 'E' keys, or use an LOS_Trigger. The rest is just basic kismet.


                Thanks for that bit of code, Neongho. I had to go and do some things and was about to attempt to implement it. I'm not quite sure how to do that, though, but I'd love to learn. For a start, I don't even know which document would contain it or what way to introduce it. I really know almost no-thing about UnrealScript or proper programming.

                Frankit, that is an extremely interesting concept, and given that my inventory will be extremely simple, it may well work. My inventory is based on the classic Resident Evil games. If you aren't familiar with them, there's a total of six to eight slots generally (the number won't be important for me until I'm actually making a game, and this is only testing). And you get a sort of bounding box which is moveable using the D-pad. If you press the action button, a menu comes up which allows you to select Use/Equip, Examine, or Combine. For now the Use function will suffice. I'd love the others but I'll start small. Though, the more I think about it, I'd love to do things the 'right' way if I can. UnrealScript is daunting, as I've said, but I'd still love to learn it.

                Thanks again, lads.


                  Then learn it there's always a starting point.
                  The thing with code, is that it does evolution through the progress of your skill.
                  Let's say one day you program a Inventory system for your game, the first thing you code it's going to be dirty over complex, over complicated, with unnecessary lines due to the poor knowladge you have about the language.
                  But you will have something working, you wanna seek for what occupies less lines of code, and the simplier it is the better. But then you have to use complex attributes of the language. Static Arrays Enums Dynamic arrays these also attributes of the engine you are using in case of Ue3 Archetypes and of ue4 Blueprints.

                  So i would start, not by just copy pasting, also experimenting with this 5 attributes of the language and the engine, so you get something very tidious and working and just fine.

                  BTW this attributes are normally to be found in a inventory system.

                  The point is that you can get something very legit first try, and so correct seek these and you will loose /3 less time, in my case it happend to me i rewrited a lot of system from scratch again due to that it takes me less time to rewrite, than try to use that for production, or it was not working properly, and so it takes me less time to rewrite it than fixing 1 by 1 the bugs that it generates.


                    Why is Scaleform a problem though? From what I know the official position was and still is this:
                    As mentioned in the press release, the Scaleform GFx UI system will be useable by UDK developers at no additional cost. That means it is free for non-commercial use, and included in the UDK commercial license terms for commercial use. To clarify: UDK users do not pay any additional fees to use Scaleform for commercial or non-commercial projects. The Scaleform GFx license is included at ZERO cost for all UE3 and UDK based applications on all platforms supported by Epic.


                      Is that right? I'll have a look. That sounds fantastic.


                        So, been using Scaleform and Flash a couple of days now and it's going well enough. Still not sure how to make an inventory with them but I'll probably find it. Just wanted to say thanks for that information about Scaleform, ciox. There's some tutorials about (some fairly recent if you wonder) stating if you can't afford Scaleform you can use their alternative methods, which implies obviously that Scaleform is its advertised price of a couple hundred quid. So, thanks for clearing that up.


                          Originally posted by EPD Gaffney View Post
                          if you can't afford Scaleform you can use their alternative methods, which implies obviously that Scaleform is its advertised price of a couple hundred quid.

                          Puzzled, what are the 'Alternative methods'? ... Is Scaleform completely free or not?


                            I'm puzzled myself for not being able to find much on this yet, could really use some help. I don't know how to code and want to learn. There just doesn't seem to be much out there that explains things in a way that I understand. And not to sound arrogant, I'm pretty clever, so I have to assume a lot of people are in the same position.

                            I didn't buy Scaleform, it came with UDK. But I believe it's a limited-features version and the full one is what's expensive. I've found a few tutorials explaining poorly how to do it in UnrealScript (basically providing their own script and not explaining it), and a few using UIScenes I think. All the stuff I've found that wasn't useful sort of blurs together after spending most of each day googling this stuff.

                            Now, Neongho, I hate to tell you this but your suggestion is exactly what I've been doing, trial and error and Google with UnrealScript, for a bit over a week, and literally not one script has worked. They're all outdated is the conclusion I've come to, because when I copy exact codes and put them where I'm told they don't work (and yes, I'm changing out my class for their where applicable). What you're suggesting feels like handing me a document in Chinese and telling me to work it out with no dictionary, no grammar, &c. If you know Chinese, please substitute a different language and you'll understand what I mean.


                              Get the unrealscript begginners guide

                              This book teaches you a comprehensible way, how to code, from 0/10 to 9/10, everything basic to begin with Unrealscript. Netwroking and kismet included.
                              Where are you stuck at ?