From 1ae5446a5a984a160db1be70a4d5aed7be2e3292 Mon Sep 17 00:00:00 2001 From: scove Date: Wed, 8 Apr 2026 12:22:36 +0700 Subject: [PATCH] bru --- README.md | 175 ++++++++++++++++++++---------------------------------- 1 file changed, 66 insertions(+), 109 deletions(-) diff --git a/README.md b/README.md index 0fe2ed2f..006d37ef 100644 --- a/README.md +++ b/README.md @@ -140,106 +140,75 @@ Hệ thống điều khiển nhân vật không chỉ quản lý hành động m stateDiagram-v2 direction TB - %% Định nghĩa các vùng trạng thái state "🌸 GROUND LOCOMOTION" as Ground { [*] --> Idle state Idle { - direction LR - I_Phys: 📝 Vel < 0.1m/s - I_Cam: 🌡️ Breathing Cycle (0.5Hz) + I_P: 📝 Vel < 0.1m/s + I_C: 🌡️ Breathing (0.5Hz) } - Idle --> Moving: "Input.mag > 0.1" + Idle --> Moving : "Input.mag > 0.1" state Moving { - direction LR - M_Phys: 👟 Speed 2-4m/s - M_Cam: 🎢 Head Bob (1.2Hz) + M_P: 👟 Speed 2-4m/s + M_C: 🎢 Head Bob (1.2Hz) } - Moving --> Sneaking: "OnSneak (Hold) ✨" + Moving --> Sneaking : "OnSneak (Hold)" state Sneaking { - direction LR - Sn_Phys: 🤫 Speed 1.5m/s | Noise -50% - Sn_Cam: 📉 Height -0.5m | FOV 55 + Sn_P: 🤫 Noise -50% + Sn_C: 📉 Lower Height } - Moving --> Sprinting: "OnSprint (Hold) 🔥" + Moving --> Sprinting : "OnSprint (Hold)" state Sprinting { - direction LR - Sp_Phys: ⚡ Speed > 6.5m/s | Noise +100% - Sp_Cam: 🌈 Dynamic FOV (60-85) + Sp_P: ⚡ Speed > 6.5m/s + Sp_C: 🌈 Dynamic FOV } - Sprinting --> Moving: "Stamina == 0 or Release" - Sneaking --> Moving: "Release Sneak" + Sprinting --> Moving : "Stamina Empty" + Sneaking --> Moving : "Release Sneak" } state "☁️ AIRBORNE & IMPACT" as Air { state Jump { - J_Phys: 🆙 AddForce Up - J_Cam: 🚀 Instant Y-Kick + J_P: 🆙 AddForce Up } - state Falling { - F_Phys: 📉 Gravity x 1.5 - F_Cam: 💨 Wind Distortion VFX + F_P: 📉 Gravity x 1.5 } - state Landing { - L_Phys: 📏 Impact Velocity Check - L_Cam: 💢 Screen Shake + L_P: 📏 Impact Check } - Jump --> Falling: "Velocity.y < 0" - Falling --> Landing: "IsGrounded == true" + Jump --> Falling : "Vel.y < 0" + Falling --> Landing : "IsGrounded == true" } - state "🎀 UTILITY & ACTIONS" as Utility { + state "⚡ ACTION LAYER" as Utility { state Dashing { - D_Phys: 💨 Burst 15m/s - D_Cam: 🍭 Lens Distortion + D_P: 💨 Burst 15m/s } - state Interacting { - Int_Phys: 🔒 Root Motion Lock - Int_Cam: 👁️ Contextual Look-at + Int_P: 🔒 Root Motion Lock } } - state "🌐 NETWORK SYNC (Fusion)" as Net { - state InputAuthority { - IA: 🎮 Local Prediction - IA: ⏳ Buffer Tick N - } - state StateAuthority { - SA: 🖥️ Server Snapshot - SA: 🛠️ Reconciliation - } - - IA --> SA: "[Networked] CamRotation" - SA --> IA: "Correction if Error > 0.5m" + state "🌐 NETWORK SYNC" as Net { + state "Input Authority" as IA + state "State Authority" as SA + IA --> SA : "Send [Networked] Rotation" + SA --> IA : "Reconciliation if Error" } - state "🎭 ROLE VIEWPORTS" as Roles { - state Seeker_FPS { - S_View: 🔦 1st Person POV - S_Logic: 🔊 Noise Meter UI - } - state Trapper_STRAT { - T_View: 🗺️ Tactical Overlay - T_Logic: 🌡️ Heatmap & CCTV - } - } + %% Transitions chính - Đã sửa lỗi tại đây ✨ + Ground --> Air : "IsGrounded == false" + Air --> Ground : "OnLand Event" + Ground --> Utility : "OnAbilityTrigger" + Utility --> Ground : "Action Complete" - %% Transitions chính (Đã sửa lỗi cú pháp bằng dấu "") - Ground --> Air: "!IsGrounded (Coyote Time: 0.2s)" - Air --> Ground: "OnLand Event ✨" - Ground --> Utility: "OnAbilityTrigger ⚡" - Utility --> Ground: "Action Complete ✅" - - note left of Ground: 🎵 Sync: Velocity, MoveState - note right of Net: ⚙️ Fusion: FixedUpdateNetwork Loop + note left of Ground : ✨ Sync: Velocity, MoveState + note right of Net : ⚙️ Fusion: FixedUpdateNetwork ``` ### 2. Environment Scanner & Interaction @@ -327,64 +296,52 @@ Sử dụng **Photon Fusion (State Sync)** với cơ chế Client-Side Predictio sequenceDiagram autonumber - %% Định nghĩa các bên tham gia với phong cách đáng yêu - participant IR as 🖱️ Input Reader - box "🌸 CLIENT (Authority)" #E3F2FD - participant CP as 🎀 Local Player
(Predictive) + participant IR as 🖱️ Input + box #E3F2FD "CLIENT" + participant CP as 🎀 Local Player end - box "🌐 NETWORK" #FFF3E0 - participant NT as ✨ Fusion Buffer + box #FFF3E0 "NET" + participant NT as ✨ Fusion end - box "🖥️ SERVER" #E8F5E9 - participant S as 👑 State Authority + box #E8F5E9 "SERVER" + participant S as 👑 Authority end - box "👥 OTHERS" #F3E5F5 - participant RP as 🍭 Remote Proxies + box #F3E5F5 "OTHERS" + participant RP as 🍭 Proxies end - %% --- GIAI ĐOẠN 1: THU THẬP --- - Note over IR, CP: [TICK N] Thu thập năng lượng Input ✨ - IR->>CP: OnMove / OnJump Events - CP->>CP: 📦 Encode NetworkInputData + Note over IR, CP: [TICK N] Thu thập Input ✨ + IR->>CP: OnMove / OnJump + CP->>CP: 📦 Pack NetworkInputData - %% --- GIAI ĐOẠN 2: DỰ ĐOÁN --- - rect rgb(255, 245, 230) - Note over CP, NT: [FixedUpdateNetwork] Chạy trước tương lai! 🚀 - CP->>CP: 🏃 Client-Side Prediction
(Di chuyển ngay lập tức) - CP->>NT: ✉️ Send Input Packet - NT-->>S: Transport via UDP + rect rgb(255, 250, 240) + Note over CP, NT: Prediction Mode 🚀 + CP->>CP: 🏃 Client-Side Prediction + CP->>NT: ✉️ Send Packet + NT-->>S: UDP Transport end - %% --- GIAI ĐOẠN 3: XÁC THỰC --- - rect rgb(235, 255, 235) - Note right of S: SERVER LOGIC (Tick N) ⚖️ - S->>S: 📝 Verify Input & Collision - S->>S: 💾 Update [Networked] States + rect rgb(240, 255, 240) + Note right of S: SERVER VALIDATION ⚖️ + S->>S: 📝 Check Collision & Move + S->>S: 💾 Update [Networked] State end - %% --- GIAI ĐOẠN 4: ĐỒNG BỘ --- - S-->>NT: 📣 Broadcast State Snapshot + S-->>NT: 📣 Broadcast Snapshot - par 💫 Hồi đáp Local Player - NT-->>CP: State Snapshot - Note over CP: 🔄 RECONCILIATION - alt ⚠️ Sai lệch > Threshold - CP->>CP: Hard Snap & Resimulate - else ✅ Hợp lệ - CP->>CP: Tiếp tục Simulation mượt mà - end - and 🌈 Cập nhật cho mọi người - NT-->>RP: State Snapshot - Note over RP: 🎞️ INTERPOLATION - RP->>RP: Lerp(Snap_N, Snap_N-1) + par 💫 To Local + NT-->>CP: Snapshot + Note over CP: 🔄 RECONCILE + and 🌈 To Proxies + NT-->>RP: Snapshot + Note over RP: 🎞️ INTERPOLATE end - %% --- GIAI ĐOẠN 5: HIỂN THỊ --- - rect rgb(250, 240, 255) - Note over CP, RP: [LateUpdate] Rendering Kawaii VFX 🎨 - CP->>CP: Cam Shake & Particles - RP->>RP: Smooth Mesh Movement - end + rect rgb(250, 245, 255) + Note over CP, RP: [LateUpdate] Rendering 🎨 + CP->>CP: Camera Shake + RP->>RP: Smooth Mesh Lerp + end ``` ---