UE4藍圖筆記



1.函數可以是 純函數(Pure) 也可以是 非純函數 。主要的區別是純函數不會以任何方式修改狀態或者類的成員, 而非純函數可以自由地修改狀態。
純函數一般用於 getter 函數 或者僅輸出一個數據值的操作符。


2.對於每個連接到純函數上的節點,都會調用一次純函數。


3.在代碼中定義的函數的函數聲明中指定 BlueprintPure 關鍵字。


4.藍圖中一個方塊表示一個節點,節點是個函數,節點中有引腳,五角形引腳是流程引腳,圓形引腳是參數和返回數引腳。


5.timeline節點中play是從上次終止的地方開始的,play from start是從最開頭開始。(用timeline做一個動畫, 播放,一半的時候再點停止,然
後再點play和play from start,效果是不一樣的)


6.InvertRotator :逆轉旋轉角。輸入一個Rotator(Vector3)型值,輸出一個Rotator型值。


7.CombineRotator :合成旋轉角。輸入兩個Rotator型值,輸出一個Rotator型值。


8.輸入的鍵值可以用變量裝載,在細節窗口將變量的類型設置爲Kye型,並且賦默認值。


9.藍圖類創建要先在視口窗口中設置相應屬性再拉到場景中,空物體可以看情況。


10.抓取對象時,Cast To再加類別(Actor、Pawn、Trigger、自設類、、、)


11.太陽光照藍圖使用Lever BluePrint,在世界大綱中找到Light Soure和Sky Sphere作爲變量進行設置,用TimeLine輸出個變化的float值來設置
rotation的一軸模仿日出日落,另外還要用Update Sun Direction函數來更新太陽光照。


12.在場景中選中對象,再在藍圖編輯頁面右擊輸入get快速獲取對象變量。


13.藍圖類網格替換:在Viewport頁面選中對象添加相應的網格組件,再將原來的網格組件刪除。


14.如要對藍圖類的網格進行編輯,需添加Movement組件。


15.要在藍圖類網格上顯示文字,需添加TextRender組件。設置文字後,因爲沒有自動更新,所以要先將藍圖類拉到場景中,然後再回到Viewport頁面
繼續設置。


16.AI角色需添加PawnSensing組件才能“看”到玩家。選中PawnSensing右擊選擇OnSeePawn(PawnSensing)檢測“看到”這事件,然後對比對方是不
是玩家(方法:Cast To ThirdPersonCharacter ;對象:Get Player Charater),確定目標後跟隨目標(AI MoveTo),到達目的點後,可以
DestroyActor,同時添加爆炸效果Spawn Emitter at Location。


17.小地圖製作 : 在Character身上綁定小地圖攝像機,並給它添加一個SceneCaptureComponent2D組件,在Details視窗的SceneCapture下設置地圖貼
圖,貼圖需預先在Content Browser下創建一個 TextureRenderTarget2D 圖片,打開圖片窗口在Details視窗的Compression下設置Compression Setings
爲UserInterface2D(RGBA)格式,另外需注意將小地圖攝像機的Activation設置的勾去掉,不然小地圖攝像機會取代主攝像機,右擊貼圖創建Material,


18.Player Start :僅作生成Pawn的Transform用,其他操作不在該類中執行。


19.Character類藍圖的Pawn要將Auto Possess Player選項設爲Player 0纔會被默認爲主角,纔可以對主角進行控制。


20.BSP轉換的StaticMesh沒有collision,需手動製作。


21.Player的控制需自己編寫藍圖添加上去。


22.碰撞預設值決定兩個物體碰撞是發生全部硬碰block all、部分硬碰block only還是觸發trigger


23.(1)虛幻中的類前綴你會見到U,A,F,以下就是很好的羅列其中的意義:
    ? U: UObject繼承過來的,例如UTexture 
    ? A: AActor繼承過來的,例如AGameMode 
    ? F: 其他的類和結構,例如FName, FVector 
    ? T:模板,例如TArray,TMap,TQueue 
    ? I: 接口類,ITransaction 
    ? E:枚舉, ESelectionMode 
    ? B: Boolean, bEnabled


   (2)用宏定義來包裹C++代碼 
    ? UCLASS 來包裹類 
    ? USTRUCT 包裹結構 
    ? UFUNCTION 包裹功能 
    ? UPROPERTY 包裹屬性


24.移動是一個過程,單純的按鍵只是true或者false的bool值,所以需自設Axis Mapping軸映射按鍵,使按鍵觸發輸入軸事件,輸入成逐變變量,
類同U3D的Mouse Axis。


25.靜態網格物體可以創建破裂網格物體,發生碰撞後會破裂成碎片。


26.UE4骨架導入,要將Skeletal Mesh拉過去,根據需要(要不要原骨架,None或者名字)在選框裏選擇,選None系統會自動生成默認的Skeketon和
PhysicsAsset文件(三種文件的後輟都是.uasset)。動畫導入,拉過去後需要選定骨架。


27.Character本身已有膠囊體碰撞盒,要添加其他碰撞盒,需要另外添加插槽綁定碰撞盒。


28.細節Detail頁面下相機的設定Camera Setting中,勾選Use Pawn Control Rotation會使相機的Rotation跟隨Pawn變動,相機會不能鎖定主角。
Character藍圖的視口頁面裏的Camera Setting項下應勾選Use Controller View Rotation。


29.Projectile Movement組件必須勾選Initial Velocity in Local Space選項,否則Velocity的方向不會改變,只會按照初始設置的Velocity運動。


30.Collision必須勾上Simulation Generates Hit Events才能返回Hit事件,否則Hit事件不執行。


31.自定義事件Custom可以在本藍圖裏隨意調用,適當利用自定義事件可以是藍圖代碼更加靈活。


32.將一些功能寫在組件藍圖BlueprintComponent裏,根據需要添加組件,使工作更高效。


33.構建藍圖僅在生成構建Actor時執行,可以時重複生成的Actor具有各異性,降低重複感。


34.For循環開始執行之後很難被Break,應設置自設事件,在循環體裏設置打斷條件,觸發條件時調用自設事件。


35.插槽可以用來綁定一些特定的附件在骨骼的某個位置上,比如碰撞盒、武器、頭髮鞭、盔甲部件等等。


36.在關卡藍圖調用或者添加其他藍圖類裏的事件(包括自定義事件),需要將藍圖類拉到場景裏並選定,然後在關卡藍圖編輯頁面右擊可以看到調用
選項。不選定場景物體在關卡藍圖右擊是不會顯示調用選項。


37.人物裝備綁定 :在人物藍圖的視口頁面中,添加一個ChildActor在人物上,移好位置,在事件頁面用AttachTo函數添加組件,在資源文件夾裏將要
加的物體拉到事件頁面裏,頁面出現一個Add*(類型)*Component函數,設置好添加組件的相對Transform屬性,然後將輸出值連到AttachTo的目標節
點上。


38.人物轉向 : Character組件裏細節頁面的Paw項下要設置相應的轉向設置才能實現人物轉向功能,Camera組件裏細節頁面的Camera Settings項下要
勾選Use Pawn Control Rotation選項才能使相機跟隨人物轉向。


39.人物移動偏差 :CharacterMovement組件裏細節頁面的CharacterMovement項下的Orient Rotation to Movement(方向適應移動)選項要去掉。


40.攝像機拍攝篩選 :在藍圖類的視口頁面裏選定物理對象(Mesh),在細節頁面的Rendering下拉項,勾Render in Main Pass是遊戲裏攝像機能看見,
勾Owner No See是玩家看不見,勾Only Owner See是隻有玩家看見。


41.選定物理對象(Mesh),在細節頁面的Lighting項下,勾Cast Shadow是投射物體的陰影。


42.彈簧臂與相機 :在視窗頁面的組件頁面下添加一個Spring Arm 到主角身上,將彈簧臂的Camera Setting 勾選Use Controller ViewRotation,然後
再添加一個Camera,父類設爲Spring Arm,Camera Setting 不再勾選Use Controller View Rotation(彈簧臂已經跟隨轉向,相機再轉向就不再對準主
角了)。


42.動畫片段文件導入後,播放動畫片段時,布娃娃Mesh的位置會有所偏差,可以打開骨骼,右擊根骨骼Root(不是下拉項)打開菜單選擇Recursively 
Set Transtantion Retargeting Skeleton項,布娃娃Mesh就會跟隨骨骼,但此時布娃娃Mesh可能不是載站在地面上了,這時先選取盆骨,在其右邊的的
Skeleton下拉項中選取AnimationScaled項,這時布娃娃就重新站回地面,再將跟骨骼Root右邊的Skeleton選項選取AnimationScaled跟隨動畫就可以了。


43.Billboard :引擎自帶的公告板組件。


44.碰撞事件,主動碰過去的最好用Hit,被碰的最好用Overlap。


45.TimeLine 可以在本類中直接通過,名字來調用,名字不重名。


46.字符串添加字符會在原字符串的左邊。


47.面片的材質必須是貼花材質纔會渲染出來。


48.接口設置。先創建Interface類藍圖設定接口函數,然後在要添加接口的類中點擊工具欄的類設置Class Defaults,在Details-Interface-Implemented
 Interfaces項下Add一個接口,將創建好的接口類藍圖拉進去。調用時Cast To已添加接口的類,調用其中的函數即可。


49.利用向量的點乘((x1,y1)·(x2,y2)= x1x2 + y1y2)(a→·b→ =|a→||a→|cosθ)可以檢測物體是否面向攝像機,結果爲標量,正揹負面。
利用向量的叉乘(a→·b→ =|a→||a→|sinθ)可以求物體光照相關問題。


50.描邊輪廓製作:1)編寫Post Process材質藍圖,Details—Material-Material Donmain項設爲Post Process,Details-Post Process Material
-Blendable Location項設爲Before Translucency ;2)在場景的世界大綱頁面裏找出GlobalPostProcessVolume,在細節頁面--Post Process Volume
--Settings--Blendables--Array項新增一個元素,導入材質球或者材質實例 ;3)選擇需要描邊的物體,把Rendering的下拉項Render CustomDepth 
pass勾上。


51.後期處理,編好材質後,在GlobalPostProcessVolume或者在相機Deta裏設置。


52.關卡藍圖不接受按鍵輸入。


53.破碎物體:
  Damage:損傷。Damage Threshold,損壞程度;Damage Spread,裂痕傳播的距離;Enable Impact Damage,啓用衝擊損壞;Impact Damage,衝擊
損傷;Default Impact Damage Depth,默認衝擊損傷深度;Custom Impact Resistance,自設衝擊反彈;Impact Resistance,衝擊反彈量;Damage
Cap,損傷上限;Impact Velocity Threshold,衝擊速度的最小閥值;Max Chunk Speed,最大組塊速度;Fracture Impact Scale,裂口相互衝擊規
模(越大炸開越遠)。
  Flags:標誌。Accumlate Damage,積累損傷;Asset Defined Support,資源判定支持;World Support,外界支持;Debris Timeout,碎片消亡周
期;Debris Max Separation,碎片消亡最大距離;Crumble Smallest Chunks,破碎最小組塊;Accurate Raycasts,精確射線投射;Use Valid 
Bounds,使用合法彈跳;Form Extended Structure,格式化擴展結構。



























































發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章