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 Sirius » Tue Jun 12, 2018 12:24 am

Alright. You'll need to make 1 duplicate object of your clickup and clickdown objects per possibility, so 2x24.
Each duplicate will trigger a different set of Responders, which will enable or disable other objects accordingly.
For instance, when clicking the 10th clickup, you disable clickup 10 and clickdown 10, enable clickup 11 and clickdown 11, and enable an extra object (like a counter light).
To toggle objects, you can use the "enable/disable" message in the picture below (the Responder command box must be attached to a Responder State).

You'll see however, that you'll end up with a LOT of nodes all over the place.
Attachments
enableobj.jpg
enableobj.jpg (19.39 KiB) Viewed 5782 times
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: Tutorial and Information Requests

Postby J'Kla » Tue Jun 12, 2018 2:00 am

NOTE: This method described here retains our Prefix Sequence of 4113 so you need to go to your test dat folder and remove your LinkToAge additions or the Prefix Sequence Clash will cause failure.

Just saying.

Description: Magic Ball

Saved LinkToAge.blend as MagicBall.blend

Added a new Object

Mesh icosphere

Name: Ball

Size x = 1, y = 1, z = 1 Location x = 0, y = 0, z = 7

Plasma Object = True

Colour: = New Material = White

On the Node Panel Deleted “Node Link to Age”

Add – Message – Enable/Disable
click selected visibility select Cmd: = "Enable"
linked "Responder Command" output to "Enable/Disable" input

Add – Message – Send To Object
click drop down box and selected “Ball”
linked "Enable/Disable" output to "Send To Object" top message input

Retuned to 3D Window Panel and selected "click" object

In the Physics Panel click Link to Age and click Minus button to remove this item and clicked Plus button twice

Rename first new item as “Enable/Disable” Set Version to Myst Online: Uru Live(70) only

Click and select Node Tree: as “NodeTree”

Click and select Node ref: as “Enable/Disable”


Rename second new item as “Send to Object” Set Version to “Myst Online: Uru Live(70)” only

Click and select Node Tree: as “NodeTree”

Click and select Node ref: as “Send To Object”

Exported to dirtsand test dat folder.


What Happened.:
Linked to age “MagicBall”
There was the floating ball as expected clicked my click object and the ball dropped and embedded in the floor. Linked back to relto and returned to age “MagicBall” the ball was floating again and the click performed the action where it embedded in the floor.

Feedback:
Unexpected but satisfactory result.
I was expecting the Ball to possibly disappear but I at least have a new action to play with. ;)

[edit]
On Node Panel I Changed "Enable/Disable" Cmd: to Disable

This time my Ball disappeared.

Relto and return takes a long time to get back to the MagicBall age but it resets. However using the Plasma Console just to "net.linktoage magicball" after the click relinks quickly and resets the ball.

Experimentation continues I will now add a second click object and try and make my MagicBall Toggle Appear/Disappear
[/edit]
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 » Tue Jun 12, 2018 3:06 am

Wow!

Duplicated click object and renamed the object as “secondclick“

Dragged it to x = -3

Changed the colour to a new material = Green

On the Node panel used the Plus to create a new NodeTree and re-named it “NodeTree2”

In the NodeTree click [a] to select all [Ctrl][c] to copy switch to NodeTree2 [Ctrl][v] to paste

Note you may need to scroll out to find it!

On NodeTree2

You need to change the clickable selection to “secondclick”

Change Enable/Disable node to “Enable”

Note I have re used the Avatar detection Region "reg" because both clickables are inside.

Go back to the 3D panel and with the secondclick selected choose the Physics Panel

All of the Modifiers should have been duplicated so selecting each of Items in the Advanced Modifier

Change the Node Tree: selection to be “NodeTree2”

Now Export.

Testing Results:
The red clickable made the ball disappear the green clickable made the ball reappear embedded in the floor?
Thereafter red and green toggled the ball on and off embedded in the floor.

I consider this a success although I have yet to figure out why it ends up embedded in the floor. :)

[edit]
Should this move to a new thread because this has stopped being a request and started to become research/lessons on Node experiments in Korman?

Is there anyone other than me finding this useful?

Also a first attempt at attaching an upload file.
[/edit]
Attachments
MagicBall.rar
Attached Blend File for the interested
(79.97 KiB) Downloaded 306 times
User avatar
J'Kla
 
Posts: 1003
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

Re: Tutorial and Information Requests

Postby Deledrius » Sat Jun 16, 2018 9:55 pm

J'Kla wrote:
Deledrius wrote:xStandardDoor is probably the right script. Make a PFM node, load that script, and then just hook up the empty slots.

There are a lot of really handy pre-made scripts that do most of the work for you, you just plug in the clickables, the regions, and the animation responders for the door. I would suggest looking through the available scripts (especially the ones starting with x, since those are the global convenience scripts) and finding the ones that apply to what you want to do.


I found the scripts so this is now a straight request for a Tutorial on how to use them.

What is a PFM node?


Sorry it's taken so long, but I've published the completely revamped and updated wiki reference page for the Global Python Scripts. There is surely more information that could be added, but as an initial reference I hope it helps reveal what's available, and provides at least a basic idea of what each one does. Examples and specific tutorials may be added.

As for the Python File Mod (PFM), check out that wiki link for the information Doobes has provided. In order to use the global scripts, you will want to create a PFM, select the script, and attach the appropriate nodes for each parameter with the values you desire. If the PFM uses SDL (most do), you will need to add or create an SDL file for your Age (this must be done manually in Korman currently, and PyPRP always) and include the variable(s) you specify in the attribute(s) for the PFM. In the absence of more detailed tutorials, looking at the game's existing SDL files may help.
User avatar
Deledrius
Gehn Shard Admin
 
Posts: 1377
Joined: Mon Oct 01, 2007 1:21 pm

Re: Tutorial and Information Requests

Postby Deledrius » Sat Jun 16, 2018 10:39 pm

Sirius wrote: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.


Very good points. We've talked about the need to make some version-agnostic wrapper scripts to accomplish this sort of thing (and a few others). Another thing on the big long list of things that would make everyone's lives easier, but hasn't been done yet.

Sirius wrote: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.

With some new functionality that Hoikas is working on, this may become easier for us to enable soon, as well as add the above-mentioned custom scripts to a game's installation or an export archive.

Sirius wrote:
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

It really isn't worth reserving, as it's not a standalone Age, and isn't meant to be used that way.

J'Kla wrote:I believe this could be useful for reserving the Sequence Prefix for a test age.


Not really. One thing to keep in mind is that Sequence Prefixes are relevant only to a specific server/installation. The reserved numbers on the wiki are great to make sure no one's going to release an Age with the same number as someone else, but "reserving" it is really not especially useful in general and just ends up with a lot of dead numbers. Additionally, it really only matters for Ages that are on Deep Island or downloaded for offline play through something like ULM or Drizzle. Any server is likely to maintain its own list, and will convert incoming Ages to use an assigned Sequence Prefix (this is what we do with Fan Ages we add to Gehn).

Unless I misunderstand, this .blend file provided by Sirius is simply an example of a specific set of components. The only thing you need to worry about with the sequence prefix is that it doesn't collide with anything in your testing installation, and even then only if you plan to explore his .blend file exported for play in-game. I didn't get the impression that this was the intent, so there's certainly no need to reserve it globally for a file that isn't going to be distributed as an Age on the aforementioned platforms.

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

I provisionally disagree. While knowing this information is useful and not harmful on its own, if you use linking methods that are known to be destructive you can cause issues not only for yourself but also for other people down the road. Don't be too focused on the ends justifying the means, even though it's tempting since Korman is still in development and not everything is fully implemented. Using the Linking Manager script that Sirius mentioned would be a much better option if you need to get going right now.
User avatar
Deledrius
Gehn Shard Admin
 
Posts: 1377
Joined: Mon Oct 01, 2007 1:21 pm

Re: Tutorial and Information Requests

Postby Sirius » Sun Jun 17, 2018 2:30 am

Deledrius wrote:Sorry it's taken so long, but I've published the completely revamped and updated wiki reference page for the Global Python Scripts.

Wow, that's what I was thinking about but was too lazy to do ! Nice job !

(I was actually thinking about writing a tutorial that would cover how to write and maintain SDLs -including the version number bump you mentioned in the other topic-, how to use the global scripts, and how to setup those in NodeTrees to achieve various effects. But that would take some time and I haven't done this in Korman before, so I didn't want to rush into it)

Deledrius wrote:With some new functionality that Hoikas is working on, this may become easier for us to enable soon, as well as add the above-mentioned custom scripts to a game's installation or an export archive.

Yes ! I saw that yesterday as I'm subscribed to the Github. Neat ! Having all from within Blender sounds cool.
Would that include a foolproof GUI editor for SDLs ? Something that wouldn't require text and bump the version number automatically.
This is low priority though. SDLs aren't hard to do by hand.

Heh. When I think of all the Fan-Ages we have, and how many of them have almost no logic in them... I'm glad we had PyPRP at that time, but I'm even more delighted that we can switch to Korman now.
Now that I think about it, Korman will soon be just as efficient as the Max plugin... Max probably has more Plasma components available, but Korman probably wins for simplicity.
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: Tutorial and Information Requests

Postby Aloys » Sun Jun 17, 2018 3:48 pm

Sirius wrote:When I think of all the Fan-Ages we have, and how many of them have almost no logic in them...

It's because it's hard. :o Or because we are lazy. >_> (maybe a bit of both)
I know I gave up making Ages because adding decent interactivy to them through AlcScript etc was too convoluted.. I just read all the releases note for all 6 versions of Korman and it looks really neat! :)
User avatar
Aloys
 
Posts: 1968
Joined: Sun Oct 21, 2007 7:57 pm
Location: France (GMT +1)

Re: Tutorial and Information Requests

Postby Tweek » Mon Jun 18, 2018 12:51 am

Yep that's why most of my Ages are pretty but have no interactive elements, it's a pain in the neck to implement.
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 » Mon Jun 18, 2018 1:52 am

Deledrius wrote:As for the Python File Mod (PFM), check out that wiki link for the information Doobes has provided. In order to use the global scripts, you will want to create a PFM, select the script, and attach the appropriate nodes for each parameter with the values you desire. If the PFM uses SDL (most do), you will need to add or create an SDL file for your Age (this must be done manually in Korman currently, and PyPRP always) and include the variable(s) you specify in the attribute(s) for the PFM. In the absence of more detailed tutorials, looking at the game's existing SDL files may help.


Sorry to keep harping on about this But you keep using PFM Nodes and even following the link I find no Reference to PFM there is Python File Nodes which contracts down to PFN please remember one of my primary motives is to make all of this Noob proof and strange three letter acronyms have been the scourge of the MS-DOS universe since the days of MS-DOS 3.x and its 8.3 file naming. :)

So please Yes or No are "PFM Nodes" Python File Nodes? ;)

Just as an aside even the Wiki refers to these as Korman "Python File Mod logic nodes" in the script that then links to a page Titled "Python Nodes" please stop confusing Noob's and start calling them Korman "Python Nodes" and lets get rid of the secret language.
User avatar
J'Kla
 
Posts: 1003
Joined: Wed Feb 20, 2008 3:16 pm
Location: Geordieland UK

Re: Tutorial and Information Requests

Postby Deledrius » Mon Jun 18, 2018 9:08 am

It's not a secret language and I don't appreciate the accusatory tone.


The context here is that the Python File Modifier is a modifier much like any other modifier, and it can be applied to objects in Plasma.

A Python File Node is a node in the node tree options of Korman that allows you to apply a Python File Modifier as part of a node tree.

Two different contexts, two slightly different names.

A noob won't need to know or care about the difference, just follow tutorials.

Someone who isn't a noob will make the inference that these things are related, and perhaps that one is a specific instance of the other, or will be able to respectfully ask questions.
User avatar
Deledrius
Gehn Shard Admin
 
Posts: 1377
Joined: Mon Oct 01, 2007 1:21 pm

PreviousNext

Return to Building

Who is online

Users browsing this forum: No registered users and 4 guests