commit to user
Gambar 4.24 Pengimportan dan pengeditan objek wayang menggunakan 3DsMax
4.2.2 Pengeksportan Objek
Pada langkah ini kita akan merubah objek 3D .fbx yang telah kita buat sebelumnya menjadi .scene, .mesh, dan . material. Hasil eksportan inilah yang
akan digunakan agar nanti objek 3D dapat terbaca oleh program dfusion studio. Langkah yang harus dilakukan pertama kali yaitu kita menjalankan
program Autodesk Maya terlebih dahulu. Berikutnya kita import objek-objek yang telah kita buat di 3DsMax kedalam Maya. Pada tab toolbar pilih
“DFusion AR Exporter” dan kita atur letak folder dan nama scenenya supaya kita tidak kesulitan ketika akan memasukkannya kedalam program.
Gambar 4.25 Pengeksportan objek 3D peta
commit to user
Gambar 4.26 Pengeksportan objek 3D maket
Gambar 4.27 Pengeksportan objek 3D Jolen
Gambar 4.28 Pengeksportan objek 3D Sangkok
commit to user
Gambar 4.29 Pengeksportan objek 3D Kendhi
Gambar 4.30 Pengeksportan objek 3D Keris
Gambar 4.31 Pengeksportan objek 3D Talang Candhi
commit to user
Gambar 4.32 Pengeksportan objek 3D Joli
Gambar 4.33 Pengeksportan objek 3D Gong Kyai Rendheng
Gambar 4.34 Pengeksportan objek 3D Kreto Kyai Morosebo
commit to user
Gambar 4.35 Pengeksportan objek 3D Wayang
4.2.3 Pembuatan Desain Frame Pembuka
Gambar 4.36 Pembuatan desain frame pembuka
Pembuatan background dalam aplikasi ini dilakukan secara manual dengan memanfaatkan tools yang ada pada Adobe Photoshop CS4. Ukuran
background dibuat sesuai dengan ukuran aplikasi yang ingin dibuat, yaitu 1280 x 720 px. Kemudian disimpan dengan format .png.
4.2.4 Pembuatan Script Aplikasi
Pada pembuatan script aplikasi ini kita menggunakan software notepad++. Kemudian kita buat 3 file cript yang terdiri dari project.dpd yang
berisikan tentang deklarasi variabel objek-objek yang akan kita masukkan ke dalam aplikasi, globals.lua yang berisikan tentang variabel dari tracker yang
telah kita buat sebelumnya, dan yang terakhir yaitu scenario.lua yang berisikan tentang logika pemrograman aplikasi yang nantinya berfungsi
commit to user
mengatur jalannya aplikasi sehingga hasilnya sesuai dengan yang kita harapkan.
a. Project .dpd
Gambar 4.37 Pembuatan script project.dpd
---script untuk mengakses marker dan settingan camera yang sudah kita atur sebelumnya---
dfusion settings
rendering fullscreen=true
vsync=true width=1280
height=720 antialiasing=2 settings
scene videocapture name=Captur file=tCameraConfig.xml
videotexture name=texture videocapture=Captur camera
position={0.000000, 0.000000,
0.000000} orientation={0,0,0} name=Camera file=tCameraCalib.xml
viewport name=viewport0
camera=Camera background=texture
---akhir script untuk memanggil marker dan settingan camera yang sudah kita atur sebelumnya---
commit to user
--script untuk mengatur pembagian parameter trigger yang kita buat-- object3d name=MLTparameters
luascript name=Globals file=Globals.lua trigger=true priority=10
luascript name=Scenario file=Scenario.lua trigger=true priority=9
object3d --akhir script untuk mengatur pembagian parameter trigger yang kita
buat--
--Script untuk mengakses objek 3D yang sudah kita export kedalam .scene, .material dan .mesh--
object3d name=halaman1
position={0,0,0} orientation={0,0,0} visible=true
scenette position={0,0,0}
orientation= {90,0,0}
scale={2.633,2.633,2.633} name=peta
visible=true file=rpetapeta.scene
object3d --akhir script untuk mengakses file objek 3D yang sudah kita export
kedalam .scene, .material dan .mesh—
--script untuk mengakses frame yang kita buat dengan format .png-- overlay name = frame overlayname = MyOverlayframe
file=roverlayoverlay.overlay visible=false --akhir script untuk mengakses frame yang kita buat dengan format
.png--
--script untuk mengakses sound yang akan kita gunakan dengan format .ogg--
sound name =backsound file = rsoundbacksound.ogg position = {0,0,0} orientation ={1,0,0,0} visible =false rendergroup
commit to user
=50 scale = {1,1,1} visibilitymask = -1 loop = true spatialize = false streaming =false
-- akhir script untuk mengakses sound yang akan kita gunakan dengan format .ogg--
b. Globals .lua
Gambar 4.38 Pembuatan script globals .lua
--script pembuatan variabel yang digunakan untuk mengambil objek- objek 3D yang berada pada halaman 1--
halaman1 = Object3Dscene:getObjectByNamehalaman1 --akhir script pembuatan variabel yang digunakan untuk mengambil
objek-objek yang berada pada halaman 1—
--script untuk mengakses variable camera yang sudah kita buat pada project .dpd--
camera = Camerascene:getObjectByNameCamera --akhir script untuk mengakses variable camera yang sudah kita buat
pada project .dpd--
commit to user
--script untuk mengakses video capture yang sudah dibuat di project .dpd--
Cap = VideoCapturescene:getObjectByNameCaptur --akhir script untuk mengakses video capture yang sudah dibuat di
project .dpd--
--script memberikan nilai awal pada marker yang dibuat jumlahnya disesuaikan dengan jumlah marker yang digunakan--
MLTPlugin = getMLTPluginManager trackingindex = -1
err_ret = eOk targetstatus1 = -1
targetstatus2 = -1 targetstatus3 = -1
--akhir script memberikan nilai awal pada marker yang dibuat--
--script untuk
menentukan variable
markerjumlah variable
disesuaikan dengan jumlah marker yang digunakan yang berada pada tracker .xml--
objectindex1 = 0 objectindex2 = 1
objectindex3 = 2 --akhir script untuk menentukan variable markerjumlah variable
disesuaikan dengan jumlah marker yang digunakan yang berada pada tracker .xml--
--script untuk menentukan nilai awal index pointing jumlah variable disesuaikan dengan jumlah marker yang menggunakan teknik
pointing-- pointingindexhal1 = -1
pointingindexhal2 = -1 pointingindexhal3 = -1
commit to user
--akhir script untuk menentukan nilai awal index pointing jumlah variable disesuaikan dengan jumlah marker yang menggunakan teknik
pointing-- c.
Scenario .lua
Gambar 4.39 Pembuatan script scenario .lua
--script membuat variabel yang memanggil objek 3D beserta animasniya yang sudah kita buat di project .dpd--
local peta = Scenette scene:getObjectByNamepeta local animpeta = Animationpeta:getAnimationtimeline
--akhir script membuat variabel yang memanggil objek 3D beserta animasniya yang sudah kita buat di project .dpd--
--script untuk mengatur default animasi looping atau tidak dan default tampak ato tidaknya objek 3D tersebut ketika dipanggil pada kondisi
baru-- animpeta : setLooptrue
peta :setVisiblefalse -- akhir script untuk mengatur default animasi looping atau tidak dan
default tampak atau tidaknya objek 3D tersebut ketika dipanggil pada kondisi baru--
commit to user
--script untuk memulai tracking-- err_ret, trackingindex = MLTPlugin:startTrackingttracker.xml,
Cap:getVidCapID, camera coroutine.yield
--akhir script untuk memulai tracking--
--script membuat variable tombolpointing yang digunakan sebagai nilai awal ketika nantinya akan membuat kondisi dan logika baru--
tombolhal1 = 0 tombolhal2 = 0
tombolhal3 = 0 tombolhal4 = 0
--akhir script membuat variable tombolpointing yang digunakan sebagai nilai awal ketika nantinya akan membuat kondisi dan logika
baru--
--script untuk membuat variable yang memanggil variable frame yang sudah dibuat didalam project.dpd--
frame = Overlay scene:getObjectByNameframe frame : setVisibletrue
--script untuk membuat variable yang memanggil variable frame yang sudah dibuat didalam project.dpd--
--script untuk membuat variable video yang ditanam kedalam material objek 3D--
local videotexture_TI = VideoTexturescene:getObjectByNamevideotexture_TI
local videocapture_TI = VideoCapturescene:getObjectByNamevideocapture_TI
local PlanForSnapshot2 = Entityscene:getObjectByNamePlanForSnapshot2
commit to user
local PlanForSnapshot2_material = PlanForSnapshot2:getMaterial0
PlanForSnapshot2_material:setTexturevideotexture_TI,0,1,0 PlanForSnapshot2_material:setTexturevideotexture_TI,0,1,0
--akhir script untuk membuat variable video yang ditanam kedalam material objek 3D--
--script untuk memanggil variable marker yang sudah dibuat di globals.lua--
err_ret, targetstatus1 = MLTPlugin:getTargetStatustrackingindex, objectindex1
err_ret, targetstatus2 = MLTPlugin:getTargetStatustrackingindex, objectindex2
err_ret, targetstatus3 = MLTPlugin:getTargetStatustrackingindex, objectindex3
err_ret, targetstatus4 = MLTPlugin:getTargetStatustrackingindex, objectindex4
err_ret, targetstatus5 = MLTPlugin:getTargetStatustrackingindex, objectindex5
--akhir script untuk memanggil variable marker yang sudah dibuat di globals.lua--
--script untuk memanggil variable pointing yang sudah dibuat di globals.lua--
err_ret, pointingindexhal1 = MLTPlugin:getPointedAreaIndextrackingindex, objectindex1
err_ret, pointingindexhal2 = MLTPlugin:getPointedAreaIndextrackingindex, objectindex2
err_ret, pointingindexhal3 = MLTPlugin:getPointedAreaIndextrackingindex, objectindex3
err_ret, pointingindexhal4 = MLTPlugin:getPointedAreaIndextrackingindex, objectindex4
commit to user
--akhir script untuk memanggil variable pointing yang sudah dibuat di globals.lua--
--script kondisi jika nilai pointing pada halaman1 = 0 maka nilai variable tombol halaman1 = 1--
if pointingindexhal1 == 0 then tombolhal1 = 1
end --akhir script kondisi jika nilai pointing pada halaman1 = 0 maka nilai
variable tombol halaman1 = 1disesuaikan dengan jumlah pointing yang digunakan pada halaman 1--
--script kondisi jika marker 1 terdeteksi-- if targetstatus1 ~= 0 then
framepembuka : setVisiblefalse err_ret = MLTPlugin:getTargetPostrackingindex,
objectindex1, position, orientation
--script jika tombolhal1 = 1 maka akan menampilkan objek peta dan framepeta--
if tombolhal1 == 1 then peta : setVisibletrue
maket : setVisible false tahta : setVisiblefalse
bandara : setVisiblefalse purwosari : setVisiblefalse
balapan : setVisiblefalse tirtonadi : setVisiblefalse
planeghost : setVisibletrue animtahta : stop
animbandara : stop animpurwosari : stop
commit to user
animbalapan : stop animtirtonadi : stop
silsilah : setVisiblefalse framepeta : setVisibletrue
framemaket : setVisiblefalse end
--akhir script jika tombolhal1 = 1 maka akan menampilkan objek peta dan framepeta--
--script jika halaman 1 langsung terdeteksi makan akan langsung dieksekusi--
halaman1 : setPositionposition,camera halaman1 : setOrientationorientation,camera
animpeta : play --akhir script jika halaman 1 langsung terdeteksi makan akan langsung
dieksekusi--
--script kondisi lain jika semua yang ada pada kondisi sebelumnya tidak tereksekusi--
else peta : setVisiblefalse
maket : setVisiblefalse tahta : setVisiblefalse
bandara : setVisiblefalse purwosari : setVisiblefalse
balapan : setVisiblefalse tirtonadi : setVisiblefalse
planeghost : setVisiblefalse animtahta : stop
animbandara : stop animpurwosari : stop
animbalapan : stop
commit to user
animtirtonadi : stop animpeta : stop
silsilah : setVisiblefalse framepeta : setVisiblefalse
framemaket : setVisiblefalse tombolhal1 = 0
end --akhir script kondisi lain jika semua yang ada pada kondisi
sebelumnya tidak tereksekusi--
d. Overlay.overlay
Gambar 4.40 Pembuatan script overlay.overlay
--script untuk membuat variable overlay-- MyOverlayframe
{ container BorderPanelOverlayframe
{ to test pixel mode :
metrics_mode pixels left 0
top 0 width 1280
height 720
commit to user
material Material_frame }
} --akhir script untuk membuat variable overlay--
e. Overlay.material
Gambar 4.41 Pembuatan script overlay.material
--script untuk memanggil overlay frame.png -- material Material_frame
{ technique
{ pass
{ scene_blend alpha_blend
texture_unit {
texture frame.png }
} }
} --akhir script untuk membuat overlay frame--
commit to user
4.2.5 Penataan Objek didalam Dfusion Studio AR