iClone 7.5 (with new Python APIs ) is Available!


https://forum.reallusion.com/Topic399188.aspx
Print Topic | Close Window

By bennydee - Last Year
please I need a developer to create a plugin for volumentric light system and a shader that can enable realtime subsurface scattering and also a more accurate lightning system ( like unreal engine). I am willing and ready to pay. thanks.
By RobertoColombo - Last Year
My version starts fine... but I do not like that this DEVELOPMENT version has completely overwritten the stable 7.41.
That's not what i wanted when I downloaded and run it.
Now if I want to create some scene in parallel with Python development I am not sure whether any project created with this temporary version will ever be recgnized by a stable one
RL should have create a standalone .exe, which does not install anything, like was done in the earlier stages of IC7 Beta testing.

  Roberto
By The-any-Key - Last Year
luke (RL) (2/6/2019)
The-any-Key (2/4/2019)
Some examples to get and set the rotation quaternions for objects in local and world (or a way to transform world to local and set it or vice versa).

Also the API update gives me this error when trying to start iClone
https://forum.reallusion.com/uploads/images/9464a89a-72d2-4081-a59d-8179.png
Translation: Could not find the address (memory pointer) to start the process.


Could you send me the dump file? I could check it when I back from lunar new year



After I uninstalled iClone and then re-installed it. The dev version installs and works fine :-)
By videodv - Last Year
How to select different functions when pressing a button or other widgets in a basic dialog box.
By SeanMac - Last Year
Hey! It's entertainment!
By Delerna - 2 Years Ago
By the way. Everything you wrote in that post is going to be useful to assist me getting this new iClone API clearer in my head.

Edit
Also read some of RobertoColombo's posts which are also going to help me get going with this.
Good to see all these assistable comments being made
By jlittle - 2 Years Ago
I realize that not everyone attempting to use Python and the RL API is a programmer so here are some thoughts for you:

When creating your folder names under "Bin64\OpenPlugin\[yourapiname]" keep in mind that this is probably where everybody's project folders will be placed when you download/purchase them in the future so be sure to create a unique name for your folder so that it hopefully will not conflict with other dev's folder names. You should also put all your files/modules in the same folder for that project.

You should always put in your main.py file a comment line that indicates the version of your code. When you have many users of your code, knowing what version they are using helps in tracking down issues.
I also put on each versions comment line the date of that version and what the changes were. Typically you will change a version number after each release.
Ex:
#V1.0.0 12/23/18 Created
#V1.0.1 12/27/18 Fixed .....

The version number could also be displayed in an "About" menu selection, if using menus, or just displayed in one of your panels somewhere.
You could also create a text file in your folder with the version info.
Keep in mind that not everyone using your project will be savy about how to find the version info so try to make it easy for them.

Since each folder has only one (1) main.py file, you will need multiple folders for multiple projects or you can provide a menu of your multiple projects/functions and contain all the files for those functions in one folder.

Yes, you must "import" into a file any external files that contain items that are referenced from that file.
The "import" makes visible the items in the external file to the file importing it. This is a standard practice.

Other programming standards for Python are as follows:

Naming

  • Variables, functions, methods, packages, modules
    • lower_case_with_underscores
  • Classes and Exceptions
    • CapWords
  • Protected methods and internal functions
    • _single_leading_underscore(self, ...)
  • Private methods
    • __double_leading_underscore(self, ...)
  • Constants
    • ALL_CAPS_WITH_UNDERSCORES
General Naming Guidelines

Avoid one-letter variables (esp. l, O, I).

Exception: In very short blocks, when the meaning is clearly visible from the immediate context


Indentation

Use 4 spaces--never tabs. Enough said.

Imports

Import entire modules instead of individual symbols within a module. For example, for a top-level module canteen that has a file canteen/sessions.py,

Yes

import canteenimport canteen.sessionsfrom canteen import sessions

No

from canteen import get_user  # Symbol from canteen/__init__.pyfrom canteen.sessions import get_session  # Symbol from canteen/sessions.py

Exception: For third-party code where documentation explicitly says to import individual symbols.


Put all imports at the top of the page with three sections, each separated by a blank line, in this order:
  1. System imports
  2. Third-party imports
  3. Local source tree imports

Rationale: Makes it clear where each module is coming from.


On comments

Use them sparingly. Prefer code readability to writing a lot of comments. Often, small methods are more effective than comments.


For more info on Python Style see HERE and/or HERE

Jeff
By The-any-Key - Last Year
Some examples to get and set the rotation quaternions for objects in local and world (or a way to transform world to local and set it or vice versa).

Also the API update gives me this error when trying to start iClone
https://forum.reallusion.com/uploads/images/9464a89a-72d2-4081-a59d-8179.png
Translation: Could not find the address (memory pointer) to start the process.
By Kelleytoons - Last Year
It's a prop (only the "standard" avatars are avatars - even including other bipeds).
By The-any-Key - Last Year
Yep.
Got the same issue with the non human avatars. (tested the horse) No skin or motion bones from the API. Make sure you send a bug report in the feedback for that.
By bennydee - Last Year
please I need a developer to create a plugin for volumentric light system and a shader that can enable realtime subsurface scattering and also a more accurate lightning system ( like unreal engine). I am willing and ready to pay. thanks.
By Zeronimo - Last Year
Test of experimental Python API (RLPy.RILight example)

I just tested the example script provided in the following page:
http://manual.reallusion.com/iClone/script/python/class_r_l_py_1_1_r_i_light.html

--- the script
https://forum.reallusion.com/uploads/images/73e11c34-4c18-4896-8de7-2ef9.jpg

My initial project:
https://forum.reallusion.com/uploads/images/8ea908a9-78e7-4d45-bc9c-ae97.jpg

the result obtained after execution of the script:
https://forum.reallusion.com/uploads/images/a38119a1-4473-4ad4-8a2d-9516.jpg


we notice that the spotlight has been moved to the coordinate provided by the script, but the GIZMO has remained at the old coordinates of the spotlight, and that the Transform  coordinate X, Y, Z of the iClone MODIFY panel are not updated.

By RobertoColombo - Last Year
Thanks Luke.
Right now I had already installed the DEVELOPMENT icLone, so the stable one got overwritten :-(
Actually I am not clear what do you mean with copying the whole directory...  would like to not touch the stable version but rather having teh development one that sits in a user-chosen place, with no installer, so that we can easily remove.

Another point: ff possible, in a future patch, can you add an API to terminate the plugin script, without closing iClone, so that we can setup a robust error management ?
I tried different ways, but so far with no luck...

Regards

  Roberto
By Kelleytoons - Last Year
videodv (1/5/2019)
How to change the Transition Curve of a material.


You can't do this (yet).  You can fake a step transition, though, quite easily.

By The-any-Key - Last Year
How to use RLPy.RGlobal.TrialVersionRemainingDays(strBinPath,uProductID,strProductFold) for the marketplace.
By RobertoColombo - 2 Years Ago
Hi,

one thing that would be extremely useful is the possibility to access the mesh data for the various assets (props, terrain, etc.), i.e. vertex coordinates.
For example, if we develop some tools to move an asset, eventually should be possible to avoid intersections with teh terrain or other objects.

In addition, I wish you can have a look at the thread here: https://forum.reallusion.com/399142/Python-FAQ-Tracker
There are several quetsions pointing to gaps and things not clear in the documentation.

Thanks
Regards

  Roberto
By Kelleytoons - 2 Years Ago
jlittle (12/27/2018)
I

Use 4 spaces--never tabs. Enough said.
Jeff



If you are using Notepad++ (and I note that RL recommends this, which is excellent advice -- I've used it for many, many years now) you can make your tabs produce spaces (if that makes sense).  I like it because you *can* use tabs (pressing the tab key just generates the appropriate spaces).

By Kelleytoons - Last Year
We won't get any more answers for another 10 days or so, so be patient.

(iClone starts for me just fine, but it looks like you are using the German version so who knows?)
By dogged2003 - Last Year
This is avatar:
https://forum.reallusion.com/uploads/images/b320f35e-0d4f-462e-baa8-d1b1.jpg


Pyton don't see the bones:
import RLPy
#-- Get Characters from current scene --#
avatar_list = RLPy.RScene.GetAvatars()
print("is avatars:")
print(len(avatar_list))
#-- Get First Character --#
avatar = avatar_list[0]
print("avatar Name, ID: ")
print(avatar.GetName())
print(avatar.GetID())
#-- Get Skin Bone Data --#
skin_bone = avatar.GetSkeletonComponent().GetSkinBones()
print("skin_bone")
print(skin_bone)
print("skin_bone size: ")
print(skin_bone.size())
#-- Get Motion Bone Data --#
motion_bone = avatar.GetSkeletonComponent().GetMotionBones()
print("motion_bone")
print(motion_bone)
print("motion_bone size: ")
print(motion_bone.size())
for bone in skin_bone:
    print ("Skin Bone: ")
    print(bone.GetName())
for bone in motion_bone:
    print ("Motion Bone: ")
    print(bone.GetName())
robby = RLPy.RScene.FindObject(RLPy.EObjectType_Prop, "Arabian_Horse")
print("robby")
print(robby)

By The-any-Key - Last Year
I should mention I am mostly interested in get/set local and world quaternions for bones in avatars.
By luke (RL) - Last Year
zeronimo (2/5/2019)
YES, after doing PLAY the GIZMO and the transform coordinates are updated.
What disturbed me was that the color of the light and the multiplier was up to date but not the coordinates of transform before the PLAY.


Some UI update will have the performance issue so we disable that, and we will give you a function to force UI update in further patch, however the data already set down no matter the UI show up or not.
By Delerna - 2 Years Ago
Thank you jlittle.
The way you explained how to setup method1 projects that automatically loads when iClone gets loaded has cleared the incorrect thinking on this in my head and now it makes absolute sense for me.
Unfortunately my brain has started finding it difficult to start understanding new things unless it is explained clearly. Reading the explanation in iClone Python API tutorial I found confusing and I made an incorrect statement on only 1 being able to be created. But now, after reading your explanation even this explanation also makes absolute sense. It didn't when I first read it but it does now. I don't know why it didn't when I first read it......just my brain getting a bit lost on it I guess.

Thanks for your post

By RobertoColombo - Last Year
I had the same issue, reported in the Forum some time ago: the XYZ coordinates were not updated in real time, but rather only after I pressed PLAY.
RL mentioned that this is to guarantee a certain level of performance, which might sounds ok for certain plug-ins, which algorithmically create a fixed situation, i.e., not controllable in real-time, but it is surely not ok if we want to try to create real-time controllers.
Just a simple example/challenge for who wants to take it: moving a prop in real-time with the mouse and creating the prop keys accordingly (kind of old iClone "Director Mode" or also the Physics Toolbox, regrettably dismissed by RL).
Creating teh jkeys using a system timer is surely possible but... how to visualize the result in real-time if the GUI updates only after we press PLAY ?

Cheers

  Roberto
By The-any-Key - Last Year
Sample how to replace old data in transform key.

When I run this once, it will add a key and the value I need

object.GetControl("Transform").SetData("Rotation/RotationX", timemark, RLPy.RVariant(value))

But if I run it again with a different value, it wont change the key rotation to the new value, the old value remain.
Is that intended or is it a bug. Anyway, I would like an example how to replace a transform value in an existing key.

EDIT:
Found a way by using transform_control.SetValue. But there seem to be a bug in the GetValue and SetValue. Because I get half the actual value. And set the double of the input value. Reported this on the feedback tracker however.
EDIT 2:
Sorry, my bad. The R().x (y,z) return the values from the matrix, not the local settings. Crazy
EDIT 3:
Sorry again:

object.GetControl("Transform").SetData("Rotation/RotationX", timemark, RLPy.RVariant(value))

Works fine and will replace old key values. It was just a combination with the half values issue and SetData. It works fine, if you use the correct values 
Ignore this request. 
Whistling
By RobertoColombo - 2 Years Ago
main.py issue is now solved.

Two more lines of codes are needed, otherwise iClone is not able to see the elements within PySide2
The additional code is:

from PySide2.QtWidgets import QMainWindow, QMenu
from PySide2.shiboken2 import wrapInstance

The same issue is the root cause of the problem i experienced when trying to execute a function located into another file.
By adding an explicit import form that file, the function is now visible, that is:

module2.py comtains

def Test():
    print("Some text...")

module1.py contains

import RLPy
import module2
from module2 import Test
def run_script():
    Test()


adding the code "from module2 import Test" makes Test() visible to module1
By Zeronimo - Last Year
Tony (RL) (7/5/2019)
Dear Developers,

iClone Developer Edition 0.7.4 is Available Now!

Please download from HERE


Thanks


I do not understand, the python version is marked: Python_API_074 FOR ICLONE_75_BETA
but iclone 7.5 has not been distributed yet.
I only have the standard version
and the development version 7.41.2529.1
What should be done :
- Wait for the release of ICLONE 7.5
- install it on the standard or development version and how ?
By ryobg - Last Year
Please, pay attention to the online documentation, its pretty much broken:
http://manual.reallusion.com/iClone/script/python/index.html
For example navigate to anything under Modules -> System
By The-any-Key - Last Year
dogged2003 (1/13/2019)
Not prop, like the horse.


Did you try his code :-)

Currently these are the types in iClone:

EObjectType_Object
EObjectType_Avatar
EObjectType_Prop  <<< Horse probably here
EObjectType_Camera
EObjectType_Particle
EObjectType_Light
EObjectType_SpotLight
EObjectType_PointLight
EObjectType_DirectionalLight
By Kelleytoons - Last Year
For some reason the UI doesn't update properly when running Python -- I don't know if that will ever be fixed, although the key guy here says you can put a hide/unhide object in your code so it gets fixed.  Kind of.  But it IS a bit disconcerting.
By luke (RL) - 2 Years Ago
Dear Developers,

I'm Luke from Reallusion. I'm in charge of this Python project since the end of last year. 
It's not easy to have the scripting ability in iClone, so even we knew there are so many API not available in the first version, we still insist to release to the public and hope to learn from your requests and needs to help us to enhance that.
Except for the API itself, we also understand that good document will help you to get into the swing of it, so this thread we want to gather all your samples request and our team will do it then upload to the GitHub for your reference. So please don't hesitate to offer your request here. 
Please note that in the first run, our team only can support the simple sample requests, such as how to get all the keys from the prop or how to get the selected object, etc.
Let's do this! We hope this Python API can extend the ability of iClone and you folks can do various plugins to make a difference of iClone. thanks

last thread update (https://forum.reallusion.com/FindPost403996.aspx)

==================== Sample Request ====================
Kelley - How to get all the keys from Prop. (uploaded 181227)
Kelley - How to get the object selected. (uploaded 181227)
Kelley - How to get the parent object is my other main request. ( 0.7.1 ) 
Kelley - How to delete key. (uploaded 181228)
RobertoColombo - How to get mesh data. ( we can't do it now, update to our API roadmap ) 
RobertoColombo - Just to give an example: ShowMessageBox(), and the detailed description of parameters. (uploaded 181228)
videodv - How to change the Transition Curve of a material. ( 0.7.1 ) 
dogged2003 - How to get the bones of a non-human avatar? And manage them? ( we can't do it now, update to our API roadmap ) 
jlittle - Need example of AddUVData where one adds an image file (i.e. jpg) to one of the texture channels.
jlittle - How to determine a materials shader type (PBR or Traditional). ( we can't do it now, update to our API roadmap ) 
jlittle - How to get/set material transition keys. ( 0.7.1 ) 
The-any-Key - Some examples to get and set the rotation quaternions for objects in the local and world (or a way to transform the world to local and set it or vice versa).

============ New Patch Released - iClone 7.5 (7/25/2019) ============

Please check out the Release Note to know more about new Python APIs.


============ New Patch Released - 0.7.4 (7/5/2019) ============

Download Link
 ( iClone Developer Edition )
Add:
  • Viseme related API.
  • HIK Effector related API.
Fix:
  • Retrieved prop quaternion not converting to degrees.

============ New Patch Released - 0.7.2 (2/27/2019) ============

Download Link ( iClone Developer Edition )
This version only for Python Development that contains functions that may not behave properly. There are potential risks to using this software beyond its intended purposes. By continuing to use this software, you are fully aware of the potential risks and agree to take responsibility.

Add APIs:
1. Edit & Delete the viseme key
2. Create viseme clip from audio file
3. Clone objects
4. Load file will return the object handle (LoadObject)
5. Set or cancel dummy option (SetDummy, IsDummy)

============ Previous Patch Released - 0.7.1 (2/1/2019) ============
Add APIs:
1. Add Viseme ( Edit & Delete will be in next patch )
2. Load texture file to material channel
3. Attach and Link
4. Direct control Face key
5. Beable to set transition curve of material
6. Set object name
7. Get bounding box information from object
8. Set pivot
Fix:
1. GetMeshNames() will return wrong name, so the GetMaterialNames() will failed.

By RobertoColombo - 2 Years Ago
The "main" problem I have right now is exactly... how to run the "main.py" script at the startup.
I created a new folder under Bin64, named OpenPlugin
Put 'main.py' in there, with teh code provided in the doc.

Nothing happens...

So, I changed the function name to run_script() and manually loaded it.
The script generates this error in the console window: 
   <class 'AttributeError'>, File: E:/WorkingArea/iClone/Python/Main.py, Line: 7

corresponding to the code:

   ic_dlg = PySide2.shiboken2.wrapInstance(int(RLPy.RUi.GetMainWindow()), PySide2.QtWidgets.QMainWindow)
By The-any-Key - Last Year
A more commented version how to use the mocap manager. The example https://github.com/reallusion/iClone/tree/master/HandGesturesPuppeteering is not commented and is mixed with other features in the API. It would be nice to only cover the mocap manager and how to use it.
By Kelleytoons - Last Year
Material transition keys can't be set.  And neither can we load an image file in.  Both of those things are coming (hopefully soon).
By The-any-Key - Last Year
As the developer version is a stand alone version. You should just be able to install it. It won't overwrite the existing standard version.

My guess is that the developer version may have some new features from the next release of iclone.
By dogged2003 - Last Year
How to get the bones of a non-human avatar? And manage them?
So I get nothing:

import math, RLPy

#-- Get Characters from current scene --#
avatar_list = RLPy.RScene.GetAvatars()
#-- Get First Character --#
avatar = avatar_list[0]
#-- Get Skin Bone Data --#
skin_bone = avatar.GetSkeletonComponent().GetSkinBones()
#-- Get Motion Bone Data --#
motion_bone = avatar.GetSkeletonComponent().GetMotionBones()

for bone in skin_bone:
    print ("Skin Bone: " + bone.GetName())

for bone in motion_bone:
    print ("Motion Bone: " + bone.GetName())
By bennydee - Last Year
please I need a developer to create a plugin for volumentric light system and a shader that can enable realtime subsurface scattering and also a more accurate lightning system ( like unreal engine). I am willing and ready to pay. thanks.
By Kelleytoons - Last Year
Just for fun did you try pressing play to see if things would get updated? (and/or hiding/unhiding the spotlight)
By Zeronimo - Last Year
luke (RL) (2/6/2019)
zeronimo (2/5/2019)
YES, after doing PLAY the GIZMO and the transform coordinates are updated.
What disturbed me was that the color of the light and the multiplier was up to date but not the coordinates of transform before the PLAY.


Some UI update will have the performance issue so we disable that, and we will give you a function to force UI update in further patch, however the data already set down no matter the UI show up or not.


thanks for these precision Luke

By RobertoColombo - 2 Years Ago
Hi,

I am not sure how to start the main,py script when iClone is launched.
1. I created a new folder named "OpenPlugin" under Bin64
2. I created main.py in OpenPlugin folder and copy-pasted the code provided in the doc.
3. Started iClone... nothing happens...

Any idea about what could be wrong ?

  Roberto
By luke (RL) - Last Year
bennydee (1/16/2019)
please I need a developer to create a plugin for volumentric light system and a shader that can enable realtime subsurface scattering and also a more accurate lightning system ( like unreal engine). I am willing and ready to pay. thanks.

Sorry, I think no one can do this in the current version, because python only can do what iClone can ...
By SeanMac - Last Year
Kelleytoons (2/4/2019)
We won't get any more answers for another 10 days or so, so be patient.

(iClone starts for me just fine, but it looks like you are using the German version so who knows?)



Swedish, KT.
By Kelleytoons - Last Year
There are still issues with motion bones.  Hopefully fixed next patch.
By Zeronimo - Last Year
YES, after doing PLAY the GIZMO and the transform coordinates are updated.
What disturbed me was that the color of the light and the multiplier was up to date but not the coordinates of transform before the PLAY.
By dogged2003 - Last Year
RobertoColombo (2/4/2019)
DEVELOPMENT version has completely overwritten the stable 7.41.
  Roberto

How did you get this version?
By RobertoColombo - 2 Years Ago

Documentation for RUi is largely incomplete.
Just to give an example (but the following is valid for every method): ShowMessageBox()

a. There is no indication aboutwhat is the value type of the input parameters.
      Intuitively the first two are strings but what about the olthers ?
      The "Hello world" Python example uses the value "RLPy.EMsgButton_Ok" => how to link from the doc of this function that this is the value to be used ?
b. The "Hello world" Python example uses 3 input parameters, whereas in teh doc there are listred 5.
       Which one are optional ?
c. Retun is "button status". 
      What does this mean ?
      What are the possible values ?
By luke (RL) - Last Year
dogged2003 (1/13/2019)
Show me how to write my actions in the Clone to the script? For editing and repetition?
How to get access to menu items, Timeline, to settings windows, etc.?

Could you explain with more detail?
By Kelleytoons - Last Year
Ah, what the heck does this provincial American know <g>?

When my version starts up it warns you about using this very dangerous piece of untested software, and I assume that's the part that's missing for those overseas.  In any case, since we all need to wait nearly two weeks I'd just be patient.
By dogged2003 - Last Year
Show me how to write my actions in the Clone to the script? For editing and repetition?
How to get access to menu items, Timeline, to settings windows, etc.?
By luke (RL) - Last Year
The-any-Key (2/4/2019)
Some examples to get and set the rotation quaternions for objects in local and world (or a way to transform world to local and set it or vice versa).

Also the API update gives me this error when trying to start iClone
https://forum.reallusion.com/uploads/images/9464a89a-72d2-4081-a59d-8179.png
Translation: Could not find the address (memory pointer) to start the process.


Could you send me the dump file? I could check it when I back from lunar new year

By Kelleytoons - 2 Years Ago
How to get the parent object is my other main request.
By videodv - Last Year
How to change the Transition Curve of a material.
By RobertoColombo - 2 Years Ago


I have another issue that i can't get through.
What I want to do is a very simple task: to be able to calla function defined ina certain file from another file.

So, I created a file with a function that print a simple message.
Then, i created another file, with an import statement for the 1st file and a call to that function within run_script().
I am sure that teh file with the function is imported because if i insert some errors there they are displayed during the "import" phase.
Problem is that when I run this script, i get the error "<class 'NameError'>" exactly at the line of code where I call the function defined in the other file.
It looks like iClone can't find this file and the function within it.
The two files are placed in the same directory.

Pls, let us know how to do this, because this is the basis to split the code into different modules
By Zeronimo - Last Year
dogged2003 (2/6/2019)
RobertoColombo (2/4/2019)
DEVELOPMENT version has completely overwritten the stable 7.41.
  Roberto

How did you get this version?



you will find the link in the first post of the first page of this thread
By jlittle - Last Year
Kelleytoons (1/19/2019)
Material transition keys can't be set.  And neither can we load an image file in.  Both of those things are coming (hopefully soon).

I kind of figured but wanted it on the list.

Jeff

By Zeronimo - Last Year
@ The-Any-Key: As soon as I have time I will try the installation. We'll see what happens.
Both versions of iClone (Standard and Development) have exactly the same version number: 7.41.2529.1
By Kelleytoons - Last Year
robby = RLPy.RScene.FindObject(RLPy.EObjectType_Prop, "RobbyRigged")
skeleton_component = robby.GetSkeletonComponent()
motion_bones = skeleton_component.GetMotionBones()
for bone in motion_bones:
    print (bone.GetName())


By luke (RL) - Last Year
RobertoColombo (2/4/2019)
My version starts fine... but I do not like that this DEVELOPMENT version has completely overwritten the stable 7.41.
That's not what i wanted when I downloaded and run it.
Now if I want to create some scene in parallel with Python development I am not sure whether any project created with this temporary version will ever be recgnized by a stable one
RL should have create a standalone .exe, which does not install anything, like was done in the earlier stages of IC7 Beta testing.

  Roberto


Okay, we will think about how to give you the full installer or a zip file rather than replace current one  before that, I suggest you to backup the official version (copy whole iClone folder to other place) then update to the development one, so you should get both version to run in your computer  
By jlittle - 2 Years Ago
Kelleytoons (12/27/2018)
... you *can* use tabs (pressing the tab key just generates the appropriate spaces).

Yes, a lot of editors can be setup to either use a tab or a number of spaces, when pressing the tab key, which is very convenient.

Jeff

By jlittle - Last Year
Need example of AddUVData where one adds an image file (i.e. jpg) to one of the texture channels.

Need example of how to determine a materials shader type (PBR or Traditional).

Need example of how to get/set material transition keys.

Jeff
By videodv - Last Year
Kelleytoons (1/10/2019)
videodv (1/5/2019)
How to change the Transition Curve of a material.


You can't do this (yet).  You can fake a step transition, though, quite easily.



Thanks Mike
I have allready put this on the feedback tracker and got the reply that this wll be put in a future update.

Chris.

By RobertoColombo - 2 Years Ago
Thanks to "waveact" offline help, the way to run main.py at the start of iClone is now solved!

The way to do that is to have a TWO level folder under Bin64, i.e.: Bin64\OpenPlugin\[here you need to create another folder with any name you want]
In my case I created \OpenPlugin\PythonAPI
Then, within PythonAPI, put the main.py file.

When iClone starts, I can see that it is scanning the available plug ins and at the end also PythonAPI is displayed.
Then the main.py is executed.... but here I still have the problem of this line of code, reported above:
 
   ic_dlg = PySide2.shiboken2.wrapInstance(int(RLPy.RUi.GetMainWindow()), PySide2.QtWidgets.QMainWindow)

so, what I did so far is to have a main.py with just one print() inside the initialize_plugin() function, i.e.

import RLPy

def initialize_plugin():
    print("Ciao")

when iClone starts, I can see "Ciao" displayed in the Python console.

Now that iClone can recognize the main.py script at teh start-up, I tried to insert in it a call to a function placed into another script, saved in the same \OpenPlugin\PythonAPI directory.
Even in this can nothing happens, so I still have no idea how to split the code among different files...
By Tony (RL) - Last Year
Dear Developers,

iClone Developer Edition 0.7.4 is Available Now!

Please download from HERE

Add:
  • Viseme related API.
  • HIK Effector related API.
Fix:
  • Retrieved prop quaternion not converting to degrees.
By animagic - Last Year
You don't really "install" the dev version.

You extract the ZIP file which gives you a Python_API_073_for_iClone_741 directory tree, which you then place under C:\Program Files\Reallusion. Then run iClone.exe from there.

You will have to change your PATH to point to the alternate Python locations: C:\Program Files\Reallusion\Python_API_073\Bin64 and C:\Program Files\Reallusion\Python_API_073\Bin64\scripts.

The Dev version is much more extensive and should have the file version 7.41.2824.1 (right-click iClone.exe and check Properties>Details), although Help>About says 7.41.2627.1. Go figure... Unsure
By dogged2003 - Last Year
Not prop, like the horse.