Instance Hscript
eharetea

A cool script written in Hscript that will setup instanced lights and objects.

Automated instancing with Hscript.

Date Created:Friday December 29th, 2006 03:41 AM
Date Modified:Wednesday July 30th, 2008 10:36 PM


#help
if ($arg1==help || $argc==1)
    echo
    echo
    echo NAME
    echo        instanceme creates instanced objects and lights
    echo
    echo SYNOPSIS
    echo        instanceme EXPRESSION
    echo
    echo DESCRIPTION
    echo        instancing objects
    echo        instanceme [INSTANCE OBJECT] [INSTANCE POINTS OBJECT]
    echo
    echo        -l instancing lights
    echo        instanceme -[LIGHT OBJECT] [INSTANCE POINTS OBJECT]
    echo        this will use the light specified
    echo
    echo        instanceme -[INSTANCE POINTS OBJECT]
    echo        this will create a light for you
    echo
    echo AUTHOR
    echo        Written by Dan Lynch
    echo REPORTING BUGS
    echo        Report bugs to <d at nlynch.com>
    echo COPYRIGHT
    echo        This is a free softwareThere is NO warranty.
    echo
    echo
    exit
endif
#end help

#instancing objects
if ($argc==&& $arg1!=-l)
    
    set instobj = `opfullpath("$arg1")`
    set instpts = `opfullpath("$arg2")`
    
    
    #turns on points instancing
    opparm $instpts ptinstance on
    
    #sets the point geometry
    opparm $instpts partinstancepath $instobj
    
    opset -d on $instpts
    opset -d off $instobj
    
    echo $instobj will be instanced to 
    echo the points of $instpts

#instancing lights
else if ($arg1==-l)
    
    set pointop point_op
    set lightname instance_light
    set attlght attribute_vm_light        
    
    #light is specified    
    if ($argc==4)
        set instlgt = `opfullpath("$arg2")`
        
        set instpts = `opfullpath("$arg3")`
    #light will be created
    else if ($argc==3)
    
        set instpts = `opfullpath("$arg2")`
        
        cd $arg2
        cd ../
        
        set checklight = `opexist("$lightname")`
        
        if ($checklight==0)
            opadd light $lightname
        endif
        
        set instlgt = `opfullpath("$lightname")`
        
    endif
        
        
    #turns on point instancing
    opparm $instlgt ptinstance on
    
    #sets point geometry
    opparm $instlgt partinstancepath $instpts
    
    opset -d off $instlgt

    opset -d off $instpts
    
    cd $instpts
    
    #finds node with display flag on
    set getnode = `(opflag("$instpts", "d"))`
    
    if ($getnode==$attlght)
        set attribin = `opinput($attlght,0)`
        if ($attribin==$pointop)
            set getnode = `opinput($pointop,0)`
        else if ($attribin!=$pointop)
            set getnode $attribin
        endif
    else if ($getnode==$pointop)
        set getnode = `opinput($pointop,0)`    
    endif
    
    
    
    #checks to see if $pointop exists
    set checkpoint = `opexist("$pointop")`
    
        
    if ($checkpoint==0)
        
        opadd point $pointop
        opparm $pointop donml on
        opparm $pointop nx 0
        opparm $pointop ny 1
        opparm $pointop nz 0
    
    endif
    
    #checks to see if attibute_vm_light exists
    set checkattrib = `(opexist("$attlght"))`
    if ($checkattrib==0)
            
        opadd attribcreate $attlght
    endif

    
    opwire $getnode $pointop 
    opwire $pointop $attlght
         
         
     
     opset -d on -r on $attlght
    
    
    #checks for shop_vsad
    set checkshop = `opexist("shop_vsad")`
    if ($checkshop==0)    
        
        #create shop and light
        opadd shopnet shop_vsad
        cd shop_vsad
        opadd v_asadlight asadlight
        opparm asadlight docone on
    
    endif
    
    #looks at node name
    set nodename = `optypeinfo("$instpts","N")`
        
    cd $instpts
    
    opparm $attlght name ("vm_light")
    
    #sets type to a string
    opparm $attlght type ("3")
    
    
    set chee "opdef:/Shop/v_asadlight lightcolor \`rand(\$PT)\` 1 \`rand(\$PT)\` docone 1 coneangle 2 conedelta 2 conerolloff 1 doatten 1 atten 2 slide \"\" outside 0 0 0 diffmap \"\" specmap \"\" reflectx 1 reflecty 1 _shop_ $instpts/shop/asadlight"
    

    
    oplocate $attlght
        
    opparm $attlght string ("$chee")
    
endif

opcd /
    
    




Downloads:
Download: instance.sh 4 KB

Please login or Click Here to register for downloads
Creative Commons License
Instance Hscript by Dan Lynch
is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License
Based on a work at www.3daet.com
Permissions beyond the scope of this license may be available at http://www.3daet.com