Impossible Creatures

Impossible Creatures

评价数不足
Mod Menu Scene
由 Dephesmo 制作
How to create a different menu scene for your IC mod.
   
奖励
收藏
已收藏
取消收藏
0 - Intro
-Hey there, in this tutorial/guide I will attempt to demonstrate how to make a custom 3D main menu scene for your mod in Impossible Creatures (IC). And how to perform some primitive “user interface” modifications inside "GUILayout".

-I might update it from time to time if I learn any new tricks, however I am by no means an expert in 3D modeling or modding, so some things I probably do out of pure superstition rather than necessity… but hey, if it works - it works, right? Feel free to make any suggestions to my process if you have some knowledge to share.

-The idea is to make a main menu scene like this. A pokeball in sort of a Greek style room with some rotating animation added and a different entrance door animation, but still in the spirit of IC:
1 - Preparation
- If you have read my creature modding tutorial this section will have very similar information.

- Before we get started I suggest you read trough this guide, made by another user, on how to create your first mod folder and a few associated files to get it working in game, and how to extract game files from the “.sga” archive files:
https://psteamcommunity.yuanyoumao.com/sharedfiles/filedetails/?id=735413158

- Going forward I will assume that you have your prototype mod folder made, and you can navigate the extracted game files.

- A lot of information that I will present here is also available in a document included in the game files, called “IC_GUILayout_Documentation.doc”, found at installed game files:
D:\SteamLibrary\steamapps\common\Impossible Creatures\Documents

- In fact the information in the document far exceeds the scope of modifications I will employ in this guide, so if you are interested you can delve deeper into it.

- Going to rush ahead a bit and mention that we are going to do a lot of work in an old 3d modeling program called “gmax”, so before you tackle this guide, I suggest going through at least 2 of its starting tutorials once you get it installed (if you have 0 experience with 3d modeling), to understand how basic view manipulation and tools work.

- The tutorials should be found opening the gmax program itself under “Help-> Tutorials”, you can also take a look in the “User Reference” – which is a documentation on gmax and its tools:


- If you click these and nothing opens, you should have “gmax12_help.exe” and “gmax12_tutorials.exe” in your downloaded gmax files, essentially these are archive files. Copy them in your main gmax directory - for example "C:\gmax". Extract them like you would any other archive file, and new documents will appear in your "Help" folder and a new "Tutorials" folder will be made (it contains materials for tutorials):


-After extracting the archives, your "Help" folder should contain these files. Now you should be able to open them inside gmax. Alternatively you can also open them outside the program for reading:


-The tutorials I suggest are:
“Getting started”:


And “Modeling a Head”:


- Finishing these tutorials will help you feel more comfortable using the program.

- That being said, here are the programs we will be using along the way:

1. gmax – as I already mentioned a 3d modeling program, a modification of “3ds max 4” modeling program I believe. You used to be able to get it for free officially, however now it’s sadly not the case anymore. I suggest downloading it off some sort of archive/abandon ware site – I got mine off “Internet Archive”. This is the program we will use to model our scene, texture it and animate it. Also, while gmax is a somewhat cut down version of “3ds max 4” sometimes it’s tutorials can be applied to gmax as well.


3. Krita – or any other image editing program you prefer. I use it simply because its free photoshop alternative and gets the job done. We will use it to paint and edit textures for our scene:


4. Irfanview – image viewer program with limited image editing capabilities. There is actually only one task I use it for - to reduce color depth to 8BPP. This step might be accomplishable in Krita, but I find it very easy and convenient to do in Irfanview.


5. IC RDN Tools – modding tools supplied by installed IC Steam version itself, and can be found in:
”D:\SteamLibrary\steamapps\common\Impossible Creatures\RDNTools”

-For our scene creation purposes in this guide we will be using:
5.1 “GUILayout” – used to edit the layout of buttons and text of the game menus.


5.2 “ObjectEditor” – used to make a “.ebp” file of your modeled 3D scene and set up its animations so the game recognizes them.



2 - Setting up gamx
-Once you have your gmax installed you need to add some additional functionality to it through the use of “gamepacks”. If you have IC steam version installed navigate to the folder named:
“\Impossible Creatures\RDNPlugins\RDNGmax”

-And copy these 2 files called "msvcp70.dll" and "msvcr70.dll" straight into your main gmax directory:
” C:\gmax”


-Then open the folder called “gamepacks” located in the same IC folder:
“\Impossible Creatures\RDNPlugins\RDNGmax\gamepacks”:


-And copy the whole folder “Rdn” over to your gmax directory folder named “gamepacks”:
“C:\gmax\gamepacks”


-Now open the “Rdn” folder you just copied into gmax folder “gamepacks”:
“C:\gmax\gamepacks\Rdn”

-From now on you will need to launch your gmax program through this icon, to be able to use the specific tools meant for exporting models as “.ebp” scenes:


-Once launched you should briefly see this splash screen:


-On first start up you might be greeted with this window, that offers you to choose “gmax Driver Setup”, now since I have no idea what this does, I just picked the first option and clicked “OK” (I guess this determines how your computer renders the 3D model real time in your viewports):


-you can change this anytime you want by navigating: “Customize-> Preferences -> Viewports” and there will be section called “Display Drivers”:


-This should be the programs title, once open, that means you have the correct version open:


-Now 2 other things I do once a fresh copy of gmax is installed, first I switch my units to meters (sorry my American friends). Under “Customize -> Units Setup”:


-Then I simply tick in “Meters” and click “OK” to close it:


-Then I also open "Customize -> Preferences...", and in "General" tab change the field under "System Unit Scale" section to "Meters" and click "OK" to close it. Not sure if this affects that much, but just so you know where my “m” letters come from when I am dealing with numbers:


-The other thing I do is I add an extra toolbar on top as well, under “Customize -> Show UI -> Show Tab Panel”:


-A new toolbar should appear on top:


-Most of these tools should be available in the “Create panel” and “Modify panel”, I just sometimes find it handy to have them on top:


-From here on out I will generally refer to the right side panel and all its tools as “Command panel”:


-Now while I do encourage you to try out the tutorials I mentioned earlier, a short description of the navigation tools, found at the bottom right corner:


-“Arc Rotate” will allow you to rotate your model around and have a look at it from another angle:


-“Zoom Extents All” – instantly zoom all your viewports to see the whole of your model:


-“Min/Max Toggle” – maximize current active viewport, useful if you have to work on smaller details:


-And a bit about the Viewport options (the 4 windows through which you can look at your model). Originally you will be presented with 4 viewports - normally 3 of them will display your model as “wireframe” and one as “Smooth + Highlights”.

-You can customize the layout to your own liking in “Customize -> Viewport Configuration ->Layout tab”. I just stay with the default layout and set their viewing angles to “Left”, “Front”, “Top”, “Perspective”.

-But I usually change the “Perspective” view to be isometric, since that is my preference. This can be done by right-clicking the viewports title in the top left corner and picking option “User”:


-And I turn off the grid for my “User” viewport, by either clicking the “G” on my keyboard to toggle it, or once again you can turn it on and off by right-clicking the viewports title and clicking “Show Grid”:


-You can also change how each viewport displays your model, by right-clicking its title in the left top corner of the viewport. I mostly just use the “Smooth + Highlights”, “Wireframe” and “Edged Faces” options.

-In this same menu, if you have rotated your viewport to hell, you can simply reset it to one of the “Views” – Top, Left etc.

-If you start rotating/changing the angle at which you look at your model in the current viewport, it will automatically be renamed to “User”.
3 – What makes a menu scene
- First lets take a look where you can find and inspect the original laboratory scene used for the game, in your extracted game files that you got form “Engine.sga” find this folder:
“\art\ebps\ui”

- It should contain these files:


- Files named “fe_lab” contain the main menu laboratory scene. Our goal is to make an “.sgm” and “.ebp” files also named “fe_lab” and place them into our mod folder so they “overwrite” the original scene and get us our custom main menu look.

- If you try and open the “.ebp” file where it is located right now, you won’t be able to do it, it will throw out an error. Now - in theory you should be able to view the “.ebp” file if you move both “.ebp” and “.sgm” file to this IC game folder:
“D:\SteamLibrary\steamapps\common\Impossible Creatures\Data\art\ebps\nature”

- However this will also not open this specific “original” games “.ebp” file. Some “.ebp” files can be opened and viewed using “ObjectEditor” once copied into this folder and others can’t, this has something to do with the Steam edition of the game.

- One way you CAN open this “fe_lab.ebp” (and other files that refuse to open), is by having access to an older version of impossible creatures, like an original CD or having other ways to access this version of the game:


- Since older versions contain the same files and as far as I can tell the same modding tools like “ObjectEditor” you can inspect them there and mimic the setup in your own creations.

- Now the main reason we would like to look at the “fe_lab.ebp” is to see what animations we need, and how we need to set them up so the game properly plays them. I will however show in detail how I did it for my scene, so you probably can do without taking a look at the original yourself. Here you can see how it actually looks if open:


- If nothing else, what you can take away from this is that this is the folder where your exported 3D scene will appear as an “.sgm” file once you have finished working on it in gmax, which we will later on open with “ObjectEditor” to create its “.ebp” file:
“D:\SteamLibrary\steamapps\common\Impossible Creatures\Data\art\ebps\nature”

4.1 - 3D modelling
- Time to create our 3D scene, navigate to a folder in IC files:
“D:\SteamLibrary\steamapps\common\Impossible Creatures\DataSrc\IC\Art\EBPs\Nature”

- In this folder you should usually see 2 other folders:


- These are source examples of 3D models that have been made for IC. One is a tree, and the other a waterfall, you can take a look at them, if you are curious.

- Now we need to create a separate folder for our scene, name it “fe_lab”, since when your 3D object is exported it will take on the folders name, and we want the new scenes name to match the original menu scenes name:


- Now open your new folder and create 3 separate folders inside of it called:
- “Animations”;
- “Model”;
- “Reference”:


- All of IC “source” files for 3D models have this structure, they sometimes might not have “Animations” folder, but they for sure have the other two:
-Reference – folder will contain our main 3D file always named “REF.gmax”;
-Model – folder will contain all of our 3D scenes textures;
-Animations – folder will contain separate copies of our main “REF.gmax” file for each of our animations, but appropriately renamed and animated.

- We will begin by making our “REF.gmax” file, simply open your gmax program (the RDN version of it):


-And save a new and empty file in the “Reference” folder called “REF.gmax”:


- In the process of 3D modelling I suggest making backups of your work before you make large changes to your model, so if something gets messed up you have something to fall back to.

- Now we need to start modelling, this is something you can easily learn without following this guide. As a matter of fact the 3D modelling and texturing sections can be skipped if you know how to model Mesh objects inside gmax and have your own ideas. As these sections aren’t IC “engine” specific.

- The only thing that matters is that every object is a “Mesh”, otherwise you wont be able to export your scene or see the objects in your scene that aren’t a mesh.

- I won’t describe the step-by-step process of how I made all of the models in the scene, since the process is more or less the same for each of them and the guide would drag on too much, so I will only show my process on the central column on top of which my rotating pokeball will rest.

- While in “Create panel”, I will begin by making a simple “Cylinder” shape:
In the “Create panel” find and click a button called “Cylinder”:
“Command panel -> Geometry -> Standard primitives -> Cylinder”:


- And make a freehand cylinder shape in the “User” viewport:


- Once done either click “Esc” on your keyboard or select “Select object” tool (top toolbar), so that the box button is no longer active (active tool will have an orange background):


- Select your cylinder, look to your “Command panel” and find rollout called “Name and Color” (rollouts are these tool sections that can be collapsed and expanded with the little “+” and “-” symbols next to their names), rename it to more descriptive name, you can also change the basic color if you wish so:


- Next I like to turn on “Edged faces” option for my 3D viewport, it helps you to better understand what is going on with your model:


-You should notice that now edges of our shape are highlighted with white color and more easily noticeable in your “User” viewport.

-Now with your cylinder selected in your “Command panel” switch to “Modify panel”:


- In the “Parameters” rollout you can set up some of the shapes initial parameters regarding its structure, while you can make certain actions in the future to change it, it’s best to plan ahead a bit, here are the changes I made for it so I can later on add more detail to the column:


- Next I like to switch back to “Create panel” and move my column to the center of the 3D modelling space:


- Have your object selected, and pick a tool from the main toolbar called “Select and Move”:


- Then look at the “coordinates display” found at the bottom, and write 0 in all of them, to move the cylinder dead center of our world coordinates:


- This “coordinates display” allows for more precise placement of objects rather than just by moving them freehand. If your object got moved out of your view, you can click on the button located at the bottom right called “Zoom Extents All”, it will quickly recenter the view to all your objects and fill each viewport as much as it can:


- This is what my scene currently looks like:


- Now to add a bit more detail to our column we need to convert it to “Mesh” (As I mentioned before every 3D object in the scene must be a Mesh).

- Right-click your object and click “Convert to Editable Mesh”:


- In gmax you can make up your 3D model from either “Mesh”, “Patch” or “Poly”. For some reason IC developers made creature models using “Patch” but all the other IC 3D models are made using “Mesh”.

- Once the object is converted to “Editable Mesh” you can see that “Editable Mesh” modifier has been applied to your object and added to your object’s modifier stack (it should always remain at the bottom of the stack, when later on we will add other modifiers). You can see this in “Modify panel” with your object selected:


- Select it by clicking on it, so it becomes active, you should notice a bunch of parameters and tools appear in your “Command panel”:


- Now our cylinder object is set up and ready to be molded and shaped into more detailed shape.

- While in “Modifier panel” and “Editable Mesh” as the active modifier take a look at these Sub-object selection options presented, these allow you to select smaller parts of the model and change them to add more detail to the model:


- What I want to do is to give my column a bit more interesting shape at the top and the bottom, for this I will switch to “Vertex” selection option:


- Select the top 2 rows of vertices, and then use “Select and Uniform Scale” tool, to widen the top:




-Similarly I will add detail all over the column:


4.2 - 3D modelling
-Then after some additional adjustments using “Select and Move” tool on vertices, by moving them up and down along the column, this is what I got:



- At this point you can create all other 3D models for your scene following a similar workflow.

- A few random tips that might be helpful once you model other objects.

-So we don’t accidentally move or select our column, while we model other objects we can either hide it or freeze it. I like to freeze it, so I can see how big or small other objects will look relative to the columns size. To do this right click the column object and click “Freeze Selection”:


- Frozen objects will appear darker in color and they can’t be selected or interacted with, to unfreeze them, simply right-click anywhere in your 3D space and click “Unfreeze All”:


- By adding all the other 3D objects to the scene this is how it looks:


- Now this is obviously completely optional but to keep this menu scene in the spirit of the original IC menu intro I will add “doors” in the shape of poke ball. If you inspected the original “fe_lab.ebp” scene you will notice that the doors are simple black plane objects, so I will do the same.

-First, I am going to make a “Plane” object in front of my scene, while in the Create panel:


-Next I am going to create a cylinder object, that intersects my plane. I will use this cylinder as a cutout shape:


-Now select your plane object, and as before in the “Command panel” find “Compound objects” and click button “Boolean”:


-In the command panel find button “Pick Operand B” and click it to select the second object for the operation – in our case the cylinder:


-And in the “Operation” section have “Cut” ticked as our operation:


-We get edges in shape of a circle on our plane, now we can convert our plane to “Editable Mesh”
Right click the object -> Convert to Editable Mesh:


-With the Plane selected go to “Modify panel” and have “Polygon” selection method active:


-Select either the upper or lower part of our poke ball doors:


-And in the command panel scroll until you find “Edit Geometry” rollout and button “Detach” and click it:


-A new window should pop out, basically it asks us if we want the detached geometry to still be part of the same object as an Element sub-object or to create a whole new object. I prefer to create a whole separate object, so I am going to tick “Detach As Clone” and click “ok”:


-One last thing we need to do is to delete the upper part of the poke ball door in the original object, since the new object cloned the upper door geometry rather than cut it.

-And now we have created our opening door plane we will be able to use for the intro animation:


Now that we have made all of the 3D objects that we will use for our scene – it’s time to texture it.
5.1 - Texturing
- Now its time to texture our 3D objects, as before I will demonstrate the process only on my central column object, since the process is more or less the same for each object.

- First I will hide all other objects in the scene so it’s more comfortable to work with a specific object. Select the target object right click and pick “Hide Unselected”, all other objects will disappear:


- Next select the object and switch to “modify panel”:


- Now what we want to do is to set an ID number to each part of the column that will have a different texture.

- Since the whole model is one whole mesh, I will use “Polygon” sub-object selection method to select certain parts of the model and give them ID numbers.

- I will start by giving an ID Nr.1 to the tall center of the column, have “Polygon” sub-object selection method active, and select the desired polygons:



- Then in the command panel scroll down until you find “Material” section in the “Surface Properties” rollout, the number displayed in the ID value window is the selected objects material ID, I will set this to “1”.


- Repeat this process until you have your whole model covered. In the end I split my column in 6 separate material ID’s (you can double check your work by going trough the ID’s with the help of “Select By ID” button):


- Now a small break from gmax.

- At this point it’s a good idea to make textures for our model. You can either paint them yourself or find them online.

- By finding some nice textures online and after some modifications of my own in Krita, here are the three “.bmp” textures I will use for my column (texture dimensions need to be a power of 2, they can however differ in their length ratio for example they can be 256x512):



- Place all the prepared textures in your “Model” folder:


- Now with our textures prepared, lets return to gmax, it’s time to prepare the materials we will use on our model.

- Click on the icon called “gmax Material Editor” located at the top of gmax:


- A new window should pop up called “Material Editor”. For now its empty since we haven’t yet added any materials, so let’s get to it – click on the “New” button:


- Another window appears giving us choice between “Standard” and “Multi-Material”, Standard is generally used if the model consists out of a singe material ID, In our case the column is made out of multiple material ID’s so we pick “Multi-Material” and click “OK”:


- Our new material is created and “Material Editor” window is filled with new options”:


- First rename your Material in this window to something more appropriate:


- First rename your Material in this window to something more appropriate:


- Since we will have 6 in total let’s add 4 more empty materials, by pressing this “Add” button:



- Now let’s open the first material in the list by clicking it:


- We can also rename this separate material to something more appropriate:


- To add our texture to this material we need to click on the “Maps” rollout “+” symbol to expand it:


- There are multiple ways to have your texture displayed on an object as a material, the simplest one is “Diffuse Color” option, first have it ticked in, then click on the button “None” next to it:


- A new window will pop up, since we will use “.bmp” as our texture select “Bitmap” and click “OK”:


- Now locate your desired texture select it and click “Open”:


- Now one of our texture maps is set up, there are a bunch of options you can adjust in here, but for our purposes we can leave it all as is:


- And finally to see your texture displayed in the viewports once its applied to the object, have this button “Show Map in viewport” toggled:


- Next I set up the materials for other ID’s the same way. The same texture can be used for multiple ID’s. In my columns case I used my “rows.bmp” texture for ID’s 2-5.

- Now its time apply our multi-material to our column object.

- With “gmax Material Navigator” window open have your new “Multi-Material” selected, and also have your column object selected in the 3D view:


- And in the “gmax Material Navigator” click this button “Apply Material to Selected Object”:


- Your object will become textured, now it might not look as you might have expected at this point, but this is where the next texturing process comes into play – the unwrapping:


- you can close the “gmax Material Navigator” for now. Select your object and move to the “Modify panel”:


- For the “Unwrapping” process we will add 3 modifiers to our “Modifier stack” for each of our object’s material ID, that means in my case I will be adding 3x6=18 new modifiers to my stack. Yes, quite a lot, but I feel like this way it’s easier to organize your texturing.

- I will demonstrate the process of adding these 3 modifiers for the columns long cylinder shape.

- Add the 1st modifier – “Mesh Select” to your modifier stack from the list:


- Now with “Mesh Select” modifier active select the “Polygon” Sub-object selection method, and select all the polygons that belong to the long cylinder:


- You can use this section in the command panel “Select by Material ID” to select all that you need much quicker. We can use this since we already set up our objects material ID’s beforehand, simply write in the ID number and click “Select”. Simply leave them selected in this modifier and move on:


-The goal with this modifier is to specify for our next two modifiers with which polygons we want to work with:
5.2 - Texturing
- Add the 2nd modifier – “UVW Mapping” from the list. It should be on top of “Mesh select” modifier in your stack (in the modifier list it’s called “UVW Map” for some reason…):


- With this modifier we will orient the way we want our texture to be projected on to the surface of our model. In most cases the “Planar” option will be the most useful, but in my case since the model in cylindrical in shape, I mostly used “Cylindrical” and “Face” options. For the cylindrical shape I actually went with “Face” option, because of the nature of my texture its better suited for this method:


- Face option dispalys the texture on each of my models faces (rectangular areas), its very useful for objects with repeating patterns.

- If the trexture still does not look quite right, don’t worry, we will make additional adjustments in the 3rd and final modifier.

- Add the 3rd modifier – “Unwrap UVW” from the list, on top of “UVW Mapping” in your “Modifier stack”:


-At this point the first two modifiers can be left alone, since the rest of the work will be done only in ”Unwrap UVW” modifier.

-Now to make additional adjustments to the way our texture appears on our objects surface, with the “Unwrap UVW” modifier active, in the command panel under “Parameters” rollout click “Edit” button:


-You will be presented with this window “Edit UVWs”:


-First things first, since we are currently working on our columns tall cylinder part, we can pick the correct map to be in our background to work on, in the top of the window there is a list, my texture map is designated as “Map #8”:


-You can check what “Map” number is assigned to each texture by opening your “gmax Material navigator”, to avoid guesswork:


- Now what we see in this window are all of the tall cylinders faces. Think of these faces as viewports through which the texture is projected on to the object. Since I picked the option “Face” during my “UVW Mapping” setup all od the faces are actually stacked on top of each other and they project the same image:


- By using the move, rotate, scale and mirror tools in the upper left of this window you can manipulate the vertices to make detailed adjustments to the way your texture is being projected on to the object:



-Before you begin any work you can click “Unwrap Options” button:


-and tick in “Constant Update In Viewports” and then click “OK”:


-By ticking in that option - now by moving around the vertices in this “Edit UVWs” window, you will notice they update live in your viewports, keep them side by side. When I was adjusting this texture it actually looked much better if I projected only part of my whole texture on to the cylinder:

Before adjustments:


After adjustments:


-As you can see by moving the vertices I only display 1/3 of the texture on to my cylinders faces.

- Finally I like to rename these modifiers to include the corresponding parts ID or descriptive name, in order to keep the list organized. Right-click it, and rename it like so:


-Now repeat the same process of adding 3 additional modifiers in your modifier stack for each of the material ID’s in your model, here is the end result:


- Now repeat the same process for each object in your scene and add additional textures if needed to your “Model” folder until your whole scene is textured:


6 - Camera placement
- With our scenes mesh objects finished, at this point we need to add 2 more special objects, so our menu scene displays and works properly in game – Camera and light.

- The original scene actually has multiple camera objects. In the game these views will switch form one to another if the menu is left idle for some time, you can inspect how this is done in the original “fe_lab.ebp” file if you wish.

- To keep it simple I will add only one camera and only two light sources to the scene.

-First lets add a camera, in Create panel find and click this icon “Cameras”:


-You have 2 options “Target” and “Free”:


- In my case I want my camera to focus on the pokeball at the center of the scene, so by picking “Target” my camera object will have 2 handles I can control. One is for picking a point I want the camera to point and focus at, the other is the camera itself – this makes my job much easier.

- To add the camera to the scene simply have it toggled, and then freehand draw it in the scene like you would any other primitive shape object:




- Now I reposition the cameras focus point and the camera itself:


-Now the moment you add a camera to the scene you can actually use one of your viewports to see what the camera will see. Simply right click the viewports name in its top left corner, go to “Views" and pick your camera objects name, in my case “Camera01”:


- You will see that the name of the viewport in the top left will change to the camera objects name as well (if you also have black opening doors in front of the camera you can hide them while you position your camera):


- Also your navigation tools will slightly change their properties once you switch to camera viewport:


- Now regarding the camera itself if you select it and go over to “Modify panel” in here you can change some of its parameters:


-You can either edit its parameters yourself:


-Or pick from the available options, whichever option suits your scene best:


-That’s pretty much all I know about setting up the camera, and as far as I can tell that is enough, so lets move on to lighting.
7 - Lighting the scene
-Now lighting is the topic in gmax which I am least familiar with, so my process for setting them up is super simple.

-First lets add some lights, in Create panel find and click this icon “Lights” its right next to the “Cameras”:


- Now in terms of lighting we have a lot more options:


- The simplest to use is the “Omni” light, it will emit light evenly in all directions from one point in space. Other lights act in a more complex way you may explore at your own leisure to see what fits best for your scene.

- So just like we did with the camera object, toggle the “Omni” option and place it by clicking somewhere in the scene:




- Now you can adjust a few of the lights parameters, if you select the light object and go over to “Modify panel”:


- Personally, the only property I adjust is the “Multiplayer” option, to make the light stronger and to cover larger are of the scene (once your scene is exported you won’t see the lighting in the scenes “.ebp” file when opened with Object Editor – the lighting will only be visible while inside the game):


-To light the scene more evenly I usually add more than one light source to the scene:


- After I readjusted the positioning of the light sources and their multiplayer values, this is what I ended up with (look through your camera viewport to have a better idea how the lighting will appear in the final product):


- Now we can move on to animation.
8.1 - Animating (Adding bones)
- To animate any object in your scene it must have a “bone” attached to it, if you move and animate any object without a bone, the game will not recognize it as an animation, and the object will remain static. You move the object by moving its bone (or bones).

- As far as I can tell there are actually 2 types of bones used in IC. One type is used exclusively for creatures and the other for everything else (we need to use this second type).

- Also the bones I would normally make from scratch in gmax did not work for me, seems like the bones used by the original developers are special in some manner… luckily there is one place you can import this special bone from, and then simply copy it if you need more of them. The Henchman source files are the only source files with the special bones we need.

- You can access henchman source files here:
D:\SteamLibrary\steamapps\common\Impossible Creatures\DataSrc\IC\Art\EBPs\Gatherers\Henchmen

- The bones used in creature animation are colorful boxes, while the ones used in henchman (and any other object I assume) are more traditional looking, or at least something you might see in other games:


- In the following process our goal will be to import a single bone for us to use. To import bones, have your scene “REF.gamx” file open and navigate to “File -> Xref Objects” a new window should pop up:


- Next click “Add”, a new window should pop up, now find the henchman’s “ref.gmax” file and click “Open”:




- Another window will appear. it lists all of the objects we can import from the target file. The specific bone we want is called “Bip01”, find it, select it and click “OK”:


- If you are presented with this dialog window simply click “No”:


- Now you will see that the bone appears in the “XRef Objects” list, the last thing we want to do in this window is to select it, and click “Merge” to fully add the bone to our scene:


- In the following dialog window click “OK”:


- We have imported our desired bone object (circled with yellow marker), now we can close the “XRef Objects window”:


- Now that we have our bone we can copy it. My animations will actually be pretty simple for this scene. In total I will need to use 3 bones:
1. For the pokeball to spin it;
2. For the upper part of the black door;
3. For the lower part of the black door.

- So make as many copies as you will require for your scene (using shift + “Select and Move” tool), and you can also rename them to more appropriate names:




-Next reposition the bones to be closer to their intended object, for example I put the pokeballs bone right in the center of it:


-The final thing we need to do is to link the objects to their bones, first have your object selected:


-Then in the upper toolbar toggle “Select and Link” tool:


- With your mouse click and drag a “link” from your object to its bone, and then release the mouse button while targeting the bone:

- To check if this worked you can try and move the bone, if the desired object moves along with the bone, that means the bone and the object are both linked.

- In a more complex scenes you can also enable the ability to see links between objects, to do this navigate to “Display” panel:


- Now select objects and bones of which you whish to see the links, and tick in this box “Display links” (click it even if it already appears to be ticked in and greyed out):


- If both bones and objects positions are exactly the same, it will be hard to see the link between them, but generally it appears as a thin pyramid shape (triangle) that connects the object and the bone, the object/bone at the end of the thicker part of the shape will be the “parent” of the interaction, we usually want the bone to be this parent:


- In case you need to break the link, have them both selected and simply click this button in the upper toolbar “Unlink selection”:


-And that’s it, our main “REF.gmax” scene should be finished. It has textured 3D mesh objects, camera, lights, and bones for animations. Now we can move on to the animation process:


8.2 - Animating (Creating the animations)
- To create an animation for your scene you have to copy the main “REF.gmax” file over to your “fe_lab” “Animations” folder you made at the very start (if you have read my creature creation tutorial this process will be familiar to you, however there is one special action we will need to perform – making bones “Stale”):


-And rename it to the appropriate animation – let’s start with “Idle_pose”:


- My animation set-up is pretty bare bones for demonstration purposes, but you can add more cameras and more additional animations, just like the original main menu scene.

- Here is the list of animations I will prepare for my scene to make sure it functions:
1) Idle_pose (static unanimated scene, where all bones are set to be stale)
2) CAM_entry (as its name implies, this will be the intro animation, this animation will take care of your main camera movement and the opening doors animation)
3) CAM_static (this animation will make sure camera stays in the right place after the intro has finished its animation)
4)Idle_ball (this animation will specifically be used for the poke balls rotation animation)

- Now once you have made your “Idle_pose” gmax file, open it.

- The first thing we need to do is to make all of the bones “stale” trough their properties.

-Right click your bone and select “Properties…” option:


- An “Object Properties” window will pop up, go to the “User Defined” tab:


-In this window you need to type in “Stale = yes”, and click ok – the bone has been made stale, now repeat this for every other bone in your scene (I have 3 bones in total, so I did this 2 more times):


- We have our “Idle_pose” done, now for pretty much every other animation, we should use this “Idle_pose” file as the source file, and disable the “Stale” property for the bones we will use in our animation.

- Copy the “Idle_pose” file and rename it to the appropriate animation, then in the file itself open the properties of the bones that will be used in this particular animation and delete the “Stale = yes” statement so the bone animates. The bones that do not participate in the animation need to remain stale, otherwise animations will interfere with one another and simply not work.

- For CAM_entry I will enable the two of the door bones. Since I will be moving the camera and the doors for this animation.

- To begin the animation process, toggle this button in bottom right:


- The button and the frames around viewports should turn red:


- This means you are in animation mode. Pay attention if this mode is active, otherwise you might just mess up your scene by simply moving objects around and not animating them.

- As I mentioned before to animate an object you need to move the bones.

- Animation process consists of creating keyframes.

- To create a keyframe in your animation, first select your bone object:


- Then look at the bottom of the gmax window, you will see a green bar, its called “Track bar”. Keyframes will be set on this bar:


-To set a keyframe at a certain frame of you animation you move this slider called “Time slider”:


-Usually we want to start our animation at frame “0”, so to set a keyframe for our door, we right click the “Time slider”, a new window will pop up, click “ok”:


- And a new keyframe will be made for our bone object on frame 0 of our animation (keyframes appear as blue rectangles):


- Now move your “Time slider” over to end of your animation:


- And move your object to a new position. In my case I moved the doors up:


-This time around, a new keyframe will be automatically made on the frame where you left your “Time slider”, because we set the first frame and now gmax detected that we changed the position of our bone object:


- The frames in-between will be interpolated by gmax itself, so the doors get from point A to point B.

- Camera is animated in the same way, set its keyframe on the frame 0 and then move it to where you want you menu scene to end up:

- Here you can see the first and the last keyframe of my “CAM_entry” animation. So 2 keyframes for each of my doors, and 2 keyframes for my camera object – that’s it:




- Next I will prepare “CAM_static” animation, this ones pretty simple, first copy the “CAM_entry” animation and rename it to “CAM_static” and open it.

- First remember to enter the “Animate” mode then select the door bones and delete their animation frames. Select the frame by clicking on it, it will turn green, then simply hit “Delete” on your keyboard. Start by deleting the last frame, and then the 0 frame:


- Now make the door bones stale again by accessing the bones properties. (we copied our entry animation instead of our prepared idle animation because we wanted to get the ending camera position, for every other animation you should use the idle as your starting point if your scene is more complex)

- Now select your camera object:


- And while your “Time slider” is on frame 0 right-click it. This time we will enter the “Source Time” as 100, so the camera position on frame 100 is copied over to frame 0 – click ok:


- Now camera on both the first keyframe and the last keyframe is in the same position. The position it will end up after our “CAM_entry” animation finishes playing:


- That’s it, that’s all this animation needs to be.

- “Idle_ball” is the final animation I will make for my scene. This is not an animation name that the game will recognize in any special way, but that’s fine, since its just a custom object for our scene to look more dynamic.

- For “Idle_ball” copy the “Idle_pose” animation. In my case I will need to make the poke balls bone not to be stale in this animation file since it’s the only object I want to animate here.

- Also to make my life easier I will make my animations length 360 (one degree of rotation for each frame):
8.3 - Animating (Creating the animations)
- To make sure my ball makes a 360 rotation I will make a key-frame at frames 0, 90, 180, 270, 360, and rotate it by 90 degrees each time. (sometimes gmax might misunderstand your intentions, and it might get from point A to point B in a different way than you wanted, so its good to guide the animation along the way):


- Ok our animations are finished, we can move on to exporting:


9 - Exporting
- Now with our scene and animations finished, its time to export our scene, open your main “REF.gmax” file:

-Click the “Utilities” panel:


- And choose “MAXScript” from the available options:


- In the “MAXScript” rollout under the Utilities select “Export model (relic)” – select it again even though it might appear already selected:


- Then in the new rollout simply click “Export”:


- Wait a few seconds and you might end up at one of your animation files, this is normal, gmax simply cycled trough all the animation files for your scene and exported them, you can close gmax now.

- You will find your exported scene in this folder, in form of a “.sgm” file:
D:\SteamLibrary\steamapps\common\Impossible Creatures\Data\art\ebps\nature


- To keep working our scene and to add it to the game we need to crate an additional file - an .ebp file. Open “ObjectEditor” program:


- Once open click File -> New and locate your “.sgm” file:


- An .ebp file will be made in the same folder, and you can inspect your scene by opening it with the “ObjectEditor”:




10 - Preparing the .ebp for the game
- Currently we have our exported scene and its animations as .ebp file. But for animations to properly play inside the game we need to create motions from the animations. You can think of animations as raw materials:


-I will have 5 motions:
- CAM_ENTRY
- CAM_STATIC
- IDLE_BALL
- IDLE_POSE
- IDLE (this animation will use IDLE_BALL, IDLE_POSE and CAM_STATIC as child animations)

- To create a motion click this button “Add…”, and pick “Motion”:


- You will be presented with a window to set up your motions, for some animations the set up is very simple, for example for “CAM_STATIC” you just need to enter the name of the motion and pick its source animation file below, and click ok:


- As before you can inspect the original “fe_lab” and see how its motions are set up.

- For CAM_ENTRY the same deal as CAM_STATIC, except I disabled the “looping” and adjusted the motions “Playback Speed” using the slider:


- IDLE_POSE and IDLE_BALL motions are added the same way as CAM_ENTRY, except I adjusted the Playback Speed for the IDLE_BALL animation.

- IDLE motion is a bit special, it’s the main animation that will play during the menu scene. It wont use a single animation like the previous motions, instead it will be made from multiple child motions. Have “Deafult Motion” enabled, and It must contain all the moving bits and pieces as its children motions. You add the desired child motions in the bottom from the list (You also need to add “CAM_STATIC” as a motion, so your scene remains visible even after you return from a match):


This is how my .ebp set up appears:


- Now you can save and close your file.

- To see this scene in game simply copy and paste both the .ebp file and the .sgm file in this folder inside your mod:
- D:\SteamLibrary\steamapps\common\Impossible Creatures\dinodawn\data\art\ebps\ui
(replace the “dinodawn” with your mods name of course):


- Now this file will overwrite the original menu scene, when you launch your mod, TA-DAA!!!:


- You can play around with the “Motion Speed” slider to speed up or slow down the entry animation or other animations to fine tune your scene.
11 - GUILayout - Set up
- Now the last thing I will demonstrate in this tutorial is how to modify your main menus button layout and add/remove images from it so it better suits your mods background scenery using the “GUILayout” program:


- You can find all menu screens in this folder in your game files:
D:\SteamLibrary\steamapps\common\Impossible Creatures\data\ui\screens

- Tthe one we are interested is called “mainmenu.scr”:


- First we need to start by creating a strange file to get the GUILayout working properly, in this folder:
D:\SteamLibrary\steamapps\common\Impossible Creatures\Locale\English

-Called “Text.dat”, I simply create a new “.txt” type file, and rename it and its file type extension:






-There is an explanation as to why you need to do this, by one of the folks from Tellurian team, but I won’t pretend to understand it, all I can tell you is that this works.

- A small sidenote, launching game with this file, will break your games text, so we will keep this file around only while we are working on our main menu scene and delete it after we are done:


- Now its time to open the “mainmenu.scr” file, however you need to open it in a particular way, first open GUILayout program and then find “mainmenu.scr” file trough File ->Open:




- Trying to open the desired file by just double clicking it won’t work.

- Now you should see the menu screen with its buttons and text string ID numbers:


- There are a few more steps you need to perform before you begin making changes to the new menu screen.

-First select all of the elements in the menu by pressing “Ctrl+A” on your keyboard.

-You should have this tool selected by default to perform this action, if not have it toggled:




-With all the elements selected on your keyboard hit “Ctrl+C” to copy all of the elements.

-Now open a new file trough File-> New:


- In the new empty scene paste the copied items by pressing “Ctrl+V” on your keyboard:


-Sidenote, if the tools on the right toolbar do not appear, slightly resize the window.

- Now you need to save your new screen File -> Save As:


- You can name it some other name for now while working on it, for now I named mine “pokemenu.scr”:


- When you hit save you will be presented with this window, select “No Localization Contnet” and click “OK”:


- Now you need to export “.scb” file trough File -> Export:


- Again you will be presented with this window, and again choose “No Localization Content” and click “OK”:


- Ok, now we are finished with the setup, we can start editing our menu and at this point you can safely delete the text.dat file.

- Next time you open your menu scene you might be greeted with this warning, you can safely ignore it:




12.1 - GUILayout - editing the menu scene
- For the most part, when working with the “GUILayout” you can refer to one of the documents in the IC game files. I wont tell you anything you cant learn from this document, so I wont go too much in detail about my actions or the tool (“IC_GUILayout_Documentation.doc”):
D:\SteamLibrary\steamapps\common\Impossible Creatures\Documents

- Also I personally have only tinkered with the main menu scene and only skimmed the documentation file, but I am sure there is more you can do with it in other game menus. The most notable thing about this tool is that here is no “Undo” option…yeah… So when you make some changes you like, I suggest saving a copy of it before you proceed to edit it further.

- Now first things first, I want to remove the brown frame surrounding the buttons. From what I have learned it is a good idea not to delete something that the screen contains/contained originally, so we will instead simply hide it.

- To more easily select the background graphics only (or any other specific element), I will go to Options -> Layers, select the layer called “background_layer” (it contains all the frame graphics), and click on one of the graphical elements in the list, and then click “Select” and “ok”:


-And we have our element selected:


- Now to hide it, while it is selected, in the tool menu un-toggle this option “Visible”, do this for every other graphical element you do not wish to see in your custom menu scene:


- Sidenote, the “Visible” toggle in the Layers window is however meant only to hide the object for editing purposes in the GUILayout program, THIS option does not hide the graphic when in game:


- Small fun trivia note, you can find the original logo for the game hidden in this menu:


- So with the graphical elements hidden now our background is clean:


-Now lets move the buttons, for my menu I want them to appear on both sides of the menu, first I am going to position them, keep in mind that in IC the buttons originally consist of 2 elements:
- Button itself:

- And its small grooves graphic:


- You can move an element by simply selecting it and dragging it around:


- For more precise placement you can enter x/y coordinates while a single element is selected on the side panel here:


- these coordinates are relative to the currently selected screen size, which you can see at the bottom left:


- You can change the screen resolution in Options if you wish, or simply resize the window to have a custom resolution preview, however all the button sizes will change relative to the screen size, so its best to stick to one resolution while editing the menu:


- Coordinates are measured from the top left corner, by the elements top left corner, for example this element is now at 0,0 coordinates:


- I ended up with something like this:


- Next I will set up the way buttons appear (slide in) once the menu loads. This can be simply done by selecting an element and picking a direction from which it should appear, and set the timing (don’t forget to set the same entrance and timing parameters for the little button groove graphics If you decided to keep them):


- To see how the button animations will play out you can first press this “Hide” button and then click the “Show” button, all the items in your menu will play their animation:


-Now the final thing I want to add, are graphics of my own, like these two images:


- Now originally these are “.png” file type images, converted to “.SPT” type files, so the game recognizes them. I did this using this tool made by another user, you can also read about how to properly use it there so I wont go into detail about that:

https://psteamcommunity.yuanyoumao.com/sharedfiles/filedetails/?id=2080816778

- Once you have your images ready you need to place them in this folder (it contains all other graphic files used in other menus as well):
D:\SteamLibrary\steamapps\common\Impossible Creatures\data\ui\screens\textures


- To get these images in the menu scene, I select the “Picture” tool:


-And draw the initial picture element dimensions:


-Then in the properties of this picture element use “Load Picture” and find and select your picture you wish to use:


-And you have your image added to the scene:


-There are multiple blending options, but I have found that the one that makes the background transparent is “BF_OneMinusScrAlpha”:




- Now you can scale the image it by dragging its corners while this “arrow tool” is toggled, or adjust its dimensions here in the panel (you can also make it initially appear the same way buttons do):


- After some repositioning here is what I ended up with:


-Once you are finished, save your “.scr” file.

- Every time you save your changes you will be presented with this window always remember to choose “No Localization Content” and click “OK”:


- And then export, your ”.scb” file, again picking “No Localization Content”:


- Now you can close “GUILayout” program.

- When you close GUILayout program you will be asked if you want to save “untitled1.scr”, its just a byproduct by opening our menu trough File->Open menu, and you can safely ignore it and click “no”.

- We now should have 2 files “.scb” and “.scr”:
12.2 - GUILayout - editing the menu scene
- To have them work inside your mod move them over to your mods data folder, also don’t forget to move any images you used to create your menu scene:
D:\SteamLibrary\steamapps\common\Impossible Creatures\dinodawn\data\ui\screens
D:\SteamLibrary\steamapps\common\Impossible Creatures\dinodawn\data\ui\screens\textures

-The last thing to do is to rename the files to “mainmenu” so they overwrite the original menu scene:


- Now you can open your mod, and see the final result:


- Hopefully you found this tutorial useful if you were planning on making a custom 3D scene for your Impossible Creatrures mod.