UE模型拆裝藍(lán)圖實例_第1頁
UE模型拆裝藍(lán)圖實例_第2頁
UE模型拆裝藍(lán)圖實例_第3頁
UE模型拆裝藍(lán)圖實例_第4頁
UE模型拆裝藍(lán)圖實例_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、UE4模型拆裝藍(lán)圖實例最終效果如下圖所示步驟1:導(dǎo)入FBX 并且所有模型的原點在同一個位置 (原點)最好將所有原點歸到所有模型的下方中心 方便散開時候往上散 不至于散到地面一下步驟2:創(chuàng)建新項目 和不同的文件夾(選擇不具有初學(xué)者內(nèi)容 )然后在WorldSeting中添加新的游戲模式和新的PawnClass(添加后系統(tǒng)會自動創(chuàng)建BlueSprint的文件夾)3:將導(dǎo)入的FBX分別創(chuàng)建為藍(lán)圖類如下圖所示在此之前先創(chuàng)建一個藍(lán)圖BP_Expose作為藍(lán)圖父類,然后在BlueSprint文件夾中打開所有FBX創(chuàng)建的藍(lán)圖類,在ClassSetting中設(shè)置它們?yōu)锽P_Expose藍(lán)圖類的子類(就是繼承關(guān)系

2、)*將所有藍(lán)圖拖拽到場景中*進(jìn)入藍(lán)圖部分在藍(lán)圖父類BP_Expose中首先通過Get component by class獲取場景中的藍(lán)圖類(選擇對象為StaticmeshComponent)返回了一個數(shù)組(場景中八個藍(lán)圖類),首先判斷這個數(shù)組是否長度為大于0(否則一切沒有意義),然后通過Get函數(shù)獲取這個數(shù)組的第一個元素將其設(shè)置為名稱為StaticMesh的一個變量,類型為StaticmeshComponent這個步驟的意義在于保存場景中藍(lán)圖類StaticMesh的引用*在這個步驟藍(lán)圖中,主要是通過getComponentBounds獲取模型的中心(重心),不是原點,通過Get direct

3、ion Vector這個函數(shù)算出原點到中心這個方向,以及距離 并且將這數(shù)值保存到兩個以后要用的變量 (散開的距離),random rotator是一個隨機(jī)旋轉(zhuǎn)角度并且賦值個一個旋轉(zhuǎn)變量*這個圖表中顯示通過在藍(lán)圖父類的所有子對象上懸停發(fā)生兩個事件 一個是懸停時候設(shè)置材質(zhì)高亮 一個是離開時候設(shè)置材質(zhì)為普通材質(zhì),也可以在初始時候就將所有的藍(lán)圖類賦予初始材質(zhì) 顯示高亮后又可以變成另外一種普通材質(zhì)*接下來要進(jìn)行的是組裝和拆分兩個動作的自定義事件 可以通過Timeline這個事件節(jié)點來設(shè)置模型拆分出去的動作和旋轉(zhuǎn)的速度 1模型拆分由于清晰度 我截圖分成兩半首先自定CustomEvent 將其命名為huan

4、dong(這個名字最后覺得沒有命名好),然后在這個自定義事件中增加一個整形變量目的是為了以后由這個變量的值來決定是否是依次來拆分還是同時拆分 如果這個變量是一就延遲0.2秒來一次拆分每個模型 如果是0不進(jìn)行延遲,timeline這里就不多說了,游戲開始時候從原點開始,然后通過Ease這個函數(shù)來進(jìn)行線性緩動,緩動原點是0.0.0,目標(biāo)就是P To END這個事先保存好的值,也可以修改,然后再設(shè)置拆分的目的地以及旋轉(zhuǎn)(旋轉(zhuǎn)中也可以通過Ease這個函數(shù)來事先一個線性的角度旋轉(zhuǎn) 不是勻速旋轉(zhuǎn))。這里有一點重要的是沒有講到的 一個狀態(tài)的存儲,我們現(xiàn)在Bluesprint文件夾中右鍵創(chuàng)建一個Enumera

5、tors(枚舉變量),在其中創(chuàng)建兩個變量 分別為Start和end兩種狀態(tài),為了在模型移動后把這種狀態(tài)給保持下來在執(zhí)行拆分模型完成后 將模型位置的狀態(tài)設(shè)置為結(jié)束,將其保存下來 方便以后調(diào)用這個狀態(tài),模型的組裝:其實就是把兩個起始位置和目標(biāo)位置反置一下就可以了*在游戲開始時候要做的事情 通過sequence這個序列節(jié)點來同時做有些事情 如下圖所示 到此在藍(lán)圖類BP_Expose這個父類上的藍(lán)圖節(jié)點連接就結(jié)束了 接下來 我們到MyPawn這個類中進(jìn)行藍(lán)圖調(diào)試與編輯二 在MyPawn這個類中編輯藍(lán)圖*首先在Mypawn中添加Spring和camera ,將相機(jī)作為spring的子類相機(jī)就變?yōu)檫@條sp

6、ring紅線的端點位置了,可以設(shè)置這個紅線的距離 白色圓球就是這個相機(jī)的聚焦位置,為了不讓這個紅線堅持到模型的碰撞 以免發(fā)生錯誤 把Spring這個父類下面的這個DO collision Test勾選框勾掉再把這個打勾,意思是可以讓游戲模式旋轉(zhuǎn),過后將Mypawn拖到場景中 在WorldSetting中設(shè)置游戲模式為自己增加的游戲模式,和我的Mypawn,這樣游戲開始 相機(jī)才是你調(diào)整的那個位置 不然就是默認(rèn)的位置 接下來 我們來控制視角的變換,在ProjectingSetting的在中的AXIS添加兩個控制器MouseX和MouseY分別命名為Yaw和Pitch,并將MouseY的Scale值

7、改為-1. 進(jìn)入圖表,通過Input Axis+Yaw(自己剛才命的名字,調(diào)用鼠標(biāo)控制),然后通過Add controller Yaw Input和Add controller Pitch兩個函數(shù)來執(zhí)行鼠標(biāo)的左右上下控制弄能。*鼠標(biāo)以及視角調(diào)好了我們來做真正意義的模型拆分動作的調(diào)用功能首先我們新建一個變量叫做Is by step(是否一步一步的拆分),這就是在自定義緩動事件時候說的我新建的整形變量 在這里發(fā)揮作用了,這本變量設(shè)置成Bool,大家知道這個變量轉(zhuǎn)換成整形不是0就是1, 下面是這個環(huán)節(jié)的總藍(lán)圖節(jié)點連接表通過兩個鍵盤上的U和I鍵設(shè)置Isbystep這個變量的置 從左邊開始,通過GetA

8、ll Actors of Class 這個節(jié)點來遍歷查找每一個子藍(lán)圖類,然后將其調(diào)用到Ease huandong這個自定義事件上去執(zhí)行 ,這個下面的意思就是如果我設(shè)置成1,等于下面的就沒有變化 在BP_Expose這個藍(lán)圖中的這個節(jié)點就要在每個模型拆分后延遲0.2秒拆分下一個模型,如果我設(shè)置成0,那么Index就是0,0*0.2就是延遲0秒 等于不延遲,接下來就是組裝模型了 其實很簡單 把最后面的調(diào)用自定義事件改為huandong2就可以了*增加一個功能 :當(dāng)我們選中一個對象,立刻聚焦到該模型上,其他模型隨機(jī)隱藏先展示一下最后藍(lán)圖表首先我們得創(chuàng)建一個藍(lán)圖變量,即即時被選中的對象,類型為藍(lán)圖類B

9、P_Expose(我們在項目進(jìn)行開始自己創(chuàng)建的藍(lán)圖父類)在這個功能之前 也是要首先進(jìn)行藍(lán)圖類的查找與遍歷,在LoopBody這個節(jié)點,通過ArrayElement 引出這個節(jié)點,目的是為了在MyPawn中引用,然后通過Set Vibisillty將所有藍(lán)圖隱藏,等隱藏所有完了,再單獨通過創(chuàng)建的CurrentSelect藍(lán)圖變量來設(shè)置當(dāng)前選擇的對象被顯示出來,也是需要通過SetDefaultSceneRoot來引用,然后判斷是否存在,再通過SetActorLocation設(shè)置他的目的地,通過此時的攝像機(jī)位置到該對象的Bounds中心點,這就是為什么引用MyPawn的DefaultSceneRoo

10、t了 不然就沒有起始位置 *接下來 我們做攝像機(jī)返回原點的功能 通過B鍵來是實現(xiàn),而且顯示所有有可能被顯示的物體為初始狀態(tài)首先還是要用到遍歷循環(huán),然后顯示所有的模型,然后再次引用SetDefaultSceneRoot,這樣才能找到攝像機(jī)的位置,然后通過Set。Location和Ratator把所有模型放回原點以及顯示*到了最后一部實現(xiàn)點擊按鈕來一次批量組裝和拆分模型首先需要制作UI為每個按鈕添加點擊事件,將點擊事件設(shè)置成一個封裝的函數(shù) 方便管理界面,這個函數(shù)的功能為調(diào)用后面我們要創(chuàng)建的Step自定義事件,含有一個Inter整形變量的參數(shù),這個自定義事件在Mypawn中創(chuàng)建 ,再回到我們創(chuàng)建的MyWidget中,創(chuàng)建一個自定義函數(shù)調(diào)用鼠標(biāo)和這個Step事件,上圖中,首先我們在UI的藍(lán)圖中,獲取到Get player Pawn這個類 ,然后才能用它里面的一些變量和自定義事件等,再將其轉(zhuǎn)換為我們創(chuàng)建的那個MyPawn,就可以執(zhí)行自定義事件Step了,把這個函數(shù)封裝了,就可以通過鼠標(biāo)來實現(xiàn)點擊按鈕事件了上圖的Index就是我們在藍(lán)圖類BP_Expose創(chuàng)建的變量,作為每個按鈕要選擇的那幾個模型的代號,現(xiàn)在我們來把這個Step在MyPawn中寫好這個自定義事件 是如何實現(xiàn)部分拆裝的 最后的圖表是下圖所示左邊開始,通過遍歷循環(huán)查找對象在Step下面的In

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論