MAKAR | AR/VR/MR 教學

教學

玩MAKAR 也可以學理化-製作加農砲專案

1. 先下載素材檔案cannon.zip,解壓縮後並將素材匯入MAKAR
https://drive.google.com/file/d/1HdJHrGcdfRRikf1zViDViWFNuRBjVmCz/view?usp=sharing
解壓縮後會有相關的素材檔案如下圖所示,點選建立新專案 > 選擇 空間辨識,輸入專案名稱cannon,並於右下角按下確認




2. 於畫面左方找到  新增素材 > 選擇3D模型




3. 找到素材資料夾,分別將cannon.fbx 及 wheel.fbx兩個模型檔新增至素材庫中


 


4. 繼續將圖片及music音樂檔新增至素材庫,分別選擇新增素材 > 圖片 及 新增素材 > 音樂





5. 素材新增至素材庫後,要將素材拖拉至場景上,開始編輯場景物件及相關邏輯程式
 
將炮身cannon素材新增置場景上,設定炮身cannon 位置、旋轉、縮放尺寸,並取消可操作與新增邏輯功能

將cannon由素材庫中拖拉至場景上

 


6. 並於右方設定設定位置、旋轉、縮放之數值,並將可操作之啟用按鈕”關閉”




 
7. 點選下方新增功能,加入邏輯功能





設定完成後如下圖

 
 
 

8. 將wheel由素材庫中拖拉至場景上,設定車輪wheel 位置、旋轉、縮放尺寸,並取消可操作與新增邏輯功能




 
9. 依序將arror-right,arror-left,arror-up,arror-down,fire等圖片新增由素材庫中拖拉至場景上,並分別設定各圖片之位置與縮放尺寸,並取消可操作及新增邏輯功能




10. 將上述各圖片取消可操作與新增邏輯功能


 


11. 將explosion動畫圖片由素材庫中拖拉至場景上,並設定位置與縮放尺寸,並取消可操作與新增邏輯功能





12. 將explosion動畫圖片由素材酷中拖拉至場景上,並設定位置與縮放尺寸,並取消可操作與新增邏輯功能






13. 將music素材拖拉至場景上,並設定位置與取消循環播放功能,並新增邏輯功能





14. 在場景上新增燈光Light,在素材庫中找到Light燈光素材並拖拉至場景上







設定燈光位置、旋轉、其光線強度




【關於群組】
分別將arror-right、arror-left、arror-up、arror-down、fire場景上五個物件拖至wheel上合併至wheel群組中,群組(容器)的操作在MAKAR中是非常方便及變化性的應用,
例如要將fire素材加入wheel群組中,可在左方場景物件列表中以滑鼠左鍵拖拉fire素材名稱至wheel名稱上,再放開滑鼠左鍵即可,fire素材加入wheel群組後,會在wheel名稱前方顯示三角形標示,
表示wheel群組內有包含其他物件,依序將其他arror拖拉至wheel群組中,完成後可以點選wheel前方三角形標示,將群組列表中的物件呈現與收起 ~(群組操作請見下方說明)

※ 將fire 物件以滑鼠左鍵拖拉至wheel上再放開左鍵即可將fire物件放入wheel中成為群組



 


15. 於素材庫中將球體Sphere拖拉至場景中,並設定位置及縮放尺寸






16. 最後在左方場景物件中在Sphere名稱上以滑鼠左鍵點兩下,修改名稱為ball





17. 接下來開始編輯邏輯程式部分,點選上方選項邏輯


 

開啟邏輯編輯器

 



1. 左方為各種程式積木,滑鼠游標移動至各項目名稱上方會顯示出該項目中各種積木,將積木拖拉至右方空白空間中即可編輯積木程式


 


程式中使用變數來存取各項數據方便程式設計
變數名稱 項目 數值 變數名稱 項目 數值
ax cannon-x座標 0 vx ball-x方向速度值 0
ay cannon-y座標 0.24 vy ball-y方向速度值 0.3
az Cannon-z座標 0.1 vz ball-z方向速度值 0.4
bx ball-x座標 0 dvy 砲管不同高度,ball-y方向速度變化值 0.1
by ball-y座標 0.33 dvz 砲管不同高度ball-z方向速度變化值 0.05
bz ball-z座標 0.4 xx 大砲左右方向移動距離 0.1
cx wheel-x座標 0 th 設定砲管上升下降角度 10
cy wheel-y座標 0.18 bx1 ball-x座標暫存變數  
cz wheel-z座標 0.14 by1 ball-y座標暫存變數  
      bz1 ball-z座標暫存變數  

【程式部分】

1. 由左方程式積木中變數項目裡拖拉出,先宣告程式所需用到的變數,點選  變數>宣告變數,將上表所列變數宣告





宣告完成各變數後如下圖





2. 將設定bx積木拖拉至右方編輯區


 
 
 
3. 點選資料 > 選擇 1 積木,拖拉至設定bx積木右方空間中,點選1,設定為0


 
 
 
  
4. 變數設定,將下列變數值設定

 
 

  
程式:按下向右箭頭,大砲向右移動

1. 選取事件 > 拖拉點擊執行積木至編輯區中,形狀物件選取arror-right





2. 選取控制 > 拖拉 假如執行積木至編輯區中





3. 選取變數 > bx積木拖拉至假如執行中,如下圖

      



4. 選取 轉變 > 在 ~秒內將 移至 積木拖拉至編輯區





5. 選取 運算子 > 數學 + 積木拖拉至編輯區





6. 選取 變數 > 設定 bx 為 積木拖拉至編輯區,並點選bx設定不同變數







7. 依照下圖將按下右鍵移動的程式完成
 



 
8. 將游標移動到點擊執行積木之左上角,會出現一個複製的圖示,點擊複製圖示可以將整串程式積木複製


 

 

 
程式:按下向左箭頭,大砲向左移動

1. 將複製出的程式改成下圖,即完成按下向左箭頭移動的程式





程式:按下向上箭頭,大砲向上抬升,當by值大於0.6則停止抬升
 

 
 
 
程式:按下向下箭頭,大砲向下降,當by值小於0.331則停止下降


 

 
程式:發射砲彈軌跡



1. 這裡的vx 值為零(因為砲彈沒有x方向的速度變化)
vz則為砲彈z方向的位置變化量,vz越大砲彈前進速度越快,對應到座標上,則每次循環都前進固定的距離(z方向設定為等速運動)







2. 這部分是設定y方向的位置,砲彈在發射後受地心引力影響,向上的速度會越來越小,直到最高點不再向上運動,然後開始下墜,vy值設定為砲彈向上運動的原始速度值,vy越大砲彈上升的位置會越高,vy會隨著高度越來越高而減小,所以每次循環會減0.05,by1則為原本砲彈的y座標的更新暫存值,每次by1的值增加的數值就是vy的部分(vy值越來越小),當高度到達最高點後,vy值變負值,這時候砲彈開始向下落







3. 最後即完成了大砲的程式設計。
最後魚場景物件中將ball 與explosion 兩項設定為不顯示(點選眼睛即可)





4. 點選右上角 > 發佈專案