FPS Calculator|Đổi 30fps to ms, 60/120FPS ↔ mili giây cho animation & game
30fps to ms ≈ 33.33ms. 60 ≈ 16.67ms, 120 ≈ 8.33ms. Công thức hai chiều: ms = 1000 ÷ FPS, FPS = 1000 ÷ ms. Khi thiết kế animation / coroutine / CSS, đừng nhớ số lẻ — mở máy tính FPS, đổi FPS↔ms trên trình duyệt (không đăng ký), rồi dán vào code. Lý thuyết ngân sách frame xem thêm 1 frame bao nhiêu ms?.
Tìm “30fps to ms” hoặc “fps calculator” thường vì bạn đang cầm con số ở một đơn vị (FPS, frame count, ms, giây) và cần đơn vị kia ngay — timeline After Effects 45 frame, transition: 300ms, hoặc producer hỏi “hit lag bao nhiêu frame ở 60?”.
Bài 1 frame bao nhiêu ms? giải thích ngân sách và profiler. Bài này tập trung máy tính / quy trình đổi số: bảng tra, đổi hai chiều, case animation → Unity/CSS, và cách dùng Tính FPS & Frame Time trong 30 giây.
Bài viết này giúp bạn
- Tra 30 / 60 / 90 / 120 / 144 → ms mà không mở Excel
- Đổi ngược ms → FPS khi Profiler báo 22ms
- Chuyển số frame ↔ giây cho animation và coroutine
- Tránh lỗi
WaitForSeconds(16.67f)và CSSstepslệch nhịp - Workflow freelance / lab VN: Chrome-only, không cài app
Công thức máy tính cần nhớ
ms/frame = 1000 ÷ FPS
FPS = 1000 ÷ ms
giây = số_frame ÷ FPS
số_frame = giây × FPS
Ví dụ hay search:
| Query | Phép tính | Kết quả |
|---|---|---|
| 30fps to ms | 1000 ÷ 30 | 33.33ms |
| 60fps to ms | 1000 ÷ 60 | 16.67ms |
| 120fps to ms | 1000 ÷ 120 | 8.33ms |
| 16.67ms → FPS | 1000 ÷ 16.67 | ~60 |
| 45 frame @ 60 | 45 ÷ 60 | 0.75s |
Số lẻ (16.666…, 33.333…) đủ cho design. Sync audio sample rate (44100 Hz) cần bước riêng — đừng giả định frame math = DSP.
Bảng tra nhanh (bookmark)
| FPS | ms/frame | Gợi ý dùng |
|---|---|---|
| 24 | 41.67 | Nhịp phim — ít dùng làm target realtime |
| 30 | 33.33 | Mobile pin, fallback console |
| 60 | 16.67 | Chuẩn PC / web / nhiều mobile cao cấp |
| 90 | 11.11 | VR — vùng thoải mái phổ biến |
| 120 | 8.33 | ProMotion, competitive PC |
| 144 | 6.94 | Màn gaming 144Hz |
| 240 | 4.17 | Màn eSports — ngân sách cực chặt |
Preset trên công cụ Kawa khớp các mốc 60 / 120 / 144 / 240Hz — chọn màn bạn đang tune thay vì gõ tay mỗi lần.
Đổi hai chiều: khi nào dùng chiều nào
FPS → ms (thiết kế trước)
Bạn đã chốt target (ví dụ ship 60 trên mid-range Android). Cần biết tối đa bao nhiêu ms/frame trước khi cắt VFX hoặc chia job.
- Mở máy tính FPS
- Nhập
60(hoặc chọn preset) - Đọc ~16.67ms → ghi vào Notion/PR: “budget frame = 16.67ms, để headroom ~2ms”
ms → FPS (đo rồi mới đổi)
Profiler trên máy thật báo spike 22ms. Hỏi nhanh: “ổn định được khoảng bao nhiêu FPS?”
1000 ÷ 22 ≈ 45.5 FPS
→ Dưới target 60 rõ. Nhập 22 vào ô frame time trên tool để confirm — đỡ nhầm máy tính bỏ túi khi họp Discord.
Frame count ↔ giây (animation)
Designer giao walk cycle 12 frame “ở 60”. Code cần giây:
12 ÷ 60 = 0.2s
Ở target 30 cùng 12 frame = 0.4s — cảm giác chậm gấp đôi nếu quên đổi FPS timeline. Đây là chỗ fps calculator thắng bảng cứng: đổi target rồi tính lại duration trong vài giây.
Áp dụng: Unity, CSS, tick
Unity — giây, không phải ms
Application.targetFrameRate = 60;
// ĐÚNG: nửa giây ≈ 30 frame @ 60
yield return new WaitForSeconds(0.5f);
// SAI: tưởng “16.67ms” nên ghi 16.67 giây
// yield return new WaitForSeconds(16.67f);
// N frame @ targetFps
float duration = frameCount / (float)targetFps;
yield return new WaitForSeconds(duration);
Time.deltaTime ≈ 1/FPS giây khi ổn định (~0.0167 ở 60) — nhân tốc độ di chuyển, không nhầm với ms trong Inspector nếu field đang là giây.
Physics fixedDeltaTime mặc định 0.02s (50Hz) ≠ 60FPS render. Khi đổi số từ bảng FPS calculator sang FixedUpdate, khớp hệ thống đang tune (chi tiết hơn: bài 1 frame ms).
CSS / web game
/* ~10 frame @ 60FPS */
.fade { transition: opacity 166.7ms linear; }
/* sprite sheet 8 frame / giây @ 60 → mỗi frame ~16.67ms */
.walk { animation: walk 133.3ms steps(8) infinite; }
requestAnimationFrame bám refresh (60 hoặc 120). Callback phải xong trước paint kế — ngân sách ≈ ms/frame trừ phần browser. Lệch 1 frame walk cycle ở 60 dễ thấy hơn ở 30.
Network / sim tick
Tick 20Hz = 50ms mỗi bước (1000 ÷ 20). Đừng lấy số 16.67ms (render 60) làm interval gửi packet — hai đồng hồ khác nhau. Tool giúp confirm: nhập 50 ms → ~20 FPS tương đương.
Case study
Case 1: Freelance — AE 45 frame → Unity
Tình huống: Motion designer (After Effects, composition 60FPS) giao intro 45 frame. Lập trình viên Unity cần WaitForSeconds và AudioSource delay.
Tính: 45 ÷ 60 = 0.75s. Nhập FPS 60 trên tool để xác nhận ms/frame, rồi nhân: 45 × 16.67ms ≈ 750ms.
Lỗi tránh: Ghi WaitForSeconds(45f) hoặc giả định AE đang 30FPS trong khi composition là 60 → timing lệch nửa nhịp với SFX.
Case 2: Web landing — transition 300ms trên màn 120Hz
Tình huống: Frontend tune micro-interaction; máy MacBook ProMotion ~120Hz.
Đổi: 300ms ≈ 300 ÷ 8.33 ≈ 36 frame ở 120, hoặc ≈ 18 frame ở 60. Cảm giác “nặng” trên 120 không phải vì CSS sai — cùng 300ms chiếm nhiều frame hơn trên panel nhanh.
Quyết định: Giữ 300ms (thời gian tường) nếu UX theo giây; hoặc rút ~150–200ms nếu muốn “cùng số frame cảm nhận” như bản 60Hz. Tool cho số frame tương đương trước khi tranh luận cảm tính.
Case 3: QA — Profiler 28ms trên máy mid-range
Tình huống: Playtest quán net / máy bạn bè (phổ biến khi indie VN chưa có lab device farm). Frame time trung vị ~28ms.
Đổi ngược: 1000 ÷ 28 ≈ 35.7 FPS — không đạt ship 60. Ghi PR: “cần cắt UI rebuild / gộp spawn; budget còn lại theo bảng 16.67ms”.
Cách dùng trên Kawa (2 phút)
- Mở Máy tính FPS & Frame Time — chạy local trên trình duyệt, không upload project.
- Chọn preset màn hình (60/120/144/240) hoặc gõ FPS tùy ý (30, 90, 165…).
- Đọc thời gian 1 khung hình (ms).
- Cần chiều ngược: nhập ms (ví dụ
11.11) → xem FPS cần thiết (~90). - Copy số vào code / ticket; đối chiếu Profiler trên thiết bị ship.
Không cần đăng ký — phù hợp máy lab trường, máy khách chỉ có Chrome.
5 lỗi khi “chỉ cần đổi số”
- Ghi ms vào API nhận giây —
WaitForSeconds(16.67f),delay(1667)nhầm đơn vị. - Đổi FPS timeline quên đổi duration — 12 frame @60 = 0.2s; @30 = 0.4s.
- Lấy ms render làm tick mạng — 16.67ms ≠ interval 20Hz.
- Tin empty-scene 300FPS — VSync tắt đo peak; ship theo budget đã tính từ target FPS.
- Dùng bảng 60 khi document ghi 120 — ngân sách còn 8.33ms, không phải 16.67.
Checklist trước khi merge timing
- Đã chọn FPS ship và ghi ms/frame tương ứng
- Animation duration đổi đúng theo FPS timeline (frame → giây)
- Coroutine / CSS dùng giây hoặc ms đúng API
- Spike Profiler đã đổi ngược ra FPS ước lượng
- Không nhầm refresh màn với tick physics / network
- Đã confirm bằng fps calculator khi số lẻ dễ nhầm
Tóm tắt
| Nhu cầu | Công thức / hành động |
|---|---|
| 30fps to ms | 1000 ÷ 30 ≈ 33.33ms |
| 60 / 120 | 16.67ms / 8.33ms |
| ms → FPS | 1000 ÷ ms (nhập tool) |
| N frame → giây | N ÷ FPS |
| Tra nhanh | Kawa FPS Calculator |
Muốn hiểu sâu budget vs frame time đo được, VSync và deltaTime: đọc 1 frame bao nhiêu ms — 60FPS & 120FPS. Cần đổi số ngay hôm nay: giữ tab máy tính FPS.
Liên kết liên quan
| Chủ đề | Liên kết |
|---|---|
| Máy tính FPS ⇔ ms | [Mở công cụ](/vi/tools/fps-calculator/) |
| Lý thuyết 1 frame = ? ms | [Bài 60/120FPS](/vi/blog/1-frame-ms-60fps-120fps/) |
| Bộ công cụ Kawa | [/vi/tools/](/vi/tools/) |