An-Cadsolutions      Imgsystems

Kirjoittaja Aihe: XSI testiin 2  (Luettu 1655 kertaa)

xcx

  • Administrator
  • *****
  • Viestejä: 2278
  • Sukupuoli: Mies
    • Profiili
    • Verajankorva.com
    • Sähköposti
XSI testiin 2
« : Tammikuu 13, 2009, 01:02:26 pm »
Eka osa täällä http://www.3dolphin.fi/foorumi/index.php/topic,1673.0.html

Tällä kertaa painopiste scriptaamisessa ja muussa teknisemmässä sälässä. Toiveet on korkealla!

Heti alkuun ei kuitenkaan paista päivä kovin kirkkaana.

SDK dokut auki ja se kertoo minulle kolme eri scriptikieli mahdollisuutta Pyhton, VBScript ja JScript. Kussakin on omat huonot ja hyvät puolensa, mutta minä valitsen JScriptin ihan vaan, koska syntaksi näyttää tutulta.

Ensimmäinen homma on tehdä simppeli messagebox ja hello world teksti. No XSIUIToolkit tarjoaa mukavasti messageboxin.
Toinen homma on tehdä ihan oikea ikkuna, mutta mitä vit... mitenkäs semmoinen tehdään? XSIUIToolkit ei tarjoa enää auta :(. Vaikuttaa siltä, että XSI:ssä ui kamat on jotenkin omituisesti nimetty eikä window ole window vaan jotain ihan muuta. Jokin tapa kuitenkin on pakostakin oltava millä tehdä jonkinlainen UI. Tietääkö joku miten tehdä ikkuna?
Technical Artist - Remedy Games
http://www.verajankorva.com

xcx

  • Administrator
  • *****
  • Viestejä: 2278
  • Sukupuoli: Mies
    • Profiili
    • Verajankorva.com
    • Sähköposti
Vs: XSI testiin 2
« Vastaus #1 : Tammikuu 13, 2009, 02:38:46 pm »
No niin. Custom Property antaa tehdä jotain haluamaani suuntaan ainakin. Toki se haluaa jonkin obun johon lisätä noita propertyjä, mutta ainakin saa jotenkin annettua parametrejä. On kai muutenkin XSI tyylistä, että kaikella on aina oma nodensa.
Technical Artist - Remedy Games
http://www.verajankorva.com

kone

  • Global Moderator
  • *****
  • Viestejä: 1132
  • Sukupuoli: Mies
    • Profiili
Vs: XSI testiin 2
« Vastaus #2 : Tammikuu 13, 2009, 04:30:49 pm »
Hae sdk dokumentaatiosta; PPGLayout

xcx

  • Administrator
  • *****
  • Viestejä: 2278
  • Sukupuoli: Mies
    • Profiili
    • Verajankorva.com
    • Sähköposti
Vs: XSI testiin 2
« Vastaus #3 : Tammikuu 13, 2009, 08:58:26 pm »
Grrr. Ei syntax highlightausta. Vai pitääkö se kääntää jostain päälle. Scriptieditori ei muutenkaan loista, mutta eihän ne koskaan. Maxissa alkaa olla ihan kelvollinen, mutta edelleen aika avuton. Jonkun pitäisi tehdä kunnon deviympäristö näihin softiin.

Toi SDK Explorer vaikuttaa kuitenkin hyödylliseltä.
« Viimeksi muokattu: Tammikuu 13, 2009, 09:01:09 pm kirjoittanut xcx »
Technical Artist - Remedy Games
http://www.verajankorva.com

kone

  • Global Moderator
  • *****
  • Viestejä: 1132
  • Sukupuoli: Mies
    • Profiili
Vs: XSI testiin 2
« Vastaus #4 : Tammikuu 13, 2009, 09:01:36 pm »

xcx

  • Administrator
  • *****
  • Viestejä: 2278
  • Sukupuoli: Mies
    • Profiili
    • Verajankorva.com
    • Sähköposti
Vs: XSI testiin 2
« Vastaus #5 : Tammikuu 13, 2009, 09:18:02 pm »
No jopas!

Aimo harppaus parempaan! Pisteet Sajjad Amjadille.

Kiitos vinkistä, Kone.
Technical Artist - Remedy Games
http://www.verajankorva.com

xcx

  • Administrator
  • *****
  • Viestejä: 2278
  • Sukupuoli: Mies
    • Profiili
    • Verajankorva.com
    • Sähköposti
Vs: XSI testiin 2
« Vastaus #6 : Tammikuu 14, 2009, 01:46:21 am »
pakko kai se on nukkuakin, vaikka pahasta moinen nössöily onkin. Scriptaus xsi:ssä vaikuttaa hyvältä, joskin paljon tossa kaikkea opittavaa. No mikäs sen hauskempaa. Päivän saldo oli lopulta scripti joka lukee valittujen obujen verteksien paikat. Ei niin että scripti olisi loputtoman seksikäs, mutta paljon tuli opittua uutta. Huomenna jos saisi aikaan pienen mesh exportterin niin olisin tyytyväinen.
Technical Artist - Remedy Games
http://www.verajankorva.com

xcx

  • Administrator
  • *****
  • Viestejä: 2278
  • Sukupuoli: Mies
    • Profiili
    • Verajankorva.com
    • Sähköposti
Vs: XSI testiin 2
« Vastaus #7 : Tammikuu 14, 2009, 12:47:55 pm »
Mistä PPG on lyhenne?
Technical Artist - Remedy Games
http://www.verajankorva.com

kone

  • Global Moderator
  • *****
  • Viestejä: 1132
  • Sukupuoli: Mies
    • Profiili
Vs: XSI testiin 2
« Vastaus #8 : Tammikuu 14, 2009, 02:34:41 pm »
ppg = property pages

xcx

  • Administrator
  • *****
  • Viestejä: 2278
  • Sukupuoli: Mies
    • Profiili
    • Verajankorva.com
    • Sähköposti
Vs: XSI testiin 2
« Vastaus #9 : Tammikuu 15, 2009, 01:01:26 am »
Ongelma menujen kanssa. Miten teen kokonaan uuden menuvalikon päämenuun?
Saan kyllä lisättyä jo olemassa oleviin menuihin omaa kamaa, mutta en saa tehtyä kokonaan omaa menua.
Technical Artist - Remedy Games
http://www.verajankorva.com

kone

  • Global Moderator
  • *****
  • Viestejä: 1132
  • Sukupuoli: Mies
    • Profiili
Vs: XSI testiin 2
« Vastaus #10 : Tammikuu 15, 2009, 07:29:29 am »
Menun sijainti määritetään itse asentuvien (self-installing plug-ins) kanssa anchor pointilla. Hae sdk dokumentaatiosta; siMenuAnchorPoints.

Niin ja kätevä wizard löytyy;  file -> plugin manager -> plug-ins; file -> new

xcx

  • Administrator
  • *****
  • Viestejä: 2278
  • Sukupuoli: Mies
    • Profiili
    • Verajankorva.com
    • Sähköposti
Vs: XSI testiin 2
« Vastaus #11 : Tammikuu 15, 2009, 09:00:31 am »
Mikä anchorpoint viittaa päämenuun?

Tein self-installing plugarin ja sillä rekisteröin uuden custom commandin ja menu entryt ja vaihtoehtoina oli miljoona eri paikkaa mihin laittaa se menu entry, mutta anchorpointtia päämenuun ei löytynyt.
« Viimeksi muokattu: Tammikuu 15, 2009, 09:02:58 am kirjoittanut xcx »
Technical Artist - Remedy Games
http://www.verajankorva.com

kone

  • Global Moderator
  • *****
  • Viestejä: 1132
  • Sukupuoli: Mies
    • Profiili
Vs: XSI testiin 2
« Vastaus #12 : Tammikuu 15, 2009, 05:00:07 pm »
Jos meinaat päämenulla; Main Menu Bar ylhäällä, niin siMenuMainTopLevelID

xcx

  • Administrator
  • *****
  • Viestejä: 2278
  • Sukupuoli: Mies
    • Profiili
    • Verajankorva.com
    • Sähköposti
Vs: XSI testiin 2
« Vastaus #13 : Tammikuu 15, 2009, 07:42:45 pm »
Ah, kiitän!
Technical Artist - Remedy Games
http://www.verajankorva.com

xcx

  • Administrator
  • *****
  • Viestejä: 2278
  • Sukupuoli: Mies
    • Profiili
    • Verajankorva.com
    • Sähköposti
Vs: XSI testiin 2
« Vastaus #14 : Tammikuu 16, 2009, 01:29:06 am »
No niin mini mesh export tehty. Kirjoittaa filun johon tallentuu verteksien paikat ja index lista. Saa kommentoida koodia, jos huomaatte siinä jotain typeryyksiä. Melkoisen paljon tuli vastaan kaikkea uutta kivaa.

Koodiin jäi yksi rivi, joka ei oikein auennut mulle.
var polymsh = mesh.ActivePrimitive.Geometry;
Mesh on X3DObject olio, josta otetaan aktiivinen primitiivi (was?) ja siitä geometria data. Mikä hiton aktiivinen primitiivi?

Koodia: [Valitse]
//
// Export mesh.
//
function exportMesh(mesh)
{

    Application.LogMessage("Exporting mesh " + mesh.name);
    var fb = XSIUIToolkit.FileBrowser;
    fb.DialogTitle = "Save mesh " + mesh.name;
    fb.Filter = "GnosisMesh (*.msh)|*.msh||";
    fb.ShowSave();
           
    var polymsh = mesh.ActivePrimitive.Geometry;
   
    var fso = XSIFactory.CreateActiveXObject("Scripting.FileSystemObject");
    Application.logmessage( "Writing file: " + fb.FilePathName );
    var f = fso.CreateTextFile(fb.FilePathName , true);
    f.WriteLine( "GnosisMesh" );
    f.WriteLine( "vertexcount: "+polymsh.points.count );
    f.WriteLine( "facecount: "+polymsh.triangles.count );
    for (i=0; i < polymsh.points.count; i++)
    {
        f.WriteLine( "Vertex " + i + ": " +
            polymsh.points(i).position.x + " " +
            polymsh.points(i).position.y + " " +
            polymsh.points(i).position.z);
    }   
    var iIndexArray = polymsh.triangles.indexarray.toArray();
    for (i=0; i < polymsh.triangles.count; i++)
    {       
        f.WriteLine( "Face " + i + ": " +
            iIndexArray[i * 3] + " " +
            iIndexArray[i * 3 + 1] + " " +
            iIndexArray[i * 3 + 2]);
    }
    f.Close();
   
   
    Application.LogMessage("Exporting done.");
    return true;
}
//----------------------------------------------------------------------------------------------------

//
// Export all meshes.
//
function exportAllMeshes()
{
    var root = Application.ActiveSceneRoot;
    var meshes = root.FindChildren("", siPolyMeshType, null, true);
   
    for (i=0; i < meshes.count; i++)
    {         
        if (!exportMesh(meshes.item(i)))
            Application.LogMessage("Error\n");
    }
   
}
//----------------------------------------------------------------------------------------------------

exportAllMeshes();
Technical Artist - Remedy Games
http://www.verajankorva.com