Cara Pertama:
Pada cara yang pertama, saya akan berusaha menjelaskan bagaimana menghasilkan effect ini dengan menggunakan program Anim8or. Anda bisa juga menggunakan program 3D modeller yang lain dengan sedikit penyesuaian.
Pertama-tama siapkan sebuah model.

Bila model ini terdiri dari beberapa mesh, sebaiknya semua mesh tersebut di satukan dengan perintah Join Solid (Build > Join Solid).
Buat duplikat dari model tersebut dan letakkan duplikatnya pada object yang terpisah.
Seterusnya kita akan mengedit model yang kedua
Pilih semua faces/trianggle-nya.
Extrude semua faces/trianglen-ya dengan menggunakan perintah (Extrude Faces connected) sehingga modelnya akan tampak menggembung. Sebaiknya jangan terlalu besar saat meng-extrude face-nya agar efek yang dihasilkan juga tidak terlalu tebal.
Perintah Extrude Faces Connected akan membuat object membesar secara proporsional. Perintah ini sedikit berbeda dengan Scale. Pada perintah Scale, object diperbesar dengan menggunakan pusat object sebagai pusat scale. Dengan menggunakan Extrude Faces Connected, tiap object akan di scale dengan menggerakkan tiap vertex searah dengan arah normalnya.
Untuk melihat perbedaannya, anda bisa mencoba sendiri kedua perintah diatas.

Setelah itu set materialnya. Untuk menghasilkan effect cel shading kita perlu material yang bersifat bolak balik. Bagian depan di set transparant, sedangkan bagian belakang di set dengan warna hitam. Untuk lebih jelasnya perhatikan gambar berikut:

Setelah itu, kita tinggal menggabungkan object pertama dan kedua:

Hasilnya adalah sebuah model dengan outline yang tampak seperti gambar pada game HARVESTMOON 2: SAVE THE HOMELAND.
Cara Kedua:
Pada cara kedua, kita akan membuat effect yang sama dengan bahasa pemrograman. Untuk itu anda sebaiknya memiliki dasar pengetahuan tentang pemrograman dan model 3D.
Kodenya adalah sebagai berikut. Kode ini ditulis dengan menggunakan Blitz3D. Anda bisa mendownload Blitz3D disini.
Graphics3D 640,480,16,2
SetBuffer BackBuffer()
camera=CreateCamera()
light=CreateLight()
PositionEntity camera,0,70,-100
TurnEntity camera,10,0,0
CameraClsColor camera,255,255,255
;load model
model=LoadAnimMesh("nana.b3d")
EntityFX model,1
model2=LoadAnimMesh("nana.b3d",model)
EntityFX model2,2
FlipMesh model2
EntityColor model2,0,0,0
Animate model,1
Animate model2,1
;scale model
For count=1 To CountSurfaces(model2)
surf=GetSurface(model2,count)
For a=0 To CountVertices(surf)-1
xm#=VertexNX(surf,a)*1.5
ym#=VertexNY(surf,a)*1.5
zm#=VertexNZ(surf,a)*1.5
x#=VertexX(surf,a)
y#=VertexY(surf,a)
z#=VertexZ(surf,a)
VertexCoords surf,a,x-xm,y-ym,z-zm
VertexColor surf,a,0,0,0
Next
Next
;render
While Not KeyHit(1)
Cls
TurnEntity model,0,1,0
RenderWorld
UpdateWorld
Flip
Wend
End
Penjelasan program.
Program ini terdiri dari 3 bagian: load, fx, dan render
Pada bagian load kita meload 2 buah model yang berasal dari file yang sama.
Pada bagian FX, kita mengedit model yang diload kedua. Model ini di edit per vertex. Prosesnya sama dengan proses yang dilakukan dengan Anim8or, hanya saja disini kita menggunakan code untuk menghasilkan FX secara realtime.
Kita membesarkan model sedikit dengan cara menggerakkan tiap vertexnya searah dengan arah normal dari vertex tersebut. Kemudian modelnya dibalik dan diberi warna hitam atau warna yang lainnya.
Yang perlu diperhatikan disini adalah kita tidak bisa menzoom modelnya secara langsung. Menzoom model akan menyebabkan model diperbesar relative terhadap origin. Hal ini tidak akan menghasilkan FX yang bagus. Untuk menghasilkan FX seperti cel shade maka tiap vertex harus digerakkan searah dengan arah normal dari vertex tersebut.
Pada bagian render, prosesnya berjalan seperti biasa. Kedua model dianimasikan secara bersama-sama. Model yang kedua akan tampak dari belakang, sehingga warnanya tampak hitam dan karena ukurannya yang sedikit besar maka akan tampak seperti outline.

Gambar hasil rendering dengan menggunakan kode.
Postingan Sebelumnya:
3D Fake Cell Shading (1)




0 komentar:
Poskan Komentar