A thought on articy object IDs

Fri 1. Dec 2017, 10:02

I would like to share our thoughts and suggestions regarding the articy Object ID(s) and its format used in UE4 articy plugin. The suggestions are based on our workflow so other developers or Nevigo might have different ideas.

The object ID in articy:draft is expressed in HEX format. On the other hand, the main input for the Object ID in the blueprint nodes is an integer split into Low and Hight parts. My guess is that the reason for splitting the ID in two parts is a shorter length of the integer format used by UE4 in blueprints.
01_LowHigh.jpg
01_LowHigh.jpg (19.22 KiB) Viewed 27461 times


When we test our dialogues and we need to temporarily hard-code the starting node, we use the HEX Object ID copied from the articy:draft Object ID field:
02_HEX_ID.jpg
02_HEX_ID.jpg (11.91 KiB) Viewed 27461 times

Then we use something like this to enter the Object ID:
03_InsertID.jpg
03_InsertID.jpg (20.95 KiB) Viewed 27461 times


When we want to cross-check that our blueprint code is retuning the proper Object ID, we would get it in the HEX format:
05_GetHEX.jpg
05_GetHEX.jpg (15.73 KiB) Viewed 27461 times

However, there is no direct way to search in articy:draft by the Object ID in the HEX format.*
*Correction: There is a way, see the answer from Nico below.

Suggestion No. 1:
It would be great to be able to paste the HEX Object ID directly into the Hex field in the e.g. ToArticyId function like in the variable setter:
04_InputField.jpg
04_InputField.jpg (15.2 KiB) Viewed 27461 times


Suggestion No. 2:
We would like to be able to search by Object ID in the articy:draft. It is preferred over the search by Technical name due to the uniqueness of the Object IDs. At this moment, the articy:draft returns No matches found message during the search.

Suggestion No. 3:
The Object IDs in articy:draft in the object properties (e.g. under the General tab) show an extra zero after the “x”, e.g. “0x010000010000042A”. On the other hand, the UE4 plugin and JSON export file show “0x10000010000042A”. This can cause potential issues when cross-checking using a text-based search by the Object ID. Therefore, eliminating the extra zero in the Object ID field under the e.g. General tab in the articy:draft would eliminate some troubles or an extra work.

Suggestion No. 4:
The ToHexString function in the blueprints returns lowercase Object IDs, e.g. 0x10000010000042a instead of 0x10000010000042A. Unifying the format might eliminate some potential issues for some developers.

Thank you for getting all the way to the end of this post :) . Any feedback is welcome, from Nevigo or from the UE4 plugin/articy:draft users.
Last edited by unreal_dev on Thu 7. Dec 2017, 11:14, edited 1 time in total.
unreal_dev
 
Posts: 9
Joined: Sun 20. Aug 2017, 09:45

Re: A thought on articy object IDs

Fri 1. Dec 2017, 13:06

Hi unreal_dev,

My guess is that the reason for splitting the ID in two parts is a shorter length of the integer format used by UE4 in blueprints.


Thats exactly the reason. Articy uses 64bit integers, but it seems unreal and especially blueprint doesn't like 64bit integers, so we split them into a high and low 32bit integers. We just didn't create a convenience method yet to directly use a hex string for GetObject for example or make dealing with the id a bit easier in general.

However, there is no direct way to search in articy:draft by the Object ID in the HEX format.


There actually is, but its not as convenient or intuitive:

search_by_query.png
search_by_query.png (17.66 KiB) Viewed 27454 times


As you see you need to use the query feature of the search, the "default" search only looks in text.

Suggestion No. 1:
It would be great to be able to paste the HEX Object ID directly into the Hex field in the e.g. ToArticyId function like in the variable setter:


Defintely! I hope that i will get a bit more time next year to add those little convenience methods. But i'm not so familiar how to "configure" the look of the blueprint nodes to provide more convenience.

Suggestion No. 3: [...] Therefore, eliminating the extra zero in the Object ID field under the e.g. General tab in the articy:draft would eliminate some troubles or an extra work.


Unfortunately we can't change that in articy:draft just for unreal, but maybe we can change that in the way you get the id from the object in unreal itself so its consistent across both applications.

Thank you for getting all the way to the end of this post


I make a note of your feature requests. Thank you for taking the time to post such an elaborate thread with your opinions and ideas, very much appreciated!

Best regards

Nico
Nico Probst
Senior Software Engineer | Articy | LinkedIn
User avatar
[Articy] Nico Probst
Articy Staff
Articy Staff
 
Posts: 217
Joined: Wed 23. Nov 2011, 09:45
Location: Bochum

Re: A thought on articy object IDs

Thu 7. Dec 2017, 11:16

Thank you for the answers, Nico!

I made a correction in my original post regarding the search by HEX ID.
unreal_dev
 
Posts: 9
Joined: Sun 20. Aug 2017, 09:45

Return to articy:draft Unreal Importer

Who is online

Users browsing this forum: No registered users and 1 guest

Who We Are
Contact Us
Social Links