Sceneform به شما امکان می دهد مدل ها را با انیمیشن وارد کنید. می توانید از API های Sceneform برای پخش و کنترل انیمیشن استفاده کنید و گره ها را به اسکلت مدل متصل کنید.
به عنوان مثال، نمونه انیمیشن Sceneform شامل فایلهایی است که برای ساخت مدلهای اندی اندروید و کلاه بیسبال استفاده میشوند. مدل اندی حاوی داده های انیمیشن است، در حالی که کلاه بیسبال یک مدل غیر متحرک است. هنگامی که نمونه را اجرا می کنید، اندی بریک رقص می کند و دستانش را تکان می دهد در حالی که کلاه با استفاده از یک گره روی سرش ثابت می ماند.
انیمیشن مدل Sceneform در مقابل انیمیشن ویژگی اندروید
مهم است که بین انیمیشن مدل در Sceneform در مقابل انیمیشن ویژگی در اندروید تفاوت قائل شوید.
انیمیشن های مدل جلوتر از زمان توسط هنرمندان با استفاده از نرم افزارهای مدل سازی و انیمیشن ساخته می شوند. آنها حاوی داده های انیمیشن اسکلتی هستند. این انیمیشن ها باید به عنوان فایل
*.fbx
صادر شوند، سپس به یک فایل*.sfb
وارد شوند تا در Sceneform استفاده شوند.انیمیشن Property یک مفهوم اساسی اندروید است و مختص Sceneform نیست. این نوع انیمیشن می تواند هر مقدار قابل تغییر را در یک شی جاوا که دارای یک گیرنده و یک تنظیم کننده است تغییر دهد. مقادیر متحرک را می توان به صورت پویا تنظیم کرد، اما نمی توان آنها را در یک فایل
*.sfb
بسته بندی کرد.هر دو ویژگی و انیمیشن مدل از API Animator Android پشتیبانی می کنند. هر دو از شنوندگان ، کنترل پخش (شروع/توقف/پایان/مکث/لغو)، مدت زمان و تأخیر شروع پشتیبانی میکنند.
تنها پشتیبانی محدودی از پخش
TimeInterpolators
در انیمیشن های مدل ارائه شده است. پخش معکوس در انیمیشن های مدل پشتیبانی نمی شود.برای مشاهده مدل سازی انیمیشن Sceneform در عمل، نمونه انیمیشن را مرور کنید.
برای دیدن انیمیشن ویژگی با استفاده از Sceneform در عمل، نمونه منظومه شمسی را مرور کنید.
مفاهیم انیمیشن مدل
قبل از شروع کار با مدلهای متحرک، ایده خوبی است که مفاهیم خاص مربوط به انیمیشن اسکلتی و همچنین محدودیتها و ویژگیهای مربوط به Sceneform را درک کنید.
استخوان ها. یک مدل متحرک شامل استخوان هایی است که به هم متصل شده اند و روابط والدین-فرزند را در یک سلسله مراتب تشکیل می دهند. انیمیشن موقعیت و جهت استخوان ها را در حین پخش تغییر می دهد.
همانطور که جابجایی یک
Node
والد در Sceneform باعث می شود که تمامNode
های فرزند نیز حرکت کنند، حرکت یک استخوان والد در Sceneform باعث حرکت کودکان می شود. استخوان ها توسط انیمیشن قابل جابجایی هستند یا به عنوان یک گره از طریق کلاسSkeletonNode
قابل دسترسی هستند. هنگامی که استخوانها بهعنوان یکNode
در دسترس هستند، موقعیتهای جدید در هر فریم توسط انیمیشن بازنویسی میشوند.اسکلت. اسکلت تمام استخوان ها را با هم تشکیل می دهد و سلسله مراتبی از روابط والدین و فرزند را تشکیل می دهد.
به عنوان مثال، یک مدل از بازوی انسان ممکن است شامل استخوان هایی مانند "شانه چپ"، "بازوی بالای چپ"، "آرنج چپ" و "ساعد چپ" و غیره باشد. با شروع از "شانه چپ" به عنوان والد این سلسله مراتب، "بازوی بالای چپ" به عنوان یک کودک اختصاص داده می شود. بچه های "بازوی چپ" ممکن است "آرنج چپ" و استخوان های پایینی باشند. هنگامی که استخوان شانه چرخانده می شود، بازو، ساعد، آرنج و هر استخوان زیر پشت سر هم حرکت می کنند.
Sceneform یک API برای تغییر روابط والدین و فرزند بین استخوانهای اسکلت ندارد. این کار باید قبل از موعد در یک بسته مدلسازی و انیمیشن خارجی انجام شود.
حتی مدل هایی که اشیاء غیر آلی را به تصویر می کشند می توانند از اسکلت ها برای تسهیل واقع گرایی استفاده کنند. به عنوان مثال، یک مدل کاناپه می تواند استخوان و اسکلت داشته باشد.
پوست. پوست وزنی است که روی مش سطح کشیده شده مدل اعمال می شود. موقعیت و شکل مش پوست از روی استخوان های مجاور محاسبه می شود. این اتصال استخوان به پوست نحوه تغییر شکل مدل را ترسیم می کند و حرکت واقعی تری را فراهم می کند.
پوست باید با استفاده از پکیج مدلینگ و انیمیشن زودتر آماده شود. Sceneform می تواند مواد مش پوست را تغییر دهد تا ظاهر مدل را تغییر دهد.