[Released] Now-Crowd Utilities [Commercial]

245

Comments

  • DresdenskinDresdenskin Posts: 55
    edited April 2020

    If you open up the Script IDE, paste the code below and hit Execute, what does the output say?  On my system, I get:

    function IncludeFile( sRelativePath )

    {

    // Get the content manager

    var oContentMgr = App.getContentMgr();

    // If we don't have a content manager

    if( !oContentMgr ){

    // We're done...

    return;

    }

     

    // Declareworking variables

    var sPreferredBasePath, sAbsolutePath;

     

    // Get the path of this script

    var sScriptPath = getScriptFileName();

     

    // Define the directory type to look in

    var nDirType = DzContentMgr.AllDirs;

     

    // Also look in cloud directories

    nDirType = DzContentMgr.AllDirsAndCloud;

     

    //Define the preferred [mapped] base path; use the path of the current script

    sPreferredBasePath = oContentMgr.getMappedPath( nDirType, sScriptPath, false );

     

    // Get the absolute path of the file to be shown/opened

    sAbsolutePath = oContentMgr.getAbsolutePath( nDirType, sRelativePath, sPreferredBasePath );

     

    // If the file was found

    if( !sAbsolutePath.isEmpty() ){

    return sAbsolutePath;

    // If the file was not found

    } else {

    // Inform the user

    MessageBox.information(

    qsTr("'%1' could not be found in a mapped content directory. " +

    "Check the installation and try again.").arg( sRelativePath ),

    qsTr("File Not Found"), qsTr("&Ok") );

    }

    }

     

    print (IncludeFile("data/RiverSoft Art/Common/RSAdvBillboardFunctions.dse"));

    With Daz Studio 4.12.0.85 BETA the result I get from your script is:

    Executing Script.....\..\..\..\..\src\sdksource\general\dzcontentmgr.cpp(4081): Empty path passed to DzContentMgr::getMappedPath()G:/DAZ 3D/Studio/My Library/data/RiverSoft Art/Common/RSAdvBillboardFunctions.dseResult: Script executed in 0 secs 7 msecs.

     

    In Daz Studio 4.12.0.86 the result of your script is:

    Executing Script.....\..\..\..\..\src\sdksource\general\dzcontentmgr.cpp(4081): Empty path passed to DzContentMgr::getMappedPath()G:/DAZ 3D/Studio/My Library/data/RiverSoft Art/Common/RSAdvBillboardFunctions.dseResult: Script executed in 0 secs 7 msecs.

     

    Just to add: I've no intention of asking for a refund for this product: It works in the Release version and, if necessary, I'll construct my scene in the BETA (as I normally do), then load the scene into the Release and assemble my crowd, save it and reload into the BETA in order to render. Complicated, I know, but as I said before, the Beta is the most stable version I've worked with and I'm reluctant to move on from that. I'd prefer the script to work in both versions, but if this is what I have to do, I'll do it. ????

    Post edited by Dresdenskin on
  • RiverSoftArtRiverSoftArt Posts: 5,444

    If you open up the Script IDE, paste the code below and hit Execute, what does the output say?  On my system, I get:

    function IncludeFile( sRelativePath )

    {

    // Get the content manager

    var oContentMgr = App.getContentMgr();

    // If we don't have a content manager

    if( !oContentMgr ){

    // We're done...

    return;

    }

     

    // Declareworking variables

    var sPreferredBasePath, sAbsolutePath;

     

    // Get the path of this script

    var sScriptPath = getScriptFileName();

     

    // Define the directory type to look in

    var nDirType = DzContentMgr.AllDirs;

     

    // Also look in cloud directories

    nDirType = DzContentMgr.AllDirsAndCloud;

     

    //Define the preferred [mapped] base path; use the path of the current script

    sPreferredBasePath = oContentMgr.getMappedPath( nDirType, sScriptPath, false );

     

    // Get the absolute path of the file to be shown/opened

    sAbsolutePath = oContentMgr.getAbsolutePath( nDirType, sRelativePath, sPreferredBasePath );

     

    // If the file was found

    if( !sAbsolutePath.isEmpty() ){

    return sAbsolutePath;

    // If the file was not found

    } else {

    // Inform the user

    MessageBox.information(

    qsTr("'%1' could not be found in a mapped content directory. " +

    "Check the installation and try again.").arg( sRelativePath ),

    qsTr("File Not Found"), qsTr("&Ok") );

    }

    }

     

    print (IncludeFile("data/RiverSoft Art/Common/RSAdvBillboardFunctions.dse"));

    With Daz Studio 4.12.0.85 BETA the result I get from your script is:

    Executing Script.....\..\..\..\..\src\sdksource\general\dzcontentmgr.cpp(4081): Empty path passed to DzContentMgr::getMappedPath()G:/DAZ 3D/Studio/My Library/data/RiverSoft Art/Common/RSAdvBillboardFunctions.dseResult: Script executed in 0 secs 7 msecs.

     

    In Daz Studio 4.12.0.86 the result of your script is:

    Executing Script.....\..\..\..\..\src\sdksource\general\dzcontentmgr.cpp(4081): Empty path passed to DzContentMgr::getMappedPath()G:/DAZ 3D/Studio/My Library/data/RiverSoft Art/Common/RSAdvBillboardFunctions.dseResult: Script executed in 0 secs 7 msecs.

     

    Just to add: I've no intention of asking for a refund for this product: It works in the Release version and, if necessary, I'll construct my scene in the BETA (as I normally do), then load the scene into the Release and assemble my crowd, save it and reload into the BETA in order to render. Complicated, I know, but as I said before, the Beta is the most stable version I've worked with and I'm reluctant to move on from that. I'd prefer the script to work in both versions, but if this is what I have to do, I'll do it. ????

    Ah, that shot down my first theory, which is good laugh.  It forced me to look elsewhere.  I believe I made a mistake and compiled this file with the wrong encryption.  Try this.  It should replace RSAdvBillboardFunctions.dse in data/RiverSoft Art/Common

    dse
    dse
    RSAdvBillboardFunctions.dse
    12K
  • DresdenskinDresdenskin Posts: 55
    edited April 2020

    Ah, that shot down my first theory, which is good laugh.  It forced me to look elsewhere.  I believe I made a mistake and compiled this file with the wrong encryption.  Try this.  It should replace RSAdvBillboardFunctions.dse in data/RiverSoft Art/Common

    Yup! That solved the problem. The script now runs on both versions. Thank you SO much! laugh

    Post edited by Dresdenskin on
  • ArtiniArtini Posts: 6,878

    If you open up the Script IDE, paste the code below and hit Execute, what does the output say?  On my system, I get:

    function IncludeFile( sRelativePath )

    {

    // Get the content manager

    var oContentMgr = App.getContentMgr();

    // If we don't have a content manager

    if( !oContentMgr ){

    // We're done...

    return;

    }

     

    // Declareworking variables

    var sPreferredBasePath, sAbsolutePath;

     

    // Get the path of this script

    var sScriptPath = getScriptFileName();

     

    // Define the directory type to look in

    var nDirType = DzContentMgr.AllDirs;

     

    // Also look in cloud directories

    nDirType = DzContentMgr.AllDirsAndCloud;

     

    //Define the preferred [mapped] base path; use the path of the current script

    sPreferredBasePath = oContentMgr.getMappedPath( nDirType, sScriptPath, false );

     

    // Get the absolute path of the file to be shown/opened

    sAbsolutePath = oContentMgr.getAbsolutePath( nDirType, sRelativePath, sPreferredBasePath );

     

    // If the file was found

    if( !sAbsolutePath.isEmpty() ){

    return sAbsolutePath;

    // If the file was not found

    } else {

    // Inform the user

    MessageBox.information(

    qsTr("'%1' could not be found in a mapped content directory. " +

    "Check the installation and try again.").arg( sRelativePath ),

    qsTr("File Not Found"), qsTr("&Ok") );

    }

    }

     

    print (IncludeFile("data/RiverSoft Art/Common/RSAdvBillboardFunctions.dse"));

    With Daz Studio 4.12.0.85 BETA the result I get from your script is:

    Executing Script.....\..\..\..\..\src\sdksource\general\dzcontentmgr.cpp(4081): Empty path passed to DzContentMgr::getMappedPath()G:/DAZ 3D/Studio/My Library/data/RiverSoft Art/Common/RSAdvBillboardFunctions.dseResult: Script executed in 0 secs 7 msecs.

     

    In Daz Studio 4.12.0.86 the result of your script is:

    Executing Script.....\..\..\..\..\src\sdksource\general\dzcontentmgr.cpp(4081): Empty path passed to DzContentMgr::getMappedPath()G:/DAZ 3D/Studio/My Library/data/RiverSoft Art/Common/RSAdvBillboardFunctions.dseResult: Script executed in 0 secs 7 msecs.

     

    Just to add: I've no intention of asking for a refund for this product: It works in the Release version and, if necessary, I'll construct my scene in the BETA (as I normally do), then load the scene into the Release and assemble my crowd, save it and reload into the BETA in order to render. Complicated, I know, but as I said before, the Beta is the most stable version I've worked with and I'm reluctant to move on from that. I'd prefer the script to work in both versions, but if this is what I have to do, I'll do it. ????

    Ah, that shot down my first theory, which is good laugh.  It forced me to look elsewhere.  I believe I made a mistake and compiled this file with the wrong encryption.  Try this.  It should replace RSAdvBillboardFunctions.dse in data/RiverSoft Art/Common

    Will you update it on DIM, please.

    All the best.

     

  • RiverSoftArtRiverSoftArt Posts: 5,444

    Ah, that shot down my first theory, which is good laugh.  It forced me to look elsewhere.  I believe I made a mistake and compiled this file with the wrong encryption.  Try this.  It should replace RSAdvBillboardFunctions.dse in data/RiverSoft Art/Common

    Yup! That solved the problem. The script now runs on both versions. Thank you SO much! laugh

    Great!  I am glad that worked for you.

  • RiverSoftArtRiverSoftArt Posts: 5,444
    Artini said:

    If you open up the Script IDE, paste the code below and hit Execute, what does the output say?  On my system, I get:

    function IncludeFile( sRelativePath )

    {

    // Get the content manager

    var oContentMgr = App.getContentMgr();

    // If we don't have a content manager

    if( !oContentMgr ){

    // We're done...

    return;

    }

     

    // Declareworking variables

    var sPreferredBasePath, sAbsolutePath;

     

    // Get the path of this script

    var sScriptPath = getScriptFileName();

     

    // Define the directory type to look in

    var nDirType = DzContentMgr.AllDirs;

     

    // Also look in cloud directories

    nDirType = DzContentMgr.AllDirsAndCloud;

     

    //Define the preferred [mapped] base path; use the path of the current script

    sPreferredBasePath = oContentMgr.getMappedPath( nDirType, sScriptPath, false );

     

    // Get the absolute path of the file to be shown/opened

    sAbsolutePath = oContentMgr.getAbsolutePath( nDirType, sRelativePath, sPreferredBasePath );

     

    // If the file was found

    if( !sAbsolutePath.isEmpty() ){

    return sAbsolutePath;

    // If the file was not found

    } else {

    // Inform the user

    MessageBox.information(

    qsTr("'%1' could not be found in a mapped content directory. " +

    "Check the installation and try again.").arg( sRelativePath ),

    qsTr("File Not Found"), qsTr("&Ok") );

    }

    }

     

    print (IncludeFile("data/RiverSoft Art/Common/RSAdvBillboardFunctions.dse"));

    With Daz Studio 4.12.0.85 BETA the result I get from your script is:

    Executing Script.....\..\..\..\..\src\sdksource\general\dzcontentmgr.cpp(4081): Empty path passed to DzContentMgr::getMappedPath()G:/DAZ 3D/Studio/My Library/data/RiverSoft Art/Common/RSAdvBillboardFunctions.dseResult: Script executed in 0 secs 7 msecs.

     

    In Daz Studio 4.12.0.86 the result of your script is:

    Executing Script.....\..\..\..\..\src\sdksource\general\dzcontentmgr.cpp(4081): Empty path passed to DzContentMgr::getMappedPath()G:/DAZ 3D/Studio/My Library/data/RiverSoft Art/Common/RSAdvBillboardFunctions.dseResult: Script executed in 0 secs 7 msecs.

     

    Just to add: I've no intention of asking for a refund for this product: It works in the Release version and, if necessary, I'll construct my scene in the BETA (as I normally do), then load the scene into the Release and assemble my crowd, save it and reload into the BETA in order to render. Complicated, I know, but as I said before, the Beta is the most stable version I've worked with and I'm reluctant to move on from that. I'd prefer the script to work in both versions, but if this is what I have to do, I'll do it. ????

    Ah, that shot down my first theory, which is good laugh.  It forced me to look elsewhere.  I believe I made a mistake and compiled this file with the wrong encryption.  Try this.  It should replace RSAdvBillboardFunctions.dse in data/RiverSoft Art/Common

    Will you update it on DIM, please.

    All the best.

     

    Yes, I will be submitting an update this week.  I will wait a couple more days to see if there are more bug reports, and then submit it.

  • FishtalesFishtales Posts: 5,651
    edited April 2020

    Nothing fancy but used the crowd utility to place a few people around the dragon. Unfortunately the extreme angle and focal length has distorted them a bit :)

    2020-04-29 12:30:17.697 Total Rendering Time: 3 hours 42 minutes 39.85 seconds

    Overlord

    Click on image for full size.

     

    Overlord-copyright-001.jpg
    1920 x 1080 - 1M
    Post edited by Fishtales on
  • RiverSoftArtRiverSoftArt Posts: 5,444
    Fishtales said:

    Nothing fancy but used the crowd utility to place a few people around the dragon. Unfortunately the extreme angle and focal length has distorted them a bit :)

    2020-04-29 12:30:17.697 Total Rendering Time: 3 hours 42 minutes 39.85 seconds

    Overlord

    Click on image for full size.

     

    Yikes, 3 hours to render with billboards!  I would hate to render that with figures.  smiley

    Thanks for sharing.

  • FishtalesFishtales Posts: 5,651
    Fishtales said:

    Nothing fancy but used the crowd utility to place a few people around the dragon. Unfortunately the extreme angle and focal length has distorted them a bit :)

    2020-04-29 12:30:17.697 Total Rendering Time: 3 hours 42 minutes 39.85 seconds

    Overlord

     

    Click on image for full size.

     

    Yikes, 3 hours to render with billboards!  I would hate to render that with figures.  smiley

    Thanks for sharing.

    It's the volume sphere that causes it. That is it down from over four hours without the billboards :)

  • FishtalesFishtales Posts: 5,651
    edited April 2020

    I used another camera with the focal length set at 45.00mm which helped a lot with the distortion.

    I forgot to mention these were using DAZ Studio 4.12.1.115 Beta.

    2020-04-29 17:31:16.900 Total Rendering Time: 3 hours 46 minutes 19.57 seconds

    Overlord

    Click on image for full size.

    Overlord-copyright-002.jpg
    1920 x 1080 - 1M
    Post edited by Fishtales on
  • Silent WinterSilent Winter Posts: 3,350
    edited April 2020

    Having fun with this - scene took about 2 minutes to set up, plus 2 more to move the 'seated' characters into position and a couple of the standing ones to avoid clipping the crates on the dock. Rendering - can't remember but not long, 5 minutes maybe? This one combines the medieval city life and fantasy life 1 sets - around 60 characters in all.

    One thing I noticed was that I'm still getting duplicates even if 'allow duplicates' is unchecked (I manually removed some of them but then I'm not getting the full pool) - but only if 'random' selection is checked, not 'top-to-bottom'. (but then I don't want all the women on one side, or all the orcs). Is this fixable or is it a consequence of the random-number-generator? (or is it user-error?)

    ^Click for twice as big

    Fantasy Dock Crowded.jpg
    1600 x 900 - 483K
    Post edited by Silent Winter on
  • RiverSoftArtRiverSoftArt Posts: 5,444

    Having fun with this - scene took about 2 minutes to set up, plus 2 more to move the 'seated' characters into position and a couple of the standing ones to avoid clipping the crates on the dock. Rendering - can't remember but not long, 5 minutes maybe? This one combines the medieval city life and fantasy life 1 sets - around 60 characters in all.

    One thing I noticed was that I'm still getting duplicates even if 'allow duplicates' is unchecked (I manually removed some of them but then I'm not getting the full pool) - but only if 'random' selection is checked, not 'top-to-bottom'. (but then I don't want all the women on one side, or all the orcs). Is this fixable or is it a consequence of the random-number-generator? (or is it user-error?)

    ^Click for twice as big

    That is a cool image!  Thanks for sharing.

    The "Allow Duplicates" is about controlling what gets added to the crowd pool, not for generating the crowd itself.  Once something is in the crowd pool, it has a chance of being selected.

  • Silent WinterSilent Winter Posts: 3,350

    Having fun with this - scene took about 2 minutes to set up, plus 2 more to move the 'seated' characters into position and a couple of the standing ones to avoid clipping the crates on the dock. Rendering - can't remember but not long, 5 minutes maybe? This one combines the medieval city life and fantasy life 1 sets - around 60 characters in all.

    One thing I noticed was that I'm still getting duplicates even if 'allow duplicates' is unchecked (I manually removed some of them but then I'm not getting the full pool) - but only if 'random' selection is checked, not 'top-to-bottom'. (but then I don't want all the women on one side, or all the orcs). Is this fixable or is it a consequence of the random-number-generator? (or is it user-error?)

    ^Click for twice as big

    That is a cool image!  Thanks for sharing.

    The "Allow Duplicates" is about controlling what gets added to the crowd pool, not for generating the crowd itself.  Once something is in the crowd pool, it has a chance of being selected.

    Ok, I just tried allowing it and I see what you mean - I can get multiple copies of the same billboard in the pool (I think what confused me was it being on a different tab and above 'make duplicates instances' so I figured it was a crowd-generator option) - so I'm browsing fantasy life and I choose dwarf drinking, then I choose dwarf drinking again and he's in the pool twice. Why would we do that? (since it can get selected multiple times when generating the crowd anyway). Is it controlling the ratios of figures while not quite ensuring a figure will be selected? Not that duplicates in a crowd are bad - just needs a little manual input to make sure they're not stood/sat next to each other. I guess I'd prefer it if it used up the whole pool before adding duplicates though.

    Having said that, I again stress that the above image took less than 5 minutes to set up and I'm loving the time I save using this product :)

  • RiverSoftArtRiverSoftArt Posts: 5,444

    Having fun with this - scene took about 2 minutes to set up, plus 2 more to move the 'seated' characters into position and a couple of the standing ones to avoid clipping the crates on the dock. Rendering - can't remember but not long, 5 minutes maybe? This one combines the medieval city life and fantasy life 1 sets - around 60 characters in all.

    One thing I noticed was that I'm still getting duplicates even if 'allow duplicates' is unchecked (I manually removed some of them but then I'm not getting the full pool) - but only if 'random' selection is checked, not 'top-to-bottom'. (but then I don't want all the women on one side, or all the orcs). Is this fixable or is it a consequence of the random-number-generator? (or is it user-error?)

    ^Click for twice as big

    That is a cool image!  Thanks for sharing.

    The "Allow Duplicates" is about controlling what gets added to the crowd pool, not for generating the crowd itself.  Once something is in the crowd pool, it has a chance of being selected.

    Ok, I just tried allowing it and I see what you mean - I can get multiple copies of the same billboard in the pool (I think what confused me was it being on a different tab and above 'make duplicates instances' so I figured it was a crowd-generator option) - so I'm browsing fantasy life and I choose dwarf drinking, then I choose dwarf drinking again and he's in the pool twice. Why would we do that? (since it can get selected multiple times when generating the crowd anyway). Is it controlling the ratios of figures while not quite ensuring a figure will be selected? Not that duplicates in a crowd are bad - just needs a little manual input to make sure they're not stood/sat next to each other. I guess I'd prefer it if it used up the whole pool before adding duplicates though.

    Having said that, I again stress that the above image took less than 5 minutes to set up and I'm loving the time I save using this product :)

    Yeah, it is about controlling the chance a figure gets selected.  It is discussed in the manual laugh

    I am glad you like it.  I find it a huge timesaver myself, especially for these large scenes.  Pairing this with the Move to Floor/Y and it is very fast to set up a large scene.

  • Silent WinterSilent Winter Posts: 3,350

    Having fun with this - scene took about 2 minutes to set up, plus 2 more to move the 'seated' characters into position and a couple of the standing ones to avoid clipping the crates on the dock. Rendering - can't remember but not long, 5 minutes maybe? This one combines the medieval city life and fantasy life 1 sets - around 60 characters in all.

    One thing I noticed was that I'm still getting duplicates even if 'allow duplicates' is unchecked (I manually removed some of them but then I'm not getting the full pool) - but only if 'random' selection is checked, not 'top-to-bottom'. (but then I don't want all the women on one side, or all the orcs). Is this fixable or is it a consequence of the random-number-generator? (or is it user-error?)

    ^Click for twice as big

    That is a cool image!  Thanks for sharing.

    The "Allow Duplicates" is about controlling what gets added to the crowd pool, not for generating the crowd itself.  Once something is in the crowd pool, it has a chance of being selected.

    Ok, I just tried allowing it and I see what you mean - I can get multiple copies of the same billboard in the pool (I think what confused me was it being on a different tab and above 'make duplicates instances' so I figured it was a crowd-generator option) - so I'm browsing fantasy life and I choose dwarf drinking, then I choose dwarf drinking again and he's in the pool twice. Why would we do that? (since it can get selected multiple times when generating the crowd anyway). Is it controlling the ratios of figures while not quite ensuring a figure will be selected? Not that duplicates in a crowd are bad - just needs a little manual input to make sure they're not stood/sat next to each other. I guess I'd prefer it if it used up the whole pool before adding duplicates though.

    Having said that, I again stress that the above image took less than 5 minutes to set up and I'm loving the time I save using this product :)

    Yeah, it is about controlling the chance a figure gets selected.  It is discussed in the manual laugh

    I am glad you like it.  I find it a huge timesaver myself, especially for these large scenes.  Pairing this with the Move to Floor/Y and it is very fast to set up a large scene.

    There's a manual? I should read that, lol

    And yeah, the drop-to-floor/surface part is ace :)

  • boisselazonboisselazon Posts: 456
    edited April 2020

    I don't understand why this now-crowd thing has no script/program to create my own now-crowd people. None of the offered crowd can be used in my projects and I must  keep more control on my crowds.

    So, when will you make a real utility that allow users to create their own crowd?

    Post edited by boisselazon on
  • carrie58carrie58 Posts: 3,554

    I don't understand why this now-crowd thing has no script/program to create my own now-crowd people. None of the offered crowd can be used in my projects and I must  keep more control on my crowds.

    So, when will you make a real utility that allow users to create their own crowd?

     

    @RiverSoftArt       HA!!  See it's not just me !!!

     

  • FishtalesFishtales Posts: 5,651
    edited April 2020
    Fishtales said:

    Nothing fancy but used the crowd utility to place a few people around the dragon. Unfortunately the extreme angle and focal length has distorted them a bit :)

    2020-04-29 12:30:17.697 Total Rendering Time: 3 hours 42 minutes 39.85 seconds

    Overlord

     

    Click on image for full size.

     

    Yikes, 3 hours to render with billboards!  I would hate to render that with figures.  smiley

    Thanks for sharing.

    You think that was bad I did a few changes to the dragon skin and reset the render settings and let it run full term, I don't usually while I was busy doing something else :)

    2020-04-30 18:17:23.416 Total Rendering Time: 9 hours 14 minutes 21.98 seconds

    Click on image for full size.

    overlord-copyright-003.jpg
    1920 x 1080 - 1M
    Post edited by Fishtales on
  • GordigGordig Posts: 6,759

    I don't understand why this now-crowd thing has no script/program to create my own now-crowd people. None of the offered crowd can be used in my projects and I must  keep more control on my crowds.

    So, when will you make a real utility that allow users to create their own crowd?

    Out of curiosity, what do you think is involved in creating these billboard products?

  • FishtalesFishtales Posts: 5,651
    edited April 2020
    Gordig said:

    I don't understand why this now-crowd thing has no script/program to create my own now-crowd people. None of the offered crowd can be used in my projects and I must  keep more control on my crowds.

    So, when will you make a real utility that allow users to create their own crowd?

    Out of curiosity, what do you think is involved in creating these billboard products?

    Creating one billboard of anything is easy, the hard part is creating all the angled ones which will take a long time. I would think @RiverSoftArt uses an animation that moves the camera around the figure and does a render at set degrees in a circle around it. Doing it manually would be a nightmare smiley

    Post edited by Fishtales on
  • barbultbarbult Posts: 18,985
    Fishtales said:
    Gordig said:

    I don't understand why this now-crowd thing has no script/program to create my own now-crowd people. None of the offered crowd can be used in my projects and I must  keep more control on my crowds.

    So, when will you make a real utility that allow users to create their own crowd?

    Out of curiosity, what do you think is involved in creating these billboard products?

    Creating one billboard of anything is easy, the hard part is creating all the angled ones which will take a long time. I would think @RiverSoftArt uses an animation that moves the camera around the figure and does a render at set degrees in a circle around it. Doing it manually would be a nightmare smiley

    I created a few billboards with all 72 views. I used the timeline to set up the camera angles and then rendered an image series in Daz Studio. I used Photoshop to create the masks for the rendered images.

  • xyer0xyer0 Posts: 4,714
    barbult said:
    Fishtales said:
    Gordig said:

    I don't understand why this now-crowd thing has no script/program to create my own now-crowd people. None of the offered crowd can be used in my projects and I must  keep more control on my crowds.

    So, when will you make a real utility that allow users to create their own crowd?

    Out of curiosity, what do you think is involved in creating these billboard products?

    Creating one billboard of anything is easy, the hard part is creating all the angled ones which will take a long time. I would think @RiverSoftArt uses an animation that moves the camera around the figure and does a render at set degrees in a circle around it. Doing it manually would be a nightmare smiley

    I created a few billboards with all 72 views. I used the timeline to set up the camera angles and then rendered an image series in Daz Studio. I used Photoshop to create the masks for the rendered images.

    @barbult And... ? Tell us the gritty details, please, insights, impressions?

  • barbultbarbult Posts: 18,985
    xyer0 said:
    barbult said:
    Fishtales said:
    Gordig said:

    I don't understand why this now-crowd thing has no script/program to create my own now-crowd people. None of the offered crowd can be used in my projects and I must  keep more control on my crowds.

    So, when will you make a real utility that allow users to create their own crowd?

    Out of curiosity, what do you think is involved in creating these billboard products?

    Creating one billboard of anything is easy, the hard part is creating all the angled ones which will take a long time. I would think @RiverSoftArt uses an animation that moves the camera around the figure and does a render at set degrees in a circle around it. Doing it manually would be a nightmare smiley

    I created a few billboards with all 72 views. I used the timeline to set up the camera angles and then rendered an image series in Daz Studio. I used Photoshop to create the masks for the rendered images.

    @barbult And... ? Tell us the gritty details, please, insights, impressions?

    I created a 72 frame timeline "animation" where each keyframe represented one of the camera angles that RiverSoftArt uses for the billboards. Look at any Now Crowd billboard folder to see what those angles are, based in the image names. The images are named for horizontal and vertical rotation angle. I doubt if my camera positions exactly match what RiverSoftArt uses, but they work fine for me. It took considerable time and experimentation to settle on how I wanted to do this. Then I rendered as an Image series and rendered to PNG so I have the alpha for the mask later.

    The rendered images are named sequentially by the renderer. I used Bulk Rename Utility (BRU) to rename them to include the proper camera rotations in the name, following the RiverSoftArt naming convention. BRU has the capability to import a text list of from/to names to use for renaming, so if I render as billboard_0, billboard_1, etc. every time, I can rename the _0, _1, etc. to the correct name with the text file and change "billboard" to the proper descriptive name for the particular billboard I am using (girl on skateboard, for example).

    In Photoshop, I created an action to create a grayscale image from a billboard PNG alpha. I found a tutorial online somewhere to help with that. Then I ran the action in batch mode to process the whole folder of billboard PNG files to create the corresponding mask file. I don't try to do both hard and soft masks, like RiverSoftArt does. I felt good to get one usable mask. I use BRU again to rename the files as mask files, following RiverSoftArt convention.

    Then I put the properly named billboard PNG files and the corresponding mask files in a runtime folder in my content library (runtime/textures/barbult/billboards/girl on skateboard for example).

    Finally, I created a plane with the first billboard image and mask of the series and saved it as a prop so I could load and use it later with RiverSoftArt billboard script to rotate and orient to camera. I came up with all this before the latest tools were released, so it doesn't take into account whether it is possible to work with those or not. I bought the new tools, but haven't had time to work with them yet.

    Good luck! Once you've created your animation, BRU translation file, and Photoshop action, most drudgery is automated. I'm sure there are other ways to create billboards, too. I don't know what method RiverSoftArt uses. Now Crowd Billboard products are so good, you can save yourself tremendous headaches by just buying those! I have quite a few. smiley 

     

  • RiverSoftArtRiverSoftArt Posts: 5,444
    barbult said:
    xyer0 said:
    barbult said:
    Fishtales said:
    Gordig said:

    I don't understand why this now-crowd thing has no script/program to create my own now-crowd people. None of the offered crowd can be used in my projects and I must  keep more control on my crowds.

    So, when will you make a real utility that allow users to create their own crowd?

    Out of curiosity, what do you think is involved in creating these billboard products?

    Creating one billboard of anything is easy, the hard part is creating all the angled ones which will take a long time. I would think @RiverSoftArt uses an animation that moves the camera around the figure and does a render at set degrees in a circle around it. Doing it manually would be a nightmare smiley

    I created a few billboards with all 72 views. I used the timeline to set up the camera angles and then rendered an image series in Daz Studio. I used Photoshop to create the masks for the rendered images.

    @barbult And... ? Tell us the gritty details, please, insights, impressions?

    I created a 72 frame timeline "animation" where each keyframe represented one of the camera angles that RiverSoftArt uses for the billboards. Look at any Now Crowd billboard folder to see what those angles are, based in the image names. The images are named for horizontal and vertical rotation angle. I doubt if my camera positions exactly match what RiverSoftArt uses, but they work fine for me. It took considerable time and experimentation to settle on how I wanted to do this. Then I rendered as an Image series and rendered to PNG so I have the alpha for the mask later.

    The rendered images are named sequentially by the renderer. I used Bulk Rename Utility (BRU) to rename them to include the proper camera rotations in the name, following the RiverSoftArt naming convention. BRU has the capability to import a text list of from/to names to use for renaming, so if I render as billboard_0, billboard_1, etc. every time, I can rename the _0, _1, etc. to the correct name with the text file and change "billboard" to the proper descriptive name for the particular billboard I am using (girl on skateboard, for example).

    In Photoshop, I created an action to create a grayscale image from a billboard PNG alpha. I found a tutorial online somewhere to help with that. Then I ran the action in batch mode to process the whole folder of billboard PNG files to create the corresponding mask file. I don't try to do both hard and soft masks, like RiverSoftArt does. I felt good to get one usable mask. I use BRU again to rename the files as mask files, following RiverSoftArt convention.

    Then I put the properly named billboard PNG files and the corresponding mask files in a runtime folder in my content library (runtime/textures/barbult/billboards/girl on skateboard for example).

    Finally, I created a plane with the first billboard image and mask of the series and saved it as a prop so I could load and use it later with RiverSoftArt billboard script to rotate and orient to camera. I came up with all this before the latest tools were released, so it doesn't take into account whether it is possible to work with those or not. I bought the new tools, but haven't had time to work with them yet.

    Good luck! Once you've created your animation, BRU translation file, and Photoshop action, most drudgery is automated. I'm sure there are other ways to create billboards, too. I don't know what method RiverSoftArt uses. Now Crowd Billboard products are so good, you can save yourself tremendous headaches by just buying those! I have quite a few. smiley 

     

    @barbult, thank you for sharing!  One comment: the exact angles and numbers used do not matter for the script.  As the manual states, "Even though there are currently only 72 angles for each billboard figure, the script is designed to handle any number of angles (from -180 to 180, and -90 to 90).  By moving the horizontal and vertical sliders, the script will look for the nearest match to the slider values.  The trick is that they are separated by spaces at the end: FILENAME X Y.png.  

  • FishtalesFishtales Posts: 5,651
    edited May 2020

    I thought I would post this to let you see how quick it renders without the volume sphere smiley

    Overlord

    2020-05-01 20:00:48.612 Total Rendering Time: 9 minutes 41.14 seconds

    Click on image for full size.

     

    overlord-copyright-004.jpg
    1920 x 1080 - 1M
    Post edited by Fishtales on
  • RiverSoftArtRiverSoftArt Posts: 5,444
    Fishtales said:

    I thought I would post this to let you see how quick it renders without the volume sphere smiley

    Overlord

    2020-05-01 20:00:48.612 Total Rendering Time: 9 minutes 41.14 seconds

    Click on image for full size.

     

    Thanks again for sharing!

  • barbultbarbult Posts: 18,985
    edited May 2020

    I made this one quickly to try out the crowd generator. It sure was quick and flexible. I haven't explored all the possibilities yet. I added one of my billboards after the crowd was created, just to make it "mine".

    Billboards on Beach.jpg
    2000 x 1500 - 2M
    Post edited by barbult on
  • RiverSoftArtRiverSoftArt Posts: 5,444
    barbult said:

    I made this one quickly to try out the crowd generator. It sure was quick and flexible. I haven't explored all the possibilities yet. I added one of my billboards after the crowd was created, just to make it "mine".

    Thank you.  I am glad you found it easy to use.  I certainly tried. laugh

    Thanks for sharing!

  • barbultbarbult Posts: 18,985

    I have DS 4.12.1.117 (the latest version) and I don't have a New Billboard Node command on the menu. I did Update and Merge Menus, so I should be able to see anything that was added in the update.  Are you running something other than the release build? 

  • FishtalesFishtales Posts: 5,651
    barbult said:

    I have DS 4.12.1.117 (the latest version) and I don't have a New Billboard Node command on the menu. I did Update and Merge Menus, so I should be able to see anything that was added in the update.  Are you running something other than the release build? 

    Mine is right at the bottom of the Create Menu. All I did was update, nothing else.

Sign In or Register to comment.