Sabtu, 13 Juni 2015

Model / Objek 3D dengan 3ds max

Pagi rekan-rekan sekalian...walau badan masih lelah tapi ngblog tetap jalan terus...


Seperti janjiku sebelumnya, aku akan membahas cara membuat model/objek 3D dengan menggunakan 3ds max, model contoh yang ogut pakai tentu yang sederhana saja karena ogut programmer bukan 3D artist.

Software 3ds max banyak dipakai oleh pengguna komputer untuk membuat model 3D dan membuat animasi. Para pembuat game profesional juga menggunakan software ini untuk membuat tokoh game, terrain dan objek-objek yang lain.

Versi yang ogut gunakan untuk membahas pembuatan model ini adalah 3ds max versi 6.0, ogut memakai versi ini agar rekan-rekan yang memakai komputer dengan memory terbatas masih tetap bisa belajar cara membuat model dengan software ini (di samping itu laptop ogut juga jadoooeelll...hehehe).

Ok Lanjut ya...objek 3D yang akan kita buat adalah sebuah teko, objek ini sudah disediakan oleh 3ds max, rekan-rekan tinggal memanggilnya saja.

Pertama jalankan 3ds max 6.0 di komputer Anda.


Pilih Create, Standard Primitives lalu klik pada tombol Teapot seperti tampak pada gambar di bawah.


Pada Front view buatlah teko dengan cara klik pada area Front view, ubahlah Radius=1.0 dan Segments menjadi 8, lalu klik tombol Zoom Extents All di sudut kanan bawah.


Aturlah agar teko berada di pusat sumbu dengan cara klik pada tombol yang bergambar empat arah panah, lalu geser posisi teko.


Lalu konversi teko di atas menjadi Editable Mesh dengan cara klik pada Modify, lalu pilih Edit Mesh.


Berikutnya Anda harus menjalankan script, klik pada menu MAXScript, pilih Run Script.


Pilih heriadyblog_Script3dsMax, lalu klik tombol Open.


Hasil akhir setelah script dijalankan akan tampak seperti gambar di bawah. Klik tombol OK untuk mengakhiri.


Setelah menjalankan script Anda akan mendapatkan sebuah file dengan ekstensi *.MeshTXT, file ini dapat rekan-rekan load di program OpenGL sehingga objek yang dibuat dengan 3ds max bisa  ditampilkan.

Berikut ini adalah kode script yang digunakan untuk membuat file *.MeshTXT.

--script 3ds max 07-03-30
-------------------------------

NamaMesh = $

--kondisi mesh tidak terpilih
-----------------------------
try
   NamaFile = NamaMesh.name
catch
(
   messageBox "Pilih mesh yang akan dikonversi"
   NamaFile = "Error"
)

--kondisi jika bukan mesh
-------------------------
if NamaFile != "Error" do
(
    try
          testEditMesh = getNumFaces(NamaMesh)
    catch
    (
          messageBox "Bukan Editable Mesh"
          NamaFile = "Error"
    )
)

if NamaFile != "Error" do
(
    NamaFileMesh =    NamaFile + ".MeshTXT"
    cf = createFile NamaFileMesh

    tot_TF = getNumFaces(NamaMesh)
    tot_TV = getNumVerts(NamaMesh)
    tot_TK = getNumTVerts(NamaMesh)
       
    format "%      %       %\n"    tot_TF tot_TK tot_TV to: cf

    -------------------------------------------------------------------------------------
    --face , index vertex1, index vertex2, index vertex3, index tk1, index tk2, index tk3
    -------------------------------------------------------------------------------------
    for i = 1 to getNumFaces(NamaMesh) do 
    (
        tempface = getFace NamaMesh i
        temp_tk = getTVFace NamaMesh i

        printfacex =  tempface.x as integer
        printfacey =  tempface.y as integer
        printfacez =  tempface.z as integer
       
        printtkx   = temp_tk.x as integer
        printtky   = temp_tk.y as integer
        printtkz   = temp_tk.z as integer

        --if i  == getNumFaces(NamaMesh) then
        --    format "%   %   %     %   %   %"    printfacex  printfacey  printfacez   printtkx printtky printtkZ  to: cf
        --else
            format "%   %   %     %   %   %\n"  printfacex  printfacey  printfacez   printtkx printtky printtkz  to: cf
   
    )

    -- "titik s    titik t"

    for i = 1 to getNumTVerts(NamaMesh) do 
    (
        TK = getTVert NamaMesh i
       
        --if i  == getNumTVerts(NamaMesh) then       
        --    format "%    %" TK.x   TK.y   to: cf
        --else   
            format "%    %\n" TK.x   TK.y    to: cf   
    )    
       
    --"titikX  titikY   titikZ"
    ----------------------------------------------------
    for i = 1 to getNumVerts(NamaMesh) do 
    (
        myvertex = getVert NamaMesh i
   
        --if i  == getNumVerts(NamaMesh) then
        --    format "%   %   %"  myvertex.x  myvertex.y myvertex.z to: cf
        --else
            format "%   %   %\n"  myvertex.x  myvertex.y myvertex.z to: cf
    )
    close  cf
    messageBox "Konversi selesai"
) --end if

Satu hal lagi yang harus rekan-rekan perhatikan, sistem koordinat yang dipakai OpenGL dan 3ds max berbeda, sehingga perlu penyesuaian di program OpenGL yang rekan-rekan buat.

Di bawah ini adalah sistem koordinat yang dipakai OpenGL.


Sedangkan sistem koordinat yang dipakai oleh 3ds max sebagai berikut.


Dari dua gambar tersebut dapat disimpulkan jika suatu object yang dibuat dengan 3ds max hendak ditampilkan pada OpenGL maka object tersebut harus diputar pada sumbu X sebesar -90°.

Contoh program yang memakai objek buatan 3ds max telah ogut posting sebelumnya, rekan-rekan dapat mendownload contoh programnya beserta script dan contoh objek garden 3D.



Demikian artikel kali ini, gimana mantap tidak, dengan cara seperti ini rekan-rekan dapat berkreasi sebebas-bebasnya, bisa membuat tank, pesawat tempur, jagoan sakti, dan lain-lain, dan lain-lain, pokoknya banyak dah.

Update 29 Des 2015

Setelah rekan-rekan mencoba untuk membuat objek 3D seperti contoh di atas, rekan-rekan bisa melanjutkan untuk membuat objek 3D low polygon (sedikit poligon) yang bisa digunakan untuk game 3D.


Setelah itu rekan-rekan bisa membuat program animasi Hely 3D seperti gambar di bawah ini.



Sekian dulu yah...selamat belajar dan berkreasi...kreasi tanpa batas...


Heriady
heriady.yoh@gmail.com


NB.
Jika rekan-rekan mempunyai objek 3D yang ingin ditampilkan di blog ini, ogut menerima sumbangan. Nama rekan-rekan akan ogut tampilkan tanpa edit, tapi orisinil ya hasil karya Anda.


Artikel terkait
Membuat Terrain untuk Hely 3D

Objek 3D low polygon dengan 3ds max

Membuat Animasi Hely 3D dengan OpenGL

Garden 3ds max

Konsep Face dan Metode 3 Daftar

Teori Animasi 3D dengan Vektor R3

Contoh Program Animasi 3D dengan OpenGL

Animasi dengan Vektor Translasi

Animasi dengan Vektor Translasi 2

Animasi 3D dengan Objek MD2

Matematika Vektor R3

Matematika Vektor R2