Offline KI:Age Writer Tutorials

Disambig gray.png

This is a tutorial page.
 

This page contains some tutorials for the Offline KI which are interesting for age writers. For more information and instructions, go back to the Offline KI main page.

Adding ages (using age descriptors)

In order to add an age to the Offline KI, you have to create an age descriptor and put into the folder "img\AgeInfo" in your Uru installation. That folder is loaded by the Offline KI to learn about fan-ages and what to show in Nexus. The Offline KI will also add all ages it does not know, but of course it doesn't know the real name of the age then (which is usually different from the filename), so it marks them as "unknown age".

An age descriptor is a simple text file. The filename must exactly match the filename of your age, followed by ".txt". So, if your age file is called "My_Age.age", call the age descriptor "My_Age.txt". A simple example descriptor looks as follows:

displayName=My Age
lastUpdate=2014-04-25
description=My first age, and an age descriptor demo.\nThis will be shown on a new line.

This tells Uru that the user-visible name for the age is "My Age", and when the age has been last updated. The latter information is used by the Offline KI to fill parts of the Shelf, and to sort the list of ages in the Nexus. The example also gives a short description which will be displayed at the bottom of the Nexus GUI and in Relto shelf books linking to your age. A newline in the description is encoded as "\n".

Per default, the age will be shown in the "Restoration Links" in Nexus. If you want to hide your age (for example because it is a reward which can be reached from another age after solving a puzzle), add a new line saying

showIn=none

Adding a book to the shelf

Note: If you just want to quickly reach your own age because you are working on it, the best way to do so (even quicker than using the shelf) is to type "/link InternalName" as soon as you arrive on Relto. This will directly bring you to the default link-in-point. Alternatively, use "/linksp InternalName SpawnPointName" to link to a different link-in-point. To automatically link to your age when Uru starts, type "/autolink InternalName".

However, if you really want to add an age to the Relto Shelf, open the ULMServerLinkBook.inf file. You see a bunch of [Book] sections, each corresponding to a book shown in your Relto. Each section can either define its position, like [Book 4], or automatically use the book to the right of the previously defined one if the number is omitted. Below the section header, you can define the cover of the book and as many pages as you want. The most basic book, offering a single link to a single age, looks like this:

[Book]
age:InternalName[,SpawnPointName]

where "InternalName" is the name of the age file (without .age), and "SpawnPointName" is the name of the spawn point you want to arrive at. If you leave it out, the game will choose the default spawn point. You can add several links to a book by adding several lines to it's section, just make sure each age also has a valid age descriptor (see above). The age descriptor is also used to add a description on the left page, below your age's name.

You can also add text pages to the book and link to multiple ages as follows:

[Book]
text:Title,Content
age:InternalName[,SpawnPointName]
text:Another Title,More Content
age:InternalName2[,SpawnPointName2]

In the text "Content", ";" will be turned into "," and "\n" will be turned into a line break.

Please note that any changes to ULMServerLinkBook.inf will be overwritten on the next upgrade of the Offline KI. To prevent your changes from getting lost, rename the file to ULMLinkBook.inf - if the Offline KI can not find the file it usually uses, it will fall back to using that one. The next upgrade of the Offline KI will install ULMServerLinkBook.inf again, which you then just have to remove to get your custom shelf back.

Adding a linking panel

The Offline KI looks for linking panels in the following order:


I) From the Relto bookshelf:


A) An animated panel.


1) It looks for a "InternalName_SpawnPointName.bik" file (with alpha margin), in the "avi" directory.

2) If the .bik file isn't found, it looks for a "InternalName_LinkInPointDefault.bik (or InternalName.bik)" file (with alpha margin), in the same directory.


Note: Videos with alpha margin doesn't works on some computers. If the game crashes when you click on your Age closed book from the Relto bookshelf, you'll have to add the "old_" prefix to your Age "InternalName(_SpawnPointName_or_LinkInPointDefault).bik" file name (or to delete the file). If you've converted "Myst V" Ages, you'll also have to add it to "direboWithAlpha.bik", "dsntRestStop1WithAlpha.bik", "dsntRestStop2WithAlpha.bik", "dsntRestStop3WithAlpha.bik", "dsntRestStop4WithAlpha.bik" and "mystWithAlpha.bik" files name (or to delete the files).


B) If an animated panel isn't found, it looks for a static panel.


1) It looks for a "LinkingImage_InternalName_SpawnPointName.jpg" file in the "img" directory.

2) If the .jpg file isn't found, it looks for a "LinkingImage_InternalName_LinkInPointDefault.jpg (or LinkingImage_InternalName.jpg)" file in the same directory.

3) If the .jpg file isn't found, it looks for the "LinkingImage_Void.jpg" file from the same directory.


II) From the Nexus:


Note: The .bik files ain't taken onto account.


1) It looks for the "LinkingImage_InternalName_LinkInPointDefault.jpg (or LinkingImage_InternalName.jpg)" file.

2) If the .jpg file isn't found, it looks for the "LinkingImage_Void.jpg" file.


III) From the other Ages: You have to specify a .bik file (without alpha margin) "or" a .jpg file. (More informations soon.)


To create a static panel for your age, first of all you need a screenshot of what it should show. Then use "GIMP" or a similar application to first crop the image to 1280x814 (or 800x509 or 640x408 or other resolutions with the same aspect ratio) and then scale it to 410x168 pixels - yes, that stretches it. The scaling is not mandatory, the game will do it for you if you don't do it, but panels shown in books usually look better when you do the scaling with proper interpolation. After the picture has the right width and height, save it with the appropriate name and in jpg format (see above) in the "img" directory - done!

To create an animated panel, first of all you need a video of what it should show (30 seconds maximum recommended and 30 frames/s). While making your video, keep in mind that the video will be looping in the book, and that it could have to be cropped to match what's shown in your static panel. Then use a video editor to set your video as required, and/or use "RAD Video Tools" to convert it to a .bik file, set as required.

Setting a video as linking panel

As it have been said, the screenshot that you want to use for the static linking panel of your Age book, have to be cropped to 1280x814 (or 800x509 or 640x408 or other resolutions with the same aspect ratio) and then scaled to 410x168 pixels.

Here is a picture that shows these steps (I started from a 1280x960 pixels screenshot):

Click the image to enlarge it.

LinkingImage_InternalName(_SpawnPointName_or_LinkInPointDefault).jpg


Well, keeping the same 1280x960 resolution for a video capture, for an animated linking panel (with alpha margin) from the Relto bookshelf, it gives:

Click the image to enlarge it.

InternalName(_SpawnPointName_or_LinkInPointDefault).jpg


And finally, still keeping the same 1280x960 resolution for a video capture, for an animated linking panel (without alpha margin) from the other Ages, it gives:

Click the image to enlarge it.

InternalName(_SpawnPointName_or_LinkInPointDefault)WithoutAlpha.jpg


How to use a video editor to set your video as required, and/or use "RAD Video Tools" to convert it to a .bik file, set as required?

You'll need two programs: A video editor and "RAD Video Tools". For the video editor, I'm using "VSDC Free Video Editor"; you can probably use a similar program, but I won't be able to show you how to use it...

- "VSDC Free Video Editor" download: http://www.videosoftdev.com/free-video-editor (There are two buttons: "Download Video Editor x64" and "Download Video Editor x32".)

- "RAD Video Tools" download: http://www.radgametools.com/bnkdown.htm (There's a link: "The RAD Video Tools" to a .7z archive protected by the "RAD" password.)

Download and install them.


A) Animated panel (with alpha margin) from the Relto bookshelf:

Launch "VSDC Free Video Editor" and create a "Blank project" with the following settings:

Click the image to enlarge it.

InternalName(_SpawnPointName_or_LinkInPointDefault)-VSDC_01.png


For the "Opacity level", select "0":

Click the image to enlarge it.

InternalName(_SpawnPointName_or_LinkInPointDefault)-VSDC_02.png


Add your video from start of the scene by adding a new layer:

Click an image to enlarge it.

InternalName(_SpawnPointName_or_LinkInPointDefault)-VSDC_03.png


InternalName(_SpawnPointName_or_LinkInPointDefault)-VSDC_04.png


InternalName(_SpawnPointName_or_LinkInPointDefault)-VSDC_05.png

Set the following settings:

Click an image to enlarge it.

InternalName(_SpawnPointName_or_LinkInPointDefault)-VSDC_06.png


InternalName(_SpawnPointName_or_LinkInPointDefault)-VSDC_07.png


Click on the "Export project" tab, select "PC" and "To MOV", and click on "Edit profile...":

Click the image to enlarge it.

InternalName(_SpawnPointName_or_LinkInPointDefault)-VSDC_08.png


Set the following settings and click on "Apply profile":

Click the image to enlarge it.

InternalName(_SpawnPointName_or_LinkInPointDefault)-VSDC_09.png


Click on "Change name...", choose where to export the video, choose the filename that you want the exported video to have, click on "Save", and then click on "Export project":

Click an image to enlarge it.

InternalName(_SpawnPointName_or_LinkInPointDefault)-VSDC_10.png


InternalName(_SpawnPointName_or_LinkInPointDefault)-VSDC_11.png


Now that the video as been exported as a .mov file, close "VSDC Free Video Editor" and launch "RAD Video Tools". Select the video exported by "VSDC Free Video Editor", click on "Bink it!", click on "Browse...", choose where to export the video, set the "InternalName(_SpawnPointName_or_LinkInPointDefault)" filename, click on "Save", mark the case "Click for alpha plane options..." by selecting the "Include the alpha plane (and leave it unchanged, directly from the input file)" option, and finally click on "Bink":

Click an image to enlarge it.

InternalName(_SpawnPointName_or_LinkInPointDefault)-RAD_1.png


InternalName(_SpawnPointName_or_LinkInPointDefault)-RAD_2.png


B) Animated panel (without alpha margin) from the other Ages:

Note: "RAD Video Tools" doesn't seem to like the .avi videos created with the "Fraps" program. If your video has been created with "Fraps", you may have to convert it again to .avi format...


Launch "RAD Video Tools", select your video, click on "Bink it!", click on "Browse...", choose where to export the video, set the "InternalName(_SpawnPointName_or_LinkInPointDefault)WithoutAlpha" filename, click on "Save", for the "Scaling type...", select "Highest quality (bi-cubic)", set the following settings, and finally click on "Bink":

Click an image to enlarge it.

InternalName(_SpawnPointName_or_LinkInPointDefault)WithoutAlpha-RAD_1.png


InternalName(_SpawnPointName_or_LinkInPointDefault)WithoutAlpha-RAD_2.png


InternalName(_SpawnPointName_or_LinkInPointDefault)WithoutAlpha-RAD_3.png

Adding a custom book cover

For the mapping of the cover in your Relto to be correct, you have to use exactly the right positions of the elements that make up a book: The cover has to have a size of 128x292 pixel, with the top left corner being at 22,105 and the bottom right at 150,397. The full size of the picture always has to be 512x512 pixel, and it has to be saved as jpg file. Of course, it is always a good idea to have a look at other covers and use them as template. Rainforce created the following test cover which shows the parts of the images used for spine and front. It also contains the top and bottom side, which usually is not changed - but you can do so, if you wish. Click the image to enlarge it.

Test cover
red: spine, green: front
The 4px part they BOTH share is really strange, and don't forget about the fact that the sides of the spine are "leaning" (load this image as cover to see for yourself)


To have a book show your cover, put the following line into the part of the ULMServerLinkBook.inf file which sets your book (the best place is right after "[Book <nr>]"):

cover:MyAgeName

This will load the cover from CoverImage_MyAgeName.jpg.

Python scripts to be used in fan ages

The Offline KI contains some Python scripts which you can use in your age, so that you have less (or no) Python scripting to do yourself. If a script here suits your needs, it is encouraged you make use of it - this reduces the overall amount of scripts and common programming mistakes, and it lets your age automatically benefit from future fixes to the scripts.