2012-11-22 31 views
8

Tôi hiện đang làm việc trên các thử nghiệm hoạt hình xương trong ba.js. Tôi có một mô hình đơn giản mà chỉ hoạt hình tốt trong máy xay sinh tố. Về cơ bản nó bao gồm ba khối uốn, xếp chồng lên nhau.Mô hình với hoạt ảnh xương (xuất khẩu máy xay sinh tố) hoạt ảnh không chính xác trong ba.js

Khi tôi xuất tệp máy xay sinh tố sang tệp ba.js bằng cách sử dụng plugin xuất của máy xay sinh tố với Máy xay sinh tố V2.64, hoạt ảnh trong ngữ cảnh webGl xuất hiện khác nhau như thể việc bôi da bị sai.

WebGL Demo: http://rainbowrangers.de/threejs/animation_test01/

Blender-File: http://rainbowrangers.de/threejs/animation_test01/model/animation_test01.blend

gì làm tôi phải làm gì để có được kết quả chính xác trong three.js?

Trả lời

10

Tôi là người bạn trích dẫn từ cuộc thảo luận github. Gần đây tôi đã được thử nghiệm với đường ống này, (tức là hình ảnh động Blender xương thành bajs,) và đã thấy rằng rất khó để tìm một quy trình đáng tin cậy sẽ hoạt động mọi lúc.

Trên blog của tôi, tôi đã biên soạn một danh sách các 'lời khuyên' cho phép tôi để đạt được thành công trên một số dịp:

http://dev.mothteeth.com/2012/10/threejs-blender-exporting-skeletal-animations/

Nói tóm lại, những điều quan trọng nhất mà tôi tìm thấy là:

Xóa phần bổ trợ Armature trước khi xuất, hoặc hoạt ảnh sẽ bị rối tung lên.

Kiểm tra xem các nhóm Vertex của bạn có được gán đúng cách cho xương hay không. (Trong Máy xay sinh tố, bạn có thể sử dụng trọng lượng xương tự động.)

Đánh dấu tất cả các xương trong khung hình đầu tiên và cuối cùng của hoạt ảnh. (Khi bạn phát hiện ra, nếu bạn chỉ có chìa khóa cho xương bạn đã thay đổi, ThreeJS sẽ không suy luận bất cứ điều gì về những cái khác, và mọi thứ sẽ bị hỏng.)

Ngay cả những hướng dẫn này, tôi không thể có được mọi thứ để làm việc một cách nhất quán và đã cân nhắc việc sử dụng các mục tiêu morph cho đến khi thư viện trưởng thành hơn một chút. Kích thước tệp cho các mục tiêu morph lớn hơn nhiều nhưng chúng dường như là một lựa chọn đáng tin cậy hơn vào thời điểm này, theo kinh nghiệm của tôi.

+1

Cảm ơn bạn! Tôi có xương xoay từ trục chính và dường như không tuân theo việc nuôi dạy con cái. ** "Xóa phần bổ trợ Armature trước khi xuất" ** là chìa khóa cho tôi. Bài báo tuyệt vời! – jozxyqk

+0

Vui vì tôi có thể giúp :) – null

2

Sau rất nhiều đào cuối cùng tôi đã tìm thấy câu trả lời trong một trong những cuộc thảo luận three.js github:.

"Chèn một keyframe đầy đủ cho tất cả các xương vào lúc bắt đầu và kết thúc của phim hoạt hình tôi thấy rằng nếu không có keyframe đầu tiên, animation sẽ bị bóp méo một cách tinh tế, và không có cái nào ở cuối thì tôi sẽ mất một phần của animation ở cuối. "

Nguồn: https://github.com/mrdoob/three.js/issues/2106

Đó là chính xác những gì đã xảy ra để làm cho chúng tôi. Chúng tôi chỉ có các khung hình chính của chiếc mũ được thiết lập cho xương đang thay đổi và không phải cho những cái xương tĩnh.

+0

Tôi thực sự muốn chia sẻ thông tin về đường ống Blender/ThreeJS. Vui lòng liên hệ nếu bạn muốn trao đổi con trỏ hoặc nếu bạn có bất kỳ đột phá tuyệt vời nào về cách làm cho điều này hoạt động đáng tin cậy. – null

+0

Tôi vừa gửi cho bạn một email để liên lạc. Tôi rất thích trao đổi một số kiến ​​thức. – Patrick

2

Tôi cũng thấy rằng để có được mô hình xuất khẩu hoạt động đúng, việc xuất khẩu phải được thực hiện tại frame 0 trong Blender.

Một điều khác đã giải quyết được sự cố mà tôi gặp phải là không mở rộng mô hình sau khi xuất. Điều này có nghĩa là mô hình không thể được thu nhỏ trong tệp JSON và có thể trong mã trực tiếp.

Sử dụng ba.js r56

Các vấn đề liên quan