Toon3D: Truyện tranh nhìn từ một góc mới
(toon3d.studio)- Toon3D là một phương pháp khôi phục tư thế camera và cấu trúc 3D dày đặc từ các hình ảnh truyện tranh/hoạt hình vẽ cùng một cảnh, rồi tổng hợp góc nhìn từ những điểm nhìn chưa từng thực sự được vẽ
- Các cảnh vẽ tay thiếu tính nhất quán 3D rõ ràng nên SfM truyền thống rất dễ thất bại, còn Toon3D thì đồng thời khớp camera và hình học cảnh trong lúc biến dạng ảnh
- Pipeline kết hợp dự đoán độ sâu bằng Marigold, ứng viên transient mask từ SAM, và gán nhãn thủ công con người bằng Toon3D Labeler để phản ánh các điểm tương ứng và vùng transient trong quá trình căn chỉnh
- Đám mây điểm dày đặc được khôi phục được dùng để khởi tạo Gaussian Splatting, sau đó tạo fly-through render cho cảnh truyện tranh bằng tối ưu hóa dựa trên Nerfstudio và chuẩn hóa độ sâu
- Phương pháp tập trung vào việc thu được tư thế camera và hình học cảnh ổn định hơn so với COLMAP, Bundle Adjustment và DUSt3R, đồng thời cũng được áp dụng cho các ví dụ tái dựng phòng Airbnb và tranh vẽ
Vì sao SfM khó với cảnh vẽ tay
- Con người có thể nhận ra cảnh 3D nền tảng ngay cả từ những hình ảnh không hoàn toàn nhất quán về mặt 3D, nhưng máy móc lại gặp khó trong cùng điều kiện
- Hình ảnh truyện tranh và hoạt hình thường được vẽ không có tính nhất quán hình học tường minh, nhằm phục vụ kể chuyện và biểu đạt sáng tạo
- Các phương pháp Structure-from-Motion (SfM) truyền thống giả định có tính nhất quán 3D nên thường thất bại nặng với các hình ảnh vẽ tay kiểu này
- COLMAP không thể tái dựng ảnh vẽ tay phi hình học ngay cả khi có các điểm tương ứng hoàn hảo, còn Bundle Adjustment và DUSt3R cũng cho hiệu năng rất kém
Cách căn chỉnh hấp thụ sự không nhất quán
- Toon3D khôi phục đồng thời tư thế camera và hình học cảnh trong khi biến dạng các hình ảnh không nhất quán về mặt hình học
- Ý tưởng cốt lõi là hấp thụ sự không khớp hình học giữa các ảnh bằng biến dạng, để đưa cảnh về một cấu trúc 3D nhất quán hơn
- Thông tin cấu trúc thu được từ dự đoán độ sâu đơn ảnh sẽ dẫn dắt quá trình căn chỉnh này
- Dựa trên các keypoint được gán nhãn thủ công, hệ thống thực hiện tối ưu hóa biến dạng piecewise-rigid để khôi phục tư thế camera và hình học dày đặc
Pipeline xử lý
- Độ sâu của từng ảnh được dự đoán bằng Marigold
- Ứng viên transient mask được lấy từ SAM
- Người dùng dùng Toon3D Labeler để gán nhãn điểm tương ứng giữa các ảnh và đánh dấu các vùng transient
- Ở giai đoạn tối ưu hóa, hệ thống căn chỉnh tư thế camera và warp ảnh để thu được camera phối cảnh đã hiệu chỉnh
- Cuối cùng, hệ thống khởi tạo Gaussians từ đám mây điểm dày đặc đã căn chỉnh rồi chạy refinement
Tối ưu hóa đồng thời camera và biến dạng
- Hai mục tiêu chính của Toon3D là camera alignment và deformation alignment
- Mục tiêu camera alignment khôi phục các tham số camera
- Mục tiêu deformation alignment warp mesh để đạt căn chỉnh gần hơn
- Trong tối ưu hóa thực tế, hai mục tiêu này được khớp đồng thời
- Phần trực quan hóa phương pháp gồm nhiều lớp như camera, sparse correspondences, warping meshes, point clouds và gaussians
Tổng hợp góc nhìn mới và fly-through render
- Toon3D trước hết khôi phục tư thế camera và đám mây điểm đã căn chỉnh
- Sau đó, hệ thống khởi tạo Gaussians từ đám mây điểm dày đặc và tối ưu Gaussian Splatting bằng các camera đã khôi phục
- Phần triển khai dựa trên Nerfstudio và có bao gồm chuẩn hóa độ sâu
- Kết quả có thể được xem như fly-through render của các cảnh truyện tranh
- Các cảnh ví dụ bao gồm Bob's Burgers, Family Guy, SpongeBob SquarePants, Rick and Morty, Simpsons, Spirited Away, Futurama, Avatar, BoJack Horseman, Magic School Bus và Scooby-Doo
Bộ dữ liệu Toon3D và công cụ gán nhãn
- Toon3D Dataset gồm các ảnh đa góc nhìn từ truyện tranh và hoạt hình
- Bộ dữ liệu có kèm chú thích sparse correspondences đáng tin cậy
- Công việc chú thích sử dụng một Toon3D annotation tool thân thiện với người dùng
- Đám mây điểm được khôi phục được nối với các phương pháp novel-view synthesis, cho phép xem truyện tranh từ những góc nhìn chưa từng được vẽ
- Trang này trực quan hóa đám mây điểm và camera đã khôi phục của 12 cảnh truyện tranh
Tái dựng nội thất ngôi nhà trong Rick and Morty
- Nội thất ngôi nhà trong Rick and Morty được tái dựng bằng cách gán nhãn khoảng giữa tường và trần để nối các căn phòng lại với nhau
- Video đầu tiên cho thấy đám mây điểm, camera và giao diện gán nhãn tùy chỉnh
- Ở video thứ hai, có thể xem walkthrough bên trong ngôi nhà bằng thanh trượt
- Ảnh từ camera gần nhất được hiển thị ở góc dưới bên phải màn hình
Trường hợp sparse-view và các đầu vào khác
- Toon3D có thể tái dựng cả những cảnh có ít ảnh và thay đổi góc nhìn lớn
- Trong các tình huống COLMAP có thể thất bại, có thể bổ sung các điểm tương ứng do con người gán nhãn bằng Toon3D Labeler
- Fly-through render được trình bày cho hai căn phòng trong Airbnb listing là “Living room” và “Bedroom 2”
- COLMAP không thể khôi phục toàn bộ camera, nhưng nhãn gán có thể giúp COLMAP thành công
- Toon3D cho kết quả tốt nhất về mức độ hoàn chỉnh của cảnh
Trực quan hóa warping và tái dựng tranh vẽ
- Vì truyện tranh được vẽ tay, cần warp ảnh để đạt được tính nhất quán 3D
- Có video cho thấy quá trình warping diễn ra trong lúc tối ưu căn chỉnh
- Cũng có phần trực quan hóa so sánh tranh gốc, tranh đã warp và phần chồng lấp giữa hai ảnh
- Các vùng mờ biểu thị nơi xảy ra nhiều warping
- Toon3D cũng áp dụng được cho tranh vẽ tay: sau khi dự đoán độ sâu của từng ảnh, hệ thống căn chỉnh/warp đám mây điểm và tạo video bằng Gaussian refinement
Tài liệu công khai
- arXiv: bài báo Toon3D
- Code: mã nguồn triển khai
- Toon3D Labeler: công cụ gán nhãn điểm tương ứng và vùng transient
- Demo: demo trên Hugging Face
- Overview Video: video tổng quan về bài toán và phương pháp
1 bình luận
Ý kiến trên Hacker News
Việc lấy tòa nhà Planet Express trong Futurama làm ví dụ về sự không nhất quán 3D khá thú vị
Tôi cho rằng phần ngoại thất thực ra gần với thứ được máy tính tạo ra từ mô hình 3D. Xem phim sẽ thấy thường có các cảnh thiết lập lia quanh tòa nhà một cách mượt mà và phức tạp
Mỹ thuật 3D không trông như ảnh thật (NPR) đã được dùng trong hoạt hình từ lâu hơn ta tưởng. Gần đây tôi xem lại phim hoạt hình Disney năm 1988 "Oliver and Company" và ngạc nhiên khi thấy ô tô và tòa nhà là các mô hình 3D được "cel shading". Ban đầu tôi tưởng đó là bản remaster, nhưng tìm hiểu thì hóa ra đây là tác phẩm đầu tiên của Disney dùng CGI trên quy mô lớn[0], và những gì tôi xem cũng vốn đã có trong bản gốc
Trang tôi tìm được viết như sau: "This was the first Disney movie to make heavy use of computer animation. CGI effects were used for making the skyscrapers, the cars, trains, Fagin's scooter-cart and the climactic Subway chase. It was also the first Disney film to have a department created specifically for computer animation."
References
0: https://disney.fandom.com/wiki/Oliver_%26_Company
Tôi nhớ từng đọc một bài nói về những gì animator 3D làm để mọi thứ trông tự nhiên. Chẳng hạn làm nhân vật cao 9 feet vì nếu dùng chiều cao đúng trong hệ thống thật thì khi máy quay đi qua trông quá nhỏ; hoặc làm cửa vòm khổng lồ nhưng trong một cảnh phối cảnh cụ thể lại trông bình thường; hoặc đặt nhân vật thấp bé lên một chiếc hộp xanh ngoài khung hình để chênh lệch chiều cao cực đoan không gây khó chịu. Cũng có trường hợp ngoài đời sẽ là hành lang dài 1.000 feet, nhưng do cách máy quay đi qua nên trong thế giới phim trông như 100 feet, và từng cánh cửa trong hành lang đó cao 18 feet
Nếu các tác phẩm như Futurama cũng dùng những kỹ thuật này, thì khi đảo ngược để tái dựng không gian 3D mà animator đã làm việc, ta có thể thấy những cánh cửa khổng lồ, người cao 9 feet, và hành lang phi Euclid. Việc nó trông mượt khi máy quay đi qua không có nghĩa là mô hình 3D thực tế đó cũng hợp lý từ các góc nhìn khác
Ngay cả khi không có mô hình 3D kỹ thuật số, studio đôi khi vẫn đặt mô hình vật lý của các địa điểm chính để animator tham khảo
Chúng có thể đã thay đổi theo thời gian hoặc khác nhau tùy cảnh, có thể nhìn tương tự như các mô hình Enterprise trong Star Trek
Dù rất hay, tôi vẫn khó hình dung ứng dụng thực tế là gì
Tranh 2D thường không có một không gian 3D nhất quán, và bài báo cũng thừa nhận điều đó, nhưng có vẻ nó chưa vượt qua được vấn đề này theo một cách hữu ích. Ngay khi rời khỏi vị trí camera ban đầu của bức vẽ, tính nhất quán của cảnh yếu đi khá rõ
Các công việc tương tự có thể là nơi ứng dụng
Một cách dùng khác có thể là các studio phát triển game muốn làm game 3D dựa trên giấy phép từ hoạt hình 2D. Nó dùng như công cụ trực quan hóa trong giai đoạn lên kế hoạch và phát triển để lặp nhanh, đồng thời làm tham chiếu xem bản 2D gốc sẽ được chuyển sang 3D như thế nào
Cả biên kịch lẫn họa sĩ đều chịu ảnh hưởng lớn từ Looney Tunes, nơi những quy tắc như vậy bị phá vỡ vì điều đó gây cười
Tuy nhiên, có khả năng chỉ dùng dự đoán độ sâu rồi lấp các khoảng trống bằng sinh ảnh sẽ tốt hơn so với quy trình ánh xạ này
Vì những môi trường kiểu này không đòi hỏi nhiều công sức mô hình hóa 3D, tôi nghi ngờ liệu trong bối cảnh này có ứng dụng thực tế hay không
Dù còn thô, trông nó vẫn chuyển tải tranh gốc tốt hơn một số bản triển khai game dựa trên hoạt hình
Ý tưởng tạo ra không gian 3D từ những ảnh gốc không nhất quán thật sự rất thú vị
Vài năm trước tôi từng thử làm một thứ tương tự theo cách thô sơ và tệ hại; không chỉ với các không gian bất nhất không có đáp án rõ ràng, mà còn với cả những ảnh phi-không-gian thuần trừu tượng vốn ngay từ đầu không hề định biểu diễn không gian 3D. Đó là nỗ lực biến các tranh trừu tượng như của Kandinsky hay Pollock thành không gian thực tế ảo có thể khám phá. Tất nhiên không có đáp án đúng cho việc “đi bộ bên trong một bức tranh Pollock” là gì, mục tiêu chỉ là ép nó xảy ra để xem chuyện gì sẽ xuất hiện
Quy trình làm việc là như sau: 1. Bắt đầu từ một ảnh gốc là tranh trừu tượng đơn lẻ 2. Dùng SinGan tạo các “góc nhìn” khác của “cảnh” 3. Áp dụng 3d-photo-inpainting hoặc các dự án kiểu Ken Burns lên ảnh gốc và ảnh SinGan, xuất video zoom/xoay/pan bằng ánh xạ độ sâu đơn nhãn 4. Đưa các frame từ 3d-photo-inpainting vào ứng dụng trắc quang ảnh. Khi đó chưa có NeRF, nên tôi đẩy mọi thiết lập lên để cho phép lỗi và bất nhất tối đa 5. Cầu cho quá trình trắc quang ảnh không nổ tung. 9 trên 10 lần nó crash sau 24 giờ, khá tàn nhẫn
Chắc tôi đã đăng ví dụ lên Twitter nhưng không tìm ra từ khóa tìm kiếm. Dù vậy, chỉ với ánh xạ độ sâu ở mức năm 2019 cũng đã tạo ra được video khá thú vị từ tranh trừu tượng: https://x.com/jonathanfly/status/1174033265524690949 Gần nhất là kết quả trắc quang ảnh của video NVIDIA GauGAN không nhất quán giữa các frame: https://x.com/jonathanfly/status/1258127899401609217
Tôi tò mò liệu dự án này có thể làm cùng ý tưởng đó tốt hơn không. Có khi cuối tuần này tôi sẽ thử
Trước đây sau khi mua Quest 2, tôi đã đào sâu vào thế giới trắc quang ảnh và xem xét toàn bộ pipeline tạo mô hình 3D từ ảnh chụp vật thể ở nhiều góc khác nhau
Tôi đã dùng MeshRoom cùng vài phần mềm để dọn mesh và chuyển nó sang Unity
Theo hiểu biết nông của tôi, khi đưa thứ gì đó vào VR theo kiểu có thể đi quanh vật thể trong Unity, điểm cốt lõi là tạo ra mesh sạch. Các mô hình 3D do những công cụ như trong bài này tạo ra, tuy tôi chưa xem sâu, có vẻ giống đám mây điểm trong không gian 3D hơn. Chúng không tạo mesh 3D
Trong lúc tìm hiểu tôi có thấy các công cụ như https://developer.nvidia.com/blog/getting-started-with-nvidi..., nhưng cái này cũng không tạo mesh. Tôi xem nó gần với video hơn, chứ không phải thứ có thể đơn giản đi bộ trong VR
Động cơ kín đáo là sao chép hoặc dựng mô hình kiểu Matterport rồi bán cho các công ty bất động sản. Phần tôi thiếu hiểu biết nhiều nhất, và cũng là nguyên nhân khiến tôi mất hứng, là tôi không chắc làm sao tự động hóa bước tạo mesh sạch từ nhiều ảnh camera. Với tôi, đây có vẻ là phần tốn công nhất. Sau này tôi nghe nói có mô hình machine learning làm được bước này, nhưng tôi không rành mảng đó
Nanite có thể xử lý các mesh cực kỳ phức tạp và đơn giản hóa chúng theo thuật toán trong thời gian thực. Về cơ bản nó là một hệ thống LOD cao cấp. Tôi không biết giới hạn của nó, nhưng đáng để thử. Với trắc quang ảnh, tôi rất khuyên dùng Reality Capture. Giá rất rẻ và trả tiền theo từng bản quét
Theo tôi hiểu, các công nghệ kiểu này nhận vài ảnh làm đầu vào để huấn luyện một mô hình, và mô hình đó theo nghĩa nào đó học cách tốt nhất để render ảnh thành mô hình cảnh. Gaussian splatting biểu diễn ảnh bằng một dạng “khối” trong không gian, và mỗi ảnh phải được render từ một góc nhìn nhất định bằng cùng một tập khối đó. Vì vậy nếu đặt vị trí các splat sao cho từng ảnh được render đúng, bạn có thể tái tạo cảnh
Hiện việc huấn luyện này rất tốn kém và phải làm lại cho từng mô hình, nhưng kết quả có thể khám phá theo thời gian thực
Cách tiếp cận trắc quang ảnh mà Matterport và các bên khác dùng là phương pháp cũ hơn, cần dữ liệu đầu vào chất lượng cao hơn nhiều; còn tôi nghĩ các cách tiếp cận mới có thể hoạt động với dữ liệu ít hơn và chất lượng thấp hơn
https://github.com/3DTopia/OpenLRM
Họ nói là lấy cảm hứng từ NeRF, nhưng bài báo nền tảng trông như đã chọn dùng vision transformer. Phiên bản mã nguồn mở có vẻ dùng DINO của Meta như một trong các thành phần cốt lõi
Việc có thể lấy một cảnh do ai đó tưởng tượng và vẽ ra rồi tạo được một mô hình 3D, dù còn tệ, là điều khá đáng kinh ngạc
Trong tương lai có thể hình dung rằng nghệ sĩ chỉ cần vẽ vài bản phác thảo cảnh là có được mô hình 3D chính xác
Hoặc một nghệ sĩ 2D chỉ cần phác vài tư thế là tự động có mô hình 3D có cấu trúc tốt cùng texture
Trong ngành có nhiều lo ngại về tác động của AI và các công cụ tương tự lên nghệ sĩ, nhưng cũng có thể hình dung một tương lai nơi hệ thống machine learning cộng tác trực tiếp hơn với nghệ sĩ, thay vì render dựa trên prompt ngôn ngữ
Về tranh luận đạo đức của việc huấn luyện AI, cảm xúc của tôi không rõ ràng. Điều khiến tôi lo hơn không phải là nó được huấn luyện như thế nào, mà là nó sẽ tác động tới con người ra sao. Ngay cả nếu một mô hình được huấn luyện hoàn toàn “có đạo đức” tạo ra nghệ thuật hoàn hảo và nghệ sĩ trở thành nghề ngách, thì đó vẫn có thể là kết quả xấu cho toàn bộ nền văn minh, vì tôi cho rằng việc con người tạo ra nghệ thuật có giá trị, và một xã hội nơi công việc đó còn bền vững ở mức nào đó cũng có giá trị
Mặt khác, kết quả mà mọi người tạo ra bằng các mô hình hình ảnh cũng thật đáng kinh ngạc, nên tôi không chắc. Lý tưởng nhất là có thể hỗ trợ để mọi người làm điều họ muốn ngay cả khi không có thị trường, nhưng thế giới vẫn chưa sẵn sàng cho điều đó
Tôi không phải nghệ sĩ đồ họa, nhưng tôi cảm thấy trong công việc của các họa sĩ minh họa có rất nhiều kỹ thuật biểu đạt sáng tạo để truyền tải những ý nghĩa phức tạp
Tuy nhiên, phần tái dựng không gian 3D lộn xộn thấy trong video lại gợi nhớ đến cơn sốt mô hình ngôn ngữ lớn gần đây
Tức là sản phẩm biểu đạt có mối liên hệ rõ ràng với “sự thật” hay “thực tế” của tư liệu nền, nhưng không đủ chính xác để có thể xem là hữu ích như tư liệu nguồn cho các công việc tiếp theo
Xem các tập “mới” của những bộ hoạt hình cũ chắc sẽ rất thú vị. Tất nhiên, mớ hỗn độn bản quyền kéo theo là chuyện khác
Tôi ngạc nhiên vì nó tái hiện góc nhìn của một hình ảnh cụ thể quá tệ
Ví dụ, nếu nhìn Magic School Bus ở phía dưới, có vẻ có thể điều chỉnh thuật toán theo hướng tin vào hình ảnh hơn
Ngay cả trong hoạt hình 3D và phim ảnh, lĩnh vực tôi chủ yếu làm việc, các vật thể ở hậu cảnh hoặc tiền cảnh bị làm mờ thường bị bóp méo và đặt ở vị trí kỳ lạ để trông có vẻ đúng, dù nếu ánh xạ sang cấu trúc thế giới thực thì chẳng hợp lý. Nghệ thuật 2D còn ít bị ràng buộc bởi biểu hiện của thế giới thực hơn thế
Nhìn những ứng dụng như thế này mới thấy bộ não của chúng ta, vốn xây dựng khái niệm dựa trên những biểu đạt tương đối trừu tượng, đáng kinh ngạc đến mức nào, và khả năng của nghệ sĩ khi làm việc trong vùng ít được định nghĩa đó cũng đáng kinh ngạc ra sao. Một cảnh có thể khiến khán giả cảm thấy như có phối cảnh nhất quán, nhưng chiếc sofa và bàn phụ ở hậu cảnh có thể được vẽ như thể chụp bằng ống kính 120mm, còn tiền cảnh thì cố ý được vẽ bí bách như ống kính 30mm. Nó có thể trông ổn vì chúng ta không cần suy luận ra một không gian 3D thực tế nơi các nhân vật tồn tại, mà chỉ cần hiểu rằng họ đang ở trong một không gian như vậy. Chúng ta biết cảm giác ở trong một không gian là thế nào, và con người tương tác với không gian đó ra sao
Nghệ thuật tốt chỉ cung cấp vừa đủ để truyền tải ý tưởng cốt lõi, biến nó thành trọng tâm của thông điệp, rồi để bộ não vô thức tạo liên kết và bổ sung ngữ cảnh nhằm tạo nên một “trải nghiệm” hoàn chỉnh. Tất cả mọi thứ, từ loại sofa và bàn phụ cho đến tỷ lệ và quan hệ giữa các vật thể vốn thường bị bẻ cong hoặc phóng đại, đều có thể trở thành các lớp giao tiếp phục vụ hiệu ứng nghệ thuật có chủ đích, và thường không có cách biểu hiện nhất quán trong thế giới thực. Ngoài ra, chắc chắn cũng có chuyện các vật thể được di chuyển trong từng cú máy để hỗ trợ bố cục hoặc nhấn mạnh tương tác. Nếu nhận ra thì đó là lỗi continuity; nếu không nhận ra thì là làm tốt. Trong tuyệt đại đa số trường hợp, không ai nhận ra cả, họ chỉ cảm thấy như đang thấy một thế giới có bố cục thuyết phục từ mọi góc độ
Một thuật toán nhìn vào các nét vẽ rồi phải tìm kịch bản tương ứng với biểu đạt đó trong thế giới thực có thể đang cố tạo ra một thứ ngay từ đầu đã không thể tồn tại dưới bất kỳ hình dạng nhất quán nào
Tôi không hiểu vì sao một trang có đầy video lại bật hết tự động phát và lặp vô hạn
Tôi đang xem video ở màn hình thứ hai, nhưng mỗi lần mở trang là lại giật lag
Chỉ khởi động lại nguồn mới hết
Nếu cho Miyazaki xem ví dụ Spirited Away, có lẽ ông ấy sẽ gọi đó là một sự xúc phạm đối với chính sự sống
Vì vậy đây không phải là nói quá
Thật ngạc nhiên là có vẻ tác giả chưa nói chuyện với một animator 3D nào trước khi viết bài này. Câu dưới đây đơn giản là sai
Bản thân dự án không có vấn đề gì. Nghiên cứu vẫn là nghiên cứu, và họ cũng không đóng gói nó như một “vấn đề đã được giải quyết”. Nhưng trong một nhóm người làm công nghệ nhất định, các công cụ hình ảnh AI khơi dậy kiểu khoe khoang chúng ta đã giải quyết xong nghệ thuật hoàn toàn vô căn cứ. Kết quả là họ đưa ra những giả định vô căn cứ về các nguyên lý nghệ thuật cơ bản một cách ngạo mạn, đôi khi như thể đang đứng trên người khác
Tôi đã làm trong ngành phần mềm lâu năm, sự kiêu ngạo của phát triển phần mềm không có gì mới với tôi và đôi khi nó còn có ích, nhưng trong thế giới phần mềm, tôi hiếm khi thấy một sự tự tin tập thể mạnh đến vậy về một chủ đề duy nhất
Một ví dụ đơn giản: nhiều phim trường trong sitcom trông như căn phòng hình vuông, nhưng thực ra là hình thang, với các bức tường gặp nhau ở góc tù. Hầu như chẳng ai nhận ra điều đó
Điều này càng đúng hơn với các tác phẩm trước thời HD. Vì để phối cảnh đủ gần cho người xem đọc được nét mặt và cử chỉ, người hoặc nhân vật phải nằm khá chật trong khung hình. Ngay cả khi đào sâu vào những chương trình “hiện thực” và đứng đắn nhất của thời đó, cuối cùng bạn cũng sẽ tìm thấy những lúc đồ nội thất, thậm chí cả tường, được lặng lẽ dịch chuyển để một cú máy cụ thể có thể hoạt động