Tutorial and Information Requests

If you feel like you're up to the challenge of building your own Ages in Blender or 3ds Max, this is the place for you!

Re: Tutorial and Information Requests

Postby Tweek » Tue Jun 05, 2018 1:04 pm

I would also be interested in knowing how to do this.
Beneath - IC Blog.
Beneath: Ages of Tweek - FB Age Dev Page.
User avatar
Tweek
 
Posts: 692
Joined: Sat Sep 29, 2007 6:37 am

Re: Tutorial and Information Requests

Postby Sirius » Wed Jun 06, 2018 9:42 am

J'Kla wrote:Any chance of getting a tutorial that would demonstrate how to add a a clickable object something as simple as an image or a sphere that would then link you to some other age.

I got it working on a very small Blender scene, I can provide the Blender file as an example.
Wouldn't you prefer a full linking book with linking panel, though ? I might also be able to do that.


HOWEVER...

The LinkToAge message you can see in Korman can break saved games if used incorrectly - this is a rather serious issue, and Diafero has always warned people to never use it. There is a workaround for Complete Chronicles, but it's not available in MOULa as far as I know.

Could someone knowledgeable about MOUL/Dirtsand Shard tell us if there is already a "recommended way" to do linking (and linking books) on these servers ?

More info on the issue:
Due to how linking rules/instancing/ownership works, LinkToAge messages incorrectly setup can mess up with Age instancing (including duplicating of the Age). D'Lanor wrote about it here.
As a workaround/hack, the Offline-KI provides a Python linking manager, which is very simple to use and ensures linking rules are setup correctly (it also prevents you from linking to missing Ages).
Creating linking books on CC was done using D'Lanor's Book Template (very flexible but too complex for most users. It also required every Age to ship its own version of the script, which is bad). Later I released a simpler Python script, which doesn't require users to do any Python coding, and is also simpler to setup. Both use the OKI's link manager, ensuring safe linking.

However I don't know if there is an equivalent on MOUL/DS shards. MOUL instancing is different from DI instancing, but I think avoiding the LinkToAge message in favor of Python linking is still desirable.

To make things simpler for builders, maybe we could convert my scripts (xSimpleLinkingBook and xSimpleBahroStone) to MOULa ? This would allow linking books in Korman to work the same in both versions of the engine, and means we can prevent wrong links. It would require a new helper script with its own link database to handle linking though. But at least this would ensure all Shards can handle linking the way they see fit, and quickly patch any wrong link.
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: Tutorial and Information Requests

Postby J'Kla » Wed Jun 06, 2018 11:20 am

Linking books and panels are fine but if we are to get away from Cyan IP we need to consider some other option linking via art in a gallery or other objects can be eluded/hinted at in journals making things clickable can also provide red herrings things that stop explorers just wafting over a scene till they find a clickable hot spot.

We also have non-clickable links like those we find in dark passages like the ones we use when collecting the pillars or the ones we escape the garden ages in a door run.

If we are looking for story led exploration the current linking books are the droppings of the DRC and the Bharo stones/tapestries are Yeeshas doing.

I am personally looking to work on non Yeesha story like the one I have embedded in the Korman version of Enobmort renamed as Abmortoxas this is the Walker story that was originally started during Until Uru.

As for the CC versions that’s now a dead stop for me because the ladder export has issues with non MOULa testing where everything I export as Uru Live works with Destiny/dirtsand. I also have issues with panic linking in CC export that works when I do an Uru Live export.

I know that we can link to fan ages using the Plasma Console so dirtsand and Destiny and by elimination Ghen shard which is also I believe a dirtsand shard.

Doors and the tools for opening them would also be useful but linking will allow me to progress my ages quicker. The doors can wait till later.

As for D’Lanor’s liking rules the detail is beautiful but it’s rather like reading Chaucer, It will be a lot more informative as a backup information to a tutorial, as it stands understanding will come from usage. I actually found D’lanors template a dream to use once I figured it out. This was the internal linking I used in the Enobmort still available on Deep Island.

If we could get a tutorial on embedding Python Linking into Korman that sounds like a method either way tutorials for Korman expansion that will work for Uru Live export has to be the direction.

Stuff for CC export may be interesting but with a dirtsand target tutorial available for Uru Live export from Korman. Considering exports of this nature are possible as future material for Cyan inclusion should they eventually include fan content.
User avatar
J'Kla
 
Posts: 1003
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

Re: Tutorial and Information Requests

Postby Tweek » Wed Jun 06, 2018 2:55 pm

I'd like to use this mechanism for "Lore Stones" in my Ages which have Linking Books enclosed in a disc. You press the disc to Link but you don't get a Book pop up you just Link to whatever Age it leads to.
Beneath - IC Blog.
Beneath: Ages of Tweek - FB Age Dev Page.
User avatar
Tweek
 
Posts: 692
Joined: Sat Sep 29, 2007 6:37 am

Re: Tutorial and Information Requests

Postby J'Kla » Fri Jun 08, 2018 1:07 am

Sirius wrote:I got it working on a very small Blender scene, I can provide the Blender file as an example.


This would at least give both Tweek and myself something to work with.

From that I could write a basic tutorial is there any way to drop this into the github?
User avatar
J'Kla
 
Posts: 1003
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

Re: Tutorial and Information Requests

Postby Sirius » Sat Jun 09, 2018 7:09 am

Oh right, if you need to do something more original, that makes sense.
If you insist, here is the blender file. Remember that I don't recommend the LinkToAge message as it might mess up saves, but at least it should get you started, and help you setup other kind of clickables.
Doors are more complex to setup, because they use SDLs which can't be setup directly in Korman. When I have more time I'll try to provide an example blender file for it too.
Attachments
LinkToAge.7z
(60.07 KiB) Downloaded 210 times
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: Tutorial and Information Requests

Postby J'Kla » Mon Jun 11, 2018 8:05 am

OK Pick the bones out of this...

All dimensions are in standard Blender Units

We start with the default blender age changing the rendering engine to Korman

We go to the global settings window and set the age ID to 4113 this is a prefix that at present has no allocation on the database so should not clash. We probably need to allocate it in the listing and probably assign the owner as Sirius.

[edit]
Delete the default camera keep the light but convert its type to Sun make this a Plasma object using the Physics selection panel.
[/edit]

We take the default cube change is name to “click” give it a material and color I chose a red (without this colour it becomes hard to see against the plane you will also create)

Size x = 1.1, y = 1.1, z = 3.0

Location x = 0.0, y = 0.0, z = 2.85

Rotation x = 0.0, y = 0.0, z = 0.0

This needs to be a plasma object again using the Physics panel.

Whilst we are there add a collision modifier Triangular mesh and set Blocks Avatars and Blocks cameras to True we do not need Terrain set.

Next we need a plane to stand on so we add Mesh Plane we give this a new material and make this a contrasting color I chose a blue.

Size x = 30, y = 30, z = 0.0

Location x = 0.0, y = 0.0, z = 0.0

Rotation x = 0.0, y = 0.0, z = 0.0

This needs to be a plasma object again using the Physics panel.

Whilst we are there add a collision modifier Triangular mesh and set Blocks Avatars, Blocks cameras and Terrain to True this time we need Terrain if we do not want to be sliding around.

We now need to add an Empty and use Plain Axes leave the default name

Location x = 0.35, y = -11.0, z = 0.0

Rotation x = 0.0, y = 0.0, z = 164

This needs to be a plasma object again using the Physics panel.

Whilst we are there add a default Spawn Point modifier.

Finally our last object add a Mesh Cube we rename this as “rgn” with the following specifications.

Size x = 10.0 y = 10.0 z = 10.0

Location x = 0.0, y = 0.0, z = 2.85

Rotation x = 0.0, y = 0.0, z = 0.0

We go to the Object panel and under Display we set the Maximum Draw Type: = Wire

This needs to be a plasma object again using the Physics panel.

Whilst we are there add a default Spawn Point modifier.

At this point we are finished modifying The Camera, Lamp, Plane and Link in Point. So I choose to hide these to make the screen less busy.

Let us start by modifying the “rgn” This is the Region that will detect the presence of our Avatar in the age.

Our first addition is going to be a “Soft Volume” Modifier and this is going to be a “Simple Soft Volume”

We are about to start playing with Nodes so save your work at this point so you can get back to this condition quickly.

Now we are going to build our Node Tree so we need to have a Node Editor Window Open and at this point use [Ctrl][Up Arrow] to make this window full screen.

On the toolbar of this window next to the Node label there are three buttons hovering over them will let you see the first is Compositing the Second (middle one) is texture and the third is Plasma and it is the plasma one you need selected.

The default name is “NodeTree” and for the present just leave that as is.

So from the toolbar select and add the following nodes

Add – Conditions – Clickable Regions Settings. In the Region: box select “reg” Set the Bounds: to “Convex Hull”
Add – Conditions – Region Trigger Settings. In the When: box select “Each Event”
Add – Conditions – Clickable. In the Clickable: box select “click” and Un-check the box Avatar facing Target:
Add – Conditions – Region Sensor. In the Region: box select “reg”
Add – Logic – Responder. Only have Detect Trigger: checked
Add – Logic – Responder State. Defalt State: should be checked
Add – Logic –Responder Command. There is nothing to change here
Add – Message – Link to Age. Type “Nexus” into the Filename: box

We are now going to link up these nodes Node Inputs are on the Left and Outputs are on the right of each box you can only connect outputs to inputs of the same colour. You make a link by dragging an output to an input dragging away from an input removes the link. Links can be made input to output but can only be unmade from the input side. There are other ways of working with links but we are keeping it simple for now.

First connect “Clickable Regions Settings” output “Satisfies” Red to the top input of “Clickable” “Avatar Inside Region” red to red.

Connect Region “Trigger Settings” to the top input of “Region Sensor” yellow to yellow.

Connect “Clickable output” “Satisfies” purple to “Responder” Top input “Condition” purple.

Connect “Region Sensor” output “Satisfies” purple to the second “Condition” input of the “Responder” node.

Now connect the green Output “Satisfies” to the green top input “Condition” on “Responder State”

Connect the puce (pink) output “Commands” to the puce input “Condition” on the “Responder Command” node

Finally connect the teal output “Message” to the corresponding top Sender connection on the “Link to Age” node.

You can drag the nodes around use the triangular twisty to collapse and expand the nodes and make and break connections until you are happy with how the node screen works.
It is worth a bit of time experimenting getting yourself familiar with the node editing screen will no doubt become useful as Korman progresses hopefully we will eventually be able to use the node screen to manipulate textures.

The Textures nodes are used a lot in the Cycles Render Engine where they are really useful.

We are now going to play with the settings you can see on the nodes.

Now we are going to attach the nodes we have created so we head back to the default input screen and we are going to do some stuff using the Physics Panel so we need to have the “reg” selected

The modifier we are going to add is going to be a Logic Modifier of the type Advanced

Into this Modifier we add two switches using the Plus symbol

The first is renamed to “Region Trigger Settings” with this selected at this point I am going to be exporting to a dirtsand shard so I need to select “Myst Online Uru Live(70)” on the Version dropdown. I had to do this twice as it closes the window on selection.

Now in the dropdown box below Version labelled Node Tree: select your NodeTree given the simplicity of this age there should only be the one.

In the next drop down box the one labelled Node Ref: select the node with the name you added to the advanced Node Modifier in this case “Region Trigger Settings”.

The second item we are going to add to the advanced modifier is renamed “Region Sensor” again I switched off the unneeded versions selected the Node Tree
In the Node Ref: box select select “Region Sensor” from the drop down.

With this done I hide the “rgn”.

Finally I select the “click” object this is our click target this is going to be the object we are going to use as a trigger to vacate our age.

This Object should already be a Plasma Object and Have a collision modifier we are now going to add a Logic Modifier of the type advanced to this object.

I am going to add 6 switches using the plus symbol as I add each I switch off the unrequired versions, and in the respective boxes choose the NodeTree and pair up the matching node with each of the six items.

1. Clickable
2. Responder
3. Responder State
4. Responder Command
5. Link to Age
6. Clickable Region Settings

Now we export as usual make sure you have at least one item selected or the export will be greyed out and in my case I export to my dat folder in Destiny.

In the original sample Sirius provided on the “Clickable” node the Avatar Facing was selected and when I tried to export I could not achieve a hot spot obviously there is some
rotation to do here and there is experimentation to be done.

But now we have some build instructions that appear to work with at least a dirtsand shard. ;)

[edit2]
Ok I changed the destination to one of my ages (Abmortoxas) one that only exists in the dat folder of Destiny this was the only change I made I left the Rules as Original Age and it worked I did not expect this in fact I tried "Owned Age" and that just plain did not work.
[/edit2]
Last edited by J'Kla on Tue Jun 12, 2018 4:12 am, edited 3 times in total.
User avatar
J'Kla
 
Posts: 1003
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

Re: Tutorial and Information Requests

Postby J'Kla » Mon Jun 11, 2018 9:45 am

Let us take this to the next stage we now have our simple age

This time we have two clickable objects a green one called "clickup" and a red one called "clickdown".

In the age we have a variable “pointcounter” with a value between 0 and 24.

The action of clicking on "clickup" increases the value of “pointcounter” by 1.

The action of clicking on "clickdown" decreases the value of “pointcounter” by 1

The start value of “”pointcounter” is 0.

If the value is 0 clicking on "clickdown" takes it to a value of 24

If the value is 24 clicking on "clickup" takes it to 0.

We also have some way in the age of showing the value of "pointcounter".
User avatar
J'Kla
 
Posts: 1003
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

Re: Tutorial and Information Requests

Postby Sirius » Mon Jun 11, 2018 11:08 am

J'Kla wrote:We go to the global settings window and set the age ID to 4113 this is a prefix that at present has no allocation on the database so should not clash

Oh, uh, yeah, I just dragged the sequence prefix bar at random. I don't know if it's worth reserving a sequence prefix for this Age as it's just an example draft, really :P
There's a lot of things I didn't bother with, including recoloring the clickable and removing useless objects like the camera. But you made sense of it pretty well.

J'Kla wrote:In the original sample Sirius provided on the “Clickable” node the Avatar Facing was selected and when I tried to export I could not achieve a hot spot obviously there is some
rotation to do here and there is experimentation to be done.

Yeah, that is optional. It forces the avatar to look in the same direction pointed by the object's green arrow to be able to click the object.

J'Kla wrote:Let us take this to the next stage we now have our simple age [...]

Theoretically this is possible with node trees, but would be such a mess you'd quickly lose track of all the nodes and objects you're dealing with.
The correct way to do this is use Python scripting to handle all the events (what should be displayed when clicking what, what happens when increasing past 24, etc) and an SDL file to store the variable, as well as correctly setting up messages so the whole thing is networked properly... Easier than a node tree, but still MUCH more complex than a simple link.

Keep in mind that node trees are unfortunately not a scripting language - they just relay the information from one node to the other, as in [input event] => [output list of things to trigger].
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: Tutorial and Information Requests

Postby J'Kla » Mon Jun 11, 2018 1:59 pm

J'Kla wrote:We go to the global settings window and set the age ID to 4113 this is a prefix that at present has no allocation on the database so should not clash

Oh, uh, yeah, I just dragged the sequence prefix bar at random. I don't know if it's worth reserving a sequence prefix for this Age as it's just an example draft, really :P
There's a lot of things I didn't bother with, including recoloring the clickable and removing useless objects like the camera. But you made sense of it pretty well.


I believe this could be useful for reserving the Sequence Prefix for a test age.

[edit]
removed default camera and changed Light to a Sun
[/edit]

J'Kla wrote:In the original sample Sirius provided on the “Clickable” node the Avatar Facing was selected and when I tried to export I could not achieve a hot spot obviously there is some
rotation to do here and there is experimentation to be done.

Yeah, that is optional. It forces the avatar to look in the same direction pointed by the object's green arrow to be able to click the object.


It is handy to know what I need to change to rotate but before I switched off the Avatar Facing I could not find the hot spot in any direction.


J'Kla wrote:Let us take this to the next stage we now have our simple age [...]

Theoretically this is possible with node trees, but would be such a mess you'd quickly lose track of all the nodes and objects you're dealing with.
The correct way to do this is use Python scripting to handle all the events (what should be displayed when clicking what, what happens when increasing past 24, etc) and an SDL file to store the variable, as well as correctly setting up messages so the whole thing is networked properly... Easier than a node tree, but still MUCH more complex than a simple link.

Keep in mind that node trees are unfortunately not a scripting language - they just relay the information from one node to the other, as in [input event] => [output list of things to trigger].


I am prepared to experiment with creative naming to track multiple nodes and objects within an age. If you look at some of my ages on Deep Island you can see some of the complexity I have already dealt with. Enobmort, Cidoirep, Nilodnam and Noidrocca

At present there is no information on how to do the Python Scripting and for simple ages a couple of node trees at least I will be able to add some puzzle functionality.

I am basically looking to do anything other than an age link.

There can't be any harm in producing methods of learning ways of adding functionality to fan ages by any method.

Once we have some Python Methods we can document them as a learning resource.

As for Complexity in my replacement for Enobmort that's called Abmortoxas that's only available as a local build for dirtsand shards like Destiny there are 28 Journals and within them a content of over 126,750 Words
User avatar
J'Kla
 
Posts: 1003
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

PreviousNext

Return to Building

Who is online

Users browsing this forum: No registered users and 12 guests