Hello!

It looks like you're new here. If you want to get involved, click one of these buttons!

Possible methods to find and control camera in UE3 Engine games.

I've been working with Siuan to try to find camera tilt control in the Mass Effect games and thought this would be a good spot to record some of the steps we used to find those addresses. These same methods may work with other UE3 Engine games.

Find the user FOV address, find the camera address
I've noticed that the user FOV address, what you set when using the "FOV" command, is usually very close to the camera coordinate values in memory. Searching for FOV can be a little easier than searching for the correct camera addresses so this is where I started.

This requires that you are able to set the FOV with the console or via binds in the ini files. In this case I was able to do it through the console with this Mod for ME2 that, among lots of other things, enables the console.

1. Change the FOV in-game with the "FOV command to something other than default then in CE search for a Float "Exact value". In this case I started with "40".
image

2. Change the FOV to 50 and then scan for exact value = 50. In this example we are left with one address, this is dynamic and we will need to find a pointer for this or grab the address from an opcode that accesses it.
image

3. Now we want to view the memory location around this FOV address. right click the address and select "Browse this memory region". In my example it is showing values as Float which is what we cant for this portion.
image

4. Now expand the bottom pane to view as much as possible, right click in the bottom pane and select "change fade timer" and add a couple zero's to the time. This will highlight addresses that change values for a longer amount of time. Now go back into the game, which is in windowed mode so you can see CE next to it or on another monitor, and move the camera around your character. Going back to the memory viewer you should be able to see a number of addresses changing value with the camera movement.
image

5. The next step is to test the camera values to ensure they are in the same positions as many UE3 Engine games. For this you will need to pause the game, in ME2's case we can use the "Pause" command in the console to do this. If you don't have access to the pause command then most games pause when in the main menu.

Next just start modifying the values (double-click in memory viewer) to ensure they do what we want. They will start with X, Y, Z, Y Rotation, X Rotation, Tilt.

Then add the X address to the address list by right-click -> add this address. This gives us a starting point with the rest of the addresses being 4 bytes from each other

X - base
Y - base +4
Z - base +8
Yrot - base +c
Xrot - base +10
Tilt - base +14

...

In the next section we'll go over how to find a base pointer so we don't need to go through this each time. [TBD]

Comments

  • edited July 2015
    I knew it was too easy! I'm having problems trying to grab a pointer to the x-axis address by using an opcode that accesses it. I always seem to have problems with this. Is there a sure fire way to use this method to grab the pointer address? Jim's notes helped me use this with DmC but I must be doing something wrong now as either the address keeps changing when the script is enabled or it crashes the game. Script I'm using is in the below table.
    In work CE Table with pointer scan for x-axis as base address.

    I have been able to do a pointer scan for the x-axis but that leads to another question. Is there a way to define a multi-offset pointer as a variable that can be used in the address list? Similar to what is done when defining this with a script?

    Edit: Figured out I need to find the base pointer address and then use that in the table. As I was doing that I revisited grabbing the pointer address from an opcode that accesses and looks like this is now working. Above table updated. New notes to OP as I get some time.
  • Please on3rd, more like this! Those kind of insights are precious since I CE table tuto are not really self-explainatory (or I simply cannot get the big picture/method). Seeing actual steps for an actual game is really really useful, whatever the engine
  • That was the plan. I got busy right after starting this topic and haven't been back to fill in the gaps yet. I do plan to do this though and hopefully expand on it with some different methods.
  • Hi One3rd, I'm afraid I'm here to bump this and torment you a little more.
    Do your tryouts lead somewhere so far? Eager to read some more, anything really (going to get in touch with you through flickr mail).
    And this is not so much for UE3 Freecam than it is for general CE details. >>[RTFM Smithfield: http://forum.cheatengine.org/viewforum.php?f=7&sid=81c7c2e74df80e4f3e2aa0b7f4841ff1 ... I know still, here I am :) ]

    Cheers!
  • Yup, haven't gotten back to this at all...not sure when I will. If / when I look at a new game I'll try to document the steps though.

    That section on the CE forum you posted above is definitely the place to go for more in depth CE tutorials, those guys are way beyond what I'm capable of.

    Was that you I was discussing camera structures with on Flickr?
  • As posted in this topic: http://www.deadendthrills.com/forum/discussion/419/guide-batman-arkham-knight/p1 (this is unreal engine 3 related free camera/fov)

    The code jim2pointo posted worked for a game i tested out on for unreal engine 3 called saw and worked like a charm :). Im now trying to do it for Medal Of Honor 2010 but it doesnt work for some reason when you push F6-F10? How would i get this to work for Medal Of Honor 2010 which also is a unreal engine 3 game (im using it for singleplayer not mutliplayer which uses frostbite engine). Thanks guys

  • I don't have Medal of Honor installed so can't check this out easily. I assume you are trying to add keybinds to the %input%.ini file and these are not working? There may be multiple ini files, likely you'll need to add your custom keybinds to the one located at %USERPROFILE%\Documents\EA Games\Medal of Honor\Config\MOHAInput.ini.

    Maybe pastebin the file and post the link here. I can show you where I would put the binds if I were testing it out. Your success will really depend on how locked down they have made these ini files, some UE3 games don't allow any user defined keybinds at all.
Sign In or Register to comment.