لرنینگ تی وی

طعم شیرین یادگیری

ساخت تصاویر متحرک در یونیتی -قسمت اول


تاریخ انتشار

تعداد نظرات

تعداد بازدید

زمان تقریبی مطالعه
۰۸/فروردین/۱۳۹۲
۲۲۴۷ روز پیش
۱۰۳ دیدگاه ۵۹۱ ۲ دقیقه

LearningTV.irبا سلام خدمت دوستان عزیز.

اول از همه ایام عید رو بهتون تبریک عرض می کنم و از این که چند روزی هست که سایت رو آپلود نکردم واقعا عذر می خوام. ولی سعی می کنم آموزش های کاربردی براتون قرار بدم.

بعد ازچند روز تعطیلی عید تصمیم گرفتم امروز براتون یک آموزش بزارم.در واقع توی این آموزش شما با نحوه ی ساخت تصاویر متحرک دریونیتی آشنا خواهید شد. در پایان این آموزش یاد خواهید گرفت که چگونه یک ساعت متحرک دریونیتی ایجاد نمایید.

ساخت تصاویر متحرک در یونیتی

قبل از هرچیز بهتون پیشنهاد می کنم که چشماتون رو ببندید و فقط فکر کنید!

فکر کنید که چه طور می تونید یک تصویر که دارای sequence می باشد رو به صورت متحرک در یونیتی ایجاد نمایید.تمام راه هایی که به ذهنتون می رسه رو یادداشت کنید و ببینید که کدوم راه حل بهتر و راحت ترهست.

ولی ما امروز براتون یک راه حل رو آموزش می دیم.

ابتدا از فایلی که دارید تصویر Sequence ایجاد نمایید.(فیلم و انیمیشن مورد نظر رو به داخل نرم افزار افترافکت وارد کنید و سپس موقع خروج گرفتن ویدئو به جای این که خروجی رو روی Avi قرار بدید روی Image Sequence قرار دهی. با این کار می بینید که تعدادی تصویردر محل تعیین شده ذخیره می شود).

البته همون طور که ازتصویر بالا معلوم هست ما قبلا تصویر ساعت رو به صورت Image Sequence در آوردیم.

درنرم افزار یونیتی یک پوشه با نام Resources ایجاد نمایید.یک پوشه ی دیگه هم با نام Sequence در پوشه ی Resources قرار دهید تا عکس ها رو توی این پوشه بریزیم.

باید بخش Project شما به صورت زیر در اومده باشه.

LearningTV.ir

 تنها کاری که مونده این هست که یک اسکریپت بنویسیم که بیاد این تصاویر رو بخونه و به صورت پشت سر هم (انیمیت شده) نشونشون بده.

پس یک اسکریپت سی شارپ ایجاد نمایید و مطابق مطالبی که براتون می نویسم عمل کنید.

ما ابتدا به چهار متغیر نیاز داریم.یک شی آرایه ای(چند تا شی) ، یک تکسچرآرایه ای (چند تا تکسچر) ، یک متریال ویک متغیر از نوع اعداد طبیعی که تعداد فریم ها رو تنظیم می کنه.

خوب برای این که این متغیر ها رو تعریف کنیم می تونید از کد های زیر استفاده کنید.

در مرحله ی بعد باید از این تکسچر ها یک متریال بسازیم و به اشیا اعمال کنیم پس در بخش Void Awake می توانید ازکدهای زیر استفاده کنید.

برای بازخوانی تصاویر موجود در پوشه ی Sequence می توان در بخش Void Start از کد های زیر استفاده نمود.

  1. در خط ۴ گفتیم که تمامی تصاویر رو توی شی objects که به صورت آرایه ای هست بریز.
  2. درخط ۷ گفتیم یک تکسچر بسازکه طول آرایه برابر تعداد objects ها باشه.
  3. از خط ۱۰ تا ۱۳ هم گفتیم تمامی تصاویر رو از objects بگیر و به صورت تکسچر وارد textures بکن.

بخش Void Update هم وظیفه ی Play کردن این تصاویر رو داره.در واقع در این بخش هر ۰٫۰۴ ثانیه تصاویر تغییر می کنند. ما ابتدا گفتیم که متد PlayLoop با ۰٫۰۴ ثانیه تاخیر اجرا بشه (متد PlayLoop رو بعدا تعریف خواهیم کرد که اصلا چی هست؟)

در قسمت بعد هم گفتیم که تکسچر های متریال goMaterial مدام تغییر کنه و برابر با همون آرایه ی textures باشه.

بسیار خوب الان نوبت اون رسیده که متد PlayLoop رو توضیح بدم.

کد مربوط به این بخش رو در پایین قرار دادم .از چند بخش تشکیل شده. ۱- شروع انتظار ۲- یکسری کار  ۳- پایان انتظار

در بخش اول گفتیم که به اندازه ی delay تاخیر داشته باشیم و منتظر باشیم(البته delay  رو قبلا گفتم برابر ۰٫۰۴ ثانیه هست و شما هرچی که خواستید بزارید).

در بخش دوم گفتیم که یک فریم به فریم قبلی اضافه بشه.

و در نهایت هم گفتیم که این عمل به پایان برسه و دوباره عمل تاخیر و منتظر ماندن شروع بشود.

در واقع اگه این کد زیر رو هم به سایر کد ها اضافه کنید خروجی شما چیزی شبیه به تصویر بالای همین مطلب میشه “یعنی این که یک تصویر ساعت دارید که مدام و به صورت Loop در حال چرخش هست”.

خوب حالا اگه بخواهیم که این عمل فقط یک بار انجام بشه و دیگه تکرار نشه کافیه  کد بالا رو به کد زیر تبدیل کنید.

یادتون باشه که سعی کنید توی کدهاتون اصلا از واژه های فارسی استفاده نکنید.

کد کامل این آموزش در زیر آمده است:

البته یک نکته ی دیگه تا یادم نرفته بگم که :

این روش کمی روی رم تاثیر داره و سرعت رو میاره پایین (البته قابل احساس نیست) ولی در آینده روش دیگری رو بهتون آموزش می دم که دیگه این مشکل رو هم حل کرده.

ضمنا نظر یادتون نره!

مطمئن باشید که نظراتتون خونده میشن.

با تشکر

LearningTV

۱۰۳ نظر برای "ساخت تصاویر متحرک در یونیتی -قسمت اول"


  1. نوشته شده توسط  

    خیلی ممنون عالی بود

    پاسخ

    پاسخ
    • نوشته شده توسط  

      خواهش می کنم.
      سعی می کنم قسمت دوم رو هم هرچه سریع تر براتون قرار بدم تا استفاده کنید.
      طی چند روز آینده نحوه ساخت mini map به صورت دایره ای رونیز آموزش می دم.
      با تشکر
      سید

      پاسخ پاسخ

    • نوشته شده توسط  

      That was my duty to help you.
      I hope it does not come to you anymore
      By Thanks

      پاسخ پاسخ

    • نوشته شده توسط  

      Thanks for cnortibuintg. It’s helped me understand the issues.

      پاسخ

      پاسخ
      • نوشته شده توسط  

        It is my duty to help you

        پاسخ

  2. نوشته شده توسط  

    thank you too for meeting us
    learningtv.ir

    پاسخ پاسخ

  3. نوشته شده توسط  

    Your article perfectly shows what I needed to know, thanks!

    پاسخ

    پاسخ
    • نوشته شده توسط  

      thanks for comment

      پاسخ پاسخ

  4. نوشته شده توسط  
    • نوشته شده توسط  

      thank you for your comment
      Seyyed

      پاسخ پاسخ

  5. نوشته شده توسط  

    There’s a secret about your post. ICTYBTIHTKY

    پاسخ

    پاسخ
  6. نوشته شده توسط  

    That’s a smart answer to a tricky question

    پاسخ

    پاسخ
  7. نوشته شده توسط  

    That kind of thinking shows you’re an expert

    پاسخ

    پاسخ
    • نوشته شده توسط  

      thank you for your comment
      thanks

      پاسخ پاسخ

  8. نوشته شده توسط  

    In the complicated world we live in, it’s good to find simple solutions.

    پاسخ

    پاسخ
    • نوشته شده توسط  

      Yes
      It is my idea too

      thanks for your comment

      پاسخ پاسخ

  9. نوشته شده توسط  

    What’s it take to become a sublime expounder of prose like yourself?

    پاسخ

    پاسخ
  10. نوشته شده توسط  

    None can doubt the veracity of this article.

    پاسخ

    پاسخ
  11. نوشته شده توسط  

    It’s great to read something that’s both enjoyable and provides pragmatisdc solutions.

    پاسخ

    پاسخ
  12. نوشته شده توسط  

    Sharp thinking! Thanks for the answer.

    پاسخ

    پاسخ
  13. نوشته شده توسط  

    This makes everything so completely painless.

    پاسخ

    پاسخ
  14. نوشته شده توسط  

    Good to find an expert who knows what he’s talking about!

    پاسخ

    پاسخ
  15. نوشته شده توسط  

    Articles like this really grease the shafts of knowledge.

    پاسخ

    پاسخ
  16. نوشته شده توسط  

    Normally I’m against killing but this article slaughtered my ignorance.

    پاسخ

    پاسخ
  17. نوشته شده توسط  

    Dude, right on there brother.

    پاسخ

    پاسخ
  18. نوشته شده توسط  

    Hello! eaddgkg interesting eaddgkg site! I’m really like it! Very, very eaddgkg good!

    پاسخ

    پاسخ
  19. نوشته شده توسط  

    Wow! Great thinking! JK

    پاسخ

    پاسخ
  20. نوشته شده توسط  

    Well I guess I don’t have to spend the weekend figuring this one out!

    پاسخ

    پاسخ
  21. نوشته شده توسط  

    Well put, sir, well put. I’ll certainly make note of that.

    پاسخ

    پاسخ
  22. نوشته شده توسط  

    Stay with this guys, you’re helping a lot of people.

    پاسخ

    پاسخ
  23. نوشته شده توسط  

    Great stuff, you helped me out so much!

    پاسخ

    پاسخ
  24. نوشته شده توسط  

    Ppl like you get all the brains. I just get to say thanks for he answer.

    پاسخ

    پاسخ
  25. نوشته شده توسط  

    This is way more helpful than anything else I’ve looked at.

    پاسخ

    پاسخ
  26. نوشته شده توسط  

    Kewl you should come up with that. Excellent!

    پاسخ

    پاسخ
  27. نوشته شده توسط  

    I was so confused about what to buy, but this makes it understandable.

    پاسخ

    پاسخ
    • نوشته شده توسط  

      create a pro accoun for 1 month in rapidgator.com
      register information
      email:hamedbrother2@yahoo.com

      password:
      ۱۰۱۰۱۹

      after buying this account say me
      i email for you links of packages

      thanks

      پاسخ پاسخ

  28. نوشته شده توسط  

    A few years ago I’d have to pay someone for this information.

    پاسخ

    پاسخ
  29. نوشته شده توسط  

    Taking the overview, this post hits the spot

    پاسخ

    پاسخ
  30. نوشته شده توسط  

    I was so confused about what to buy, but this makes it understandable.

    پاسخ

    پاسخ
    • نوشته شده توسط  

      buying the filefactory.com account for me.
      email :hmchenaran.s@gmail.com

      then tell me.
      i send for you links of packages

      thanks

      پاسخ پاسخ

  31. نوشته شده توسط  

    Unparalleled accuracy, unequivocal clarity, and undeniable importance!

    پاسخ

    پاسخ
  32. نوشته شده توسط  

    Brilliance for free; your parents must be a sweetheart and a certified genius.

    پاسخ

    پاسخ
  33. نوشته شده توسط  

    That’s an intelligent answer to a difficult question xxx

    پاسخ

    پاسخ
  34. نوشته شده توسط  

    You’re the one with the brains here. I’m watching for your posts.

    پاسخ

    پاسخ
    • نوشته شده توسط  

      thank you for your comment
      thanks

      پاسخ پاسخ

  35. نوشته شده توسط  

    The ability to think like that is always a joy to behold

    پاسخ

    پاسخ
  36. نوشته شده توسط  

    This is way better than a brick & mortar establishment.

    پاسخ

    پاسخ
  37. نوشته شده توسط  

    A good many valuables you’ve given me.

    پاسخ

    پاسخ
  38. نوشته شده توسط  

    Articles like this really grease the shafts of knowledge.

    پاسخ

    پاسخ
  39. نوشته شده توسط  

    Deep thinking – adds a new dimension to it all.

    پاسخ

    پاسخ
  40. نوشته شده توسط  

    A simple and intelligent point, well made. Thanks!

    پاسخ

    پاسخ
  41. نوشته شده توسط  

    That’s not just logic. That’s really sensible.

    پاسخ

    پاسخ
  42. نوشته شده توسط  

    If not for your writing this topic could be very convoluted and oblique.

    پاسخ

    پاسخ
  43. نوشته شده توسط  

    I’ve been looking for a post like this forever (and a day)

    پاسخ

    پاسخ
  44. نوشته شده توسط  

    That’s a creative answer to a difficult question

    پاسخ

    پاسخ
  45. نوشته شده توسط  

    In awe of that answer! Really cool!

    پاسخ

    پاسخ
  46. نوشته شده توسط  

    You have shed a ray of sunshine into the forum. Thanks!

    پاسخ

    پاسخ
  47. نوشته شده توسط  

    Play informative for me, Mr. internet writer.

    پاسخ

    پاسخ
  48. نوشته شده توسط  

    AKAIK you’ve got the answer in one!

    پاسخ

    پاسخ
  49. نوشته شده توسط  

    What liberating knowledge. Give me liberty or give me death.

    پاسخ

    پاسخ
  50. نوشته شده توسط  

    Thinking like that shows an expert’s touch

    پاسخ

    پاسخ
  51. نوشته شده توسط  

    Thanks for writing such an easy-to-understand article on this topic.

    پاسخ

    پاسخ
  52. نوشته شده توسط  

    This is what we need – an insight to make everyone think

    پاسخ

    پاسخ
  53. نوشته شده توسط  

    Shoot, who would have thought that it was that easy?

    پاسخ

    پاسخ
  54. نوشته شده توسط  

    Cheers pal. I do appreciate the writing.

    پاسخ

    پاسخ
  55. نوشته شده توسط  

    If information were soccer, this would be a goooooal!

    پاسخ

    پاسخ
  56. نوشته شده توسط  

    Woot, I will certainly put this to good use!

    پاسخ

    پاسخ
  57. نوشته شده توسط  

    I came, I read this article, I conquered.

    پاسخ

    پاسخ
  58. نوشته شده توسط  

    All of my questions settled-thanks!

    پاسخ

    پاسخ
  59. نوشته شده توسط  

    This shows real expertise. Thanks for the answer.

    پاسخ

    پاسخ
  60. نوشته شده توسط  

    AFAIC that’s the best answer so far!

    پاسخ

    پاسخ
  61. نوشته شده توسط  

    THX that’s a great answer!

    پاسخ

    پاسخ
  62. نوشته شده توسط  

    Please keep throwing these posts up they help tons.

    پاسخ

    پاسخ
  63. نوشته شده توسط  

    I thank you humbly for sharing your wisdom JJWY

    پاسخ

    پاسخ
  64. نوشته شده توسط  

    This site is like a classroom, except I don’t hate it. lol

    پاسخ

    پاسخ
  65. نوشته شده توسط  

    I didn’t know where to find this info then kaboom it was here.

    پاسخ

    پاسخ
  66. نوشته شده توسط  

    игры на webmoney деньги покер пополнение мобильного счета пирамида игровые автоматы онлайн казино онлайн на деньги скачать

    پاسخ

    پاسخ
  67. نوشته شده توسط  

    игровой автомат сокровища пиратов депозит на покер старс казино visa игровые автоматы вулкан играть на деньги на рубли интернет казино вулкан играть бесплатно без регистрации, фараон казино играть бесплатно играть в игровые аппараты на реальные деньги qiwi wallet игровые автоматы деревня дураков играть игры на деньги через телефон

    پاسخ

    پاسخ
  68. نوشته شده توسط  

    Clear, informative, simple. Could I send you some e-hugs?

    پاسخ

    پاسخ
  69. نوشته شده توسط  

    I was looking everywhere and this popped up like nothing!

    پاسخ

    پاسخ
  70. نوشته شده توسط  

    That insight would have saved us a lot of effort early on.

    پاسخ

    پاسخ
  71. نوشته شده توسط  

    A simple and intelligent point, well made. Thanks!

    پاسخ

    پاسخ
  72. نوشته شده توسط  

    Now that’s subtle! Great to hear from you.

    پاسخ

    پاسخ
  73. نوشته شده توسط  

    You are so awesome for helping me solve this mystery.

    پاسخ

    پاسخ
  74. نوشته شده توسط  

    Stay with this guys, you’re helping a lot of people.

    پاسخ

    پاسخ
  75. نوشته شده توسط  

    Stay informative, San Diego, yeah boy!

    پاسخ

    پاسخ
  76. نوشته شده توسط  

    Pleasing to find someone who can think like that

    پاسخ

    پاسخ
  77. نوشته شده توسط  

    Hot damn, looking pretty useful buddy.

    پاسخ

    پاسخ
  78. نوشته شده توسط  

    I see, I suppose that would have to be the case.

    پاسخ

    پاسخ
  79. نوشته شده توسط  

    That’s way the bestest answer so far!

    پاسخ

    پاسخ
  80. نوشته شده توسط  

    The ability to think like that is always a joy to behold

    پاسخ

    پاسخ
  81. نوشته شده توسط  

    Boom shakalaka boom boom, problem solved.

    پاسخ

    پاسخ
  82. نوشته شده توسط  

    Thanks for the great info dog I owe you biggity.

    پاسخ

    پاسخ
  83. نوشته شده توسط  

    That’s cleared my thoughts. Thanks for contributing.

    پاسخ

    پاسخ
  84. نوشته شده توسط  

    i think StartCooutine(…) should be on start function not on Update func.
    if it be on Update func then StartCooutine(…) will run every frame that is so bad and ineficient.

    پاسخ

    پاسخ
    • نوشته شده توسط  

      لطفا فارسی بنویسید

       

      با تشکر

      سید

      پاسخ پاسخ

      • نوشته شده توسط  

        چرا جواب خارجیا رو نمی دید
        این همه نظر گذاشتن واستون
        گناه دارن طفلکیا
        فقط من هنوز نفهمیدم چطوری متوجه میشن شما چی نوشتین (:unknw:)

        پاسخ

      • نوشته شده توسط  

        اینا اسپم هستند که تازه فهمیدم به همین دلیل جوابشون رو نمیدم و به صورت خودکار از این به بعد این جور نظرات اسپم حذف خواهند شد.

        با تشکر
        سید

        پاسخ

  85. نوشته شده توسط  

    سلام
    ممنون از این آموزش.
    روش دیگه ای که فرمودید را درسایت قرار نمیدید ؟

    پاسخ

    پاسخ
    • نوشته شده توسط  

      اگه وقت شد میزارم

      با تشکر
      سید

      پاسخ پاسخ

  86. نوشته شده توسط  

    آقا سید تازه فهمیدید اینا اسپم هستند! (:rtfm:)
    من قبلا یه سایت با مدیریت محتوای وردپرس داشتم همیشه این جور نظرات توش می یومدند
    فکر کنم این اسپم ها از طرف همون مدیریت محتوایی هست که سایتت بر پایه اون استواره
    مثل وردپرس و جوملا و غیره

    پاسخ

    پاسخ
  87. نوشته شده توسط  

    Appreciation for this information is over 9000-thank you!

    پاسخ

    پاسخ
  88. نوشته شده توسط  

    سلام
    آقا حامد شما لطفا راهنمایی کن من بازی سازی رو ازکجا شروع کنم اگه ویدیو آموزشی مقدماتی بازی سازی رو دارید لطفا لینک بدید ممنون

    پاسخ

    پاسخ

ارسال دیدگاه

نام (*)
پست الکترونیکی (*)
وبسایت