An-Cadsolutions      Imgsystems

Kirjoittaja Aihe: XSI: Valitse nimen perusteella, mutta...  (Luettu 1808 kertaa)

Tak

  • Administrator
  • *****
  • Viestejä: 960
  • Sukupuoli: Mies
    • Profiili
XSI: Valitse nimen perusteella, mutta...
« : Helmikuu 22, 2006, 10:15:37 pm »
Kun animoin hahmoa tarvii usein valita esim. kaikki etusormen luut, niin että saan add rotation modella kerralla koukistettua. Noh, select tree, select branch, select chain ja sen sellaset ei valitse niitä luita...(ehkäpä oon missannu jonku?) Tein tässä script editorin avulla sellasen scriptin joka valitsee nimen perusteella ne luut, mutta ongelmana on se että jos scenestä ei löydy tietyn nimistä obua, niin se luonnollisesti herjaa. Olisko jollain antaa vinkkiä miten sen saa kierrettyä?

Eli tässä scripti (JScripti:
Koodia: [Valitse]
SelectObj("thumb01_R", null, true);
AddToSelection("thumb02_R", null, true);
AddToSelection("thumb03_R", null, true);

Periaatteessa tuo toimii ihan noinkin koska käytän aina samaa nimitys systeemiä oli sitten mikä hahmo tahansa, mut kiinnostais vaan tietää. Kiitos.

No

  • Hero Member
  • *****
  • Viestejä: 516
  • Sukupuoli: Mies
    • Profiili
    • Sähköposti
Re: Valitse nimen perusteella, mutta...
« Vastaus #1 : Helmikuu 22, 2006, 10:39:07 pm »
En oo kauheen hyvä scriptaaja mut koklaa tätä, pitäis olla oikein kun vaihdat model namen.

Koodia: [Valitse]
Application.SelectObj("sun model name.thumb*_R", "", 1)
« Viimeksi muokattu: Helmikuu 22, 2006, 10:47:10 pm kirjoittanut No »

No

  • Hero Member
  • *****
  • Viestejä: 516
  • Sukupuoli: Mies
    • Profiili
    • Sähköposti
Re: Valitse nimen perusteella, mutta...
« Vastaus #2 : Helmikuu 22, 2006, 10:45:24 pm »
Aijoo tuli väsyneenä Pythonia

JScript

Koodia: [Valitse]
SelectObj("Model_name.thumb*_R", null, true);

No

  • Hero Member
  • *****
  • Viestejä: 516
  • Sukupuoli: Mies
    • Profiili
    • Sähköposti
Re: Valitse nimen perusteella, mutta...
« Vastaus #3 : Helmikuu 22, 2006, 10:55:57 pm »
Ja ei se edes oikeesti vastannut kysymykseen,
tää ei herjaa, mutta ehkä joku tietää varsinaisen ratkaisun...

Koodia: [Valitse]
SelectObj("*.*thumb*", null, true);

Tak

  • Administrator
  • *****
  • Viestejä: 960
  • Sukupuoli: Mies
    • Profiili
Re: Valitse nimen perusteella, mutta...
« Vastaus #4 : Helmikuu 22, 2006, 11:20:05 pm »
Hmm... Mulla kyl herjaa vielä.

No

  • Hero Member
  • *****
  • Viestejä: 516
  • Sukupuoli: Mies
    • Profiili
    • Sähköposti
Re: Valitse nimen perusteella, mutta...
« Vastaus #5 : Helmikuu 22, 2006, 11:34:06 pm »
Lol, no mähän sanoin etten oo kauheen hyvä. Oon alistunut siihen että scriptit on projektikohtaisia ja toimii ehkä jos pitää huolta poluista pitämällä projektilevy samassa mountissa. Scripti toimii täällä tyhjällä scenellä, biped rigillä ja  skeletonilla, ei herjaa. kopsasin sen tosta postista uudestaan editoriin. 

Tak

  • Administrator
  • *****
  • Viestejä: 960
  • Sukupuoli: Mies
    • Profiili
Re: Valitse nimen perusteella, mutta...
« Vastaus #6 : Helmikuu 23, 2006, 12:19:41 am »
Ja ei se edes oikeesti vastannut kysymykseen,
tää ei herjaa, mutta ehkä joku tietää varsinaisen ratkaisun...

Koodia: [Valitse]
SelectObj("*.*thumb*", null, true);
Katos, nyt toimi. Mut niin ku jo totesit tuo ainoastaan valkkaa ne obut fiksummin, muttei estä sitä erroria joka esiintyy kun scenessä ei oo *thumb nimistä obua. Eli maxScriptin try(komento)catch() vastaavaa kaipaisin.

Kiitos kuitenkin.
« Viimeksi muokattu: Helmikuu 23, 2006, 12:59:40 am kirjoittanut Tak »

qde

  • Jr. Member
  • **
  • Viestejä: 78
    • Profiili
    • kustaa.com
    • Sähköposti
Re: Valitse nimen perusteella, mutta...
« Vastaus #7 : Helmikuu 23, 2006, 09:28:48 am »
ei oo mitään hajua xsi scriptistä mut mayassa tekisin vastaavan näin: (ja varmasti vastaava komento löytyy xsi:stä)

if(`objExists sormiLuu`)
{
   select sormiLuu;
}
else
{
   print "ei taalta mitaan sormea loydy";
}


eli tarkistetaan vaan ekana onko objektia olemassa..
Kustaa
« Viimeksi muokattu: Helmikuu 23, 2006, 09:31:12 am kirjoittanut qde »

kone

  • Global Moderator
  • *****
  • Viestejä: 1133
  • Sukupuoli: Mies
    • Profiili
Re: Valitse nimen perusteella, mutta...
« Vastaus #8 : Helmikuu 23, 2006, 09:42:53 am »
En ole juuri nyt XSI luona. Mutta tämän pitäisi hoitaa homma..

Koodia: [Valitse]
var findColl = new ActiveXObject("XSI.Collection");

findColl.Items = "thumb*_R";

if(findColl.count>0)
{
    var obj = findColl(0);
    SelectObj("thumb*_R", null, true);
}

Tak

  • Administrator
  • *****
  • Viestejä: 960
  • Sukupuoli: Mies
    • Profiili
Re: Valitse nimen perusteella, mutta...
« Vastaus #9 : Helmikuu 23, 2006, 09:53:52 am »
qde
Niin mä tiiän et tollai sen täytyy mennä, mut ku ei ymmärrä miten se tehdään VBscriptillä tai JScriptillä  :-\ Koskakohan nää softat oppii selvää suomenkieltä turun murteella? ;)

kone
Koitin ton XSI 4.2:llä, muttei toiminu  :'(


Taidanpa selata vähän lisää helppiä jos vaikka tajuais. Ei tuo todellakaan pakollinen ominaisuus oo koska scenestä löytyy ne obut, mut kiinnostaa vaan tietää. Ei se vaikea voi olla.  :D

kone

  • Global Moderator
  • *****
  • Viestejä: 1133
  • Sukupuoli: Mies
    • Profiili
Re: Valitse nimen perusteella, mutta...
« Vastaus #10 : Helmikuu 23, 2006, 11:20:50 am »
Kyllä tuo täällä näyttäis hommansa hoitavan.. Testasin sekä v5 & v4.2 kanssa. Laitoin liitteeksi nopsan videon pätkän.. Todisteeksi toiminnasta  ;D. (Heikohko kuvan laatuu johtuen foorumin 200kt rajoituksesta liitteelle. Ja nimetkään myös pdf -> zip..

Tak

  • Administrator
  • *****
  • Viestejä: 960
  • Sukupuoli: Mies
    • Profiili
Re: Valitse nimen perusteella, mutta...
« Vastaus #11 : Helmikuu 23, 2006, 11:34:52 am »
Hmm... Tällästä herjaa mulla.

kone

  • Global Moderator
  • *****
  • Viestejä: 1133
  • Sukupuoli: Mies
    • Profiili
Re: Valitse nimen perusteella, mutta...
« Vastaus #12 : Helmikuu 23, 2006, 11:41:00 am »
Näyttäis siltä, että ole kopioinut koko scriptiä tuosta.. Ja kuvassasi tämä puuttuu findColl = new ActiveXObject("XSI.Collection");.. Jonka puutteesta tuo errorkin tuossa kertoo.

Tak

  • Administrator
  • *****
  • Viestejä: 960
  • Sukupuoli: Mies
    • Profiili
Re: Valitse nimen perusteella, mutta...
« Vastaus #13 : Helmikuu 23, 2006, 11:51:59 am »
 :o Öh... Olinpas huolimaton. Koodaaminen ei taida olla ihan mun juttu kun rivit jää huomaamatta. Kiitos kone helpistä.

kone

  • Global Moderator
  • *****
  • Viestejä: 1133
  • Sukupuoli: Mies
    • Profiili
Re: Valitse nimen perusteella, mutta...
« Vastaus #14 : Helmikuu 23, 2006, 12:24:05 pm »
Et näemmä ole ainoa.. Alkuperäiseen jäi tarpeeton muuttujan määritys var obj = findColl(0); muusta käytöstä  :-[. Alla on siivottu:

var findColl = new ActiveXObject("XSI.Collection");

findColl.Items = "thumb*_R";

if(findColl.count>0)
{
    SelectObj("thumb*_R", null, true);
}

Ja jos halut vielä lokiin viestin tapauksessa jossa scenessä ei ole nimellä obuja.. Niin lisää tämä scriptin loppuun.

else
{
   logmessage("Ei loytyny thumbX_R nimella valittavaa : ");
}



Tämmönen ois siis lopullinen tuotos:


var findColl = new ActiveXObject("XSI.Collection");

findColl.Items = "thumb*_R";

if(findColl.count>0)
{
    SelectObj("thumb*_R", null, true);
}
else
{
   logmessage("Ei loytyny thumbX_R nimella valittavaa : ");
}



Juu ja jos halut lokiviestin sijaan oikein semmosen ärsyttävän kuitattavan ikkunan.. Niin korvaa logmessage tällä:

XSIUIToolkit.Msgbox("Ei loytyny thumbX_R nimella valittavaa : ");


« Viimeksi muokattu: Helmikuu 23, 2006, 01:17:56 pm kirjoittanut kone »