همکاری در ساخت پلاگین SnowSim BETA

Elton John

Member
خوب اول باید بتونیم یک اسکریپت بنویسیم که موقعیت هر کدوم از ورتکس ها رو توی هر فریم توی یک فایل سیو کنه و بتونه دوبار فراخوانیش کنه . ( به عبارتی از جسم کش بگیره)

من این کارو با مکس اسکریپت انجام دادم که تو عکس زیر میتونید ببینید و موضوع من یک بکس با 8 ورتکس است شامل :

موقعیت ورتکس در فریم مثلا 8 + شماره ورتکس + فریم مورد نظر که برای مثال فریم 8 هست كه توسط کارکتر * از هم جداشدن

که هر خط در فایل text مربوط به اطلاعات یک ورتکس هست

عکس




اینم اسکریپت
البته هنوز تو این اسکریپت که نوشتم فقط اطلاعات ورتکس رو توی یه فایل متنی ذخیره میکنه برای فراخوانیش هم با مکس اسکریپت راحت میشه و مشکلی نیست

اسکریپت:
آبجکت مورد نظر باید در حال انتخاب باشه و فایل متنی هم توی درایو c:/ ساخته ميشه

کد:
myfile = "C:\Vertex_data.txt"

  cf=createFile myfile
 op=openFile  myfile  mode: "r+"

'start frame' = 0f
'end frame' = 100f
'count frame' =101f
'current frame' =8f

'my object' = $
converttomesh  'my object'

'count vert' = getnumverts   'my object'

for vdata = 1 to 'count vert' do
(
    at time 'current frame' (
        
                                            'vert pos' = getvert 'my object' vdata
        
                                   )
    
    'st1 vpos' = 'vert pos' as string
    'st2 vert num' = vdata as string
    'st3 current frame'= 'current frame' as string
    st4 = ('st1 vpos' + "*" +    'st2 vert num' + "*"  + 'st3 current frame')

    print  st4  to:op                               
    
)

close op
 
آخرین ویرایش:

nc_hamid

Member
من این کارو با مکس اسکریپت انجام دادم که تو عکس زیر میتونید ببینید و موضوع من یک بکس با 8 ورتکس است شامل :

موقعیت ورتکس در فریم مثلا 8 + شماره ورتکس + فریم مورد نظر که برای مثال فریم 8 هست كه توسط کارکتر * از هم جداشدن

که هر خط در فایل text مربوط به اطلاعات یک ورتکس هست

اینم اسکریپت
البته هنوز تو این اسکریپت که نوشتم فقط اطلاعات ورتکس رو توی یه فایل متنی ذخیره میکنه برای فراخوانیش هم با مکس اسکریپت راحت میشه و مشکلی نیست

اسکریپت:
آبجکت مورد نظر باید در حال انتخاب باشه و فایل متنی هم توی درایو c:/ ساخته ميشه

کد:
myfile = "C:\Vertex_data.txt"

  cf=createFile myfile
 op=openFile  myfile  mode: "r+"

'start frame' = 0f
'end frame' = 100f
'count frame' =101f
'current frame' =8f

'my object' = $
converttomesh  'my object'

'count vert' = getnumverts   'my object'

for vdata = 1 to 'count vert' do
(
    at time 'current frame' (
        
                                            'vert pos' = getvert 'my object' vdata
        
                                   )
    
    'st1 vpos' = 'vert pos' as string
    'st2 vert num' = vdata as string
    'st3 current frame'= 'current frame' as string
    st4 = ('st1 vpos' + "*" +    'st2 vert num' + "*"  + 'st3 current frame')

    print  st4  to:op                               
    
)

close op
التون جان همیشه اسکریپت نویسیت رو قبول داشتم . دانش خیلی بالایی تو این زمینه داری.
من همین کار رو انجام دادم با این تفوت که XMl ذخیره کردم . اما مشکل برام وقتی پیش میاد که مثلا مدیفایر Skin باشه . من میاد یه Edit Poly اضافه می کنم و از همین دستور استفاده می کنم . اما عدد ها درست نیستند . ( می خواستم یه اسکریپت شبیه Point Catch مکس درست کنم)
می دونی مشکل کجاست ؟
 

Elton John

Member
نه عزیز به نظر خودم هنوز هیچی بلد نیستم

این اسکریپت هایی که نوشتم باید موضوعت به مش تبدیل شده باشه حالا editable mesh یا یه edit mesh در بالای همه مدیفایرا قرار بدی برای edit poly باید دستورات خودشو بکار ببری

در مورد اینکه عددا درست نیستند اگه منظورتون اینه که موقیت ورتکسا درست نیستند فکر کنم مشکلت با دستور in coordsys حل بشه

اگه اسکریپت خودتونو قرار بدید بهتر میشه فهمید
 

LinkinForEver

مسئول بخش برنامه ها و مسائل گرافیک سه بعدی
خوب رفیق خوبه اما ... !
شما میتونی اینو فراخوانی کنی !!؟؟؟
 
آخرین ویرایش:

LinkinForEver

مسئول بخش برنامه ها و مسائل گرافیک سه بعدی
خوب این مشکل حل شد ! از همه فوق العاده ممنون ولی بیایین وقتتون رو بزارین روی این :
واسه برف باید از این تکنیک استفاده کنید باید کاری کنید که فریم قبلی رو Blend کنه .
بایک عکس که میزارم معلو میشه .
 

LinkinForEver

مسئول بخش برنامه ها و مسائل گرافیک سه بعدی
خوب رفقا هر ایده ای واسه این دارید بگید مشکل اصلی اینجاست که باید بتونیم فریم ها رو Blend کنیم .

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

VBA.jpg
 

bubo3d

کاربر متخصص انیمیشن
من چون خودم اینکارو نیاز داشتم خیلی تحقیق کردم دیدم چیزی نیست

سلام به دوستان این کاره
آقا من یه چیزی بگم؟ من این کاری که دوستمون میخواد انجام بده رو با سیستم PF دیدم انجام دادن، یعنی source فایلش رو هم داشتم ولی الان نمیدونم کجاست ولی فکر کنم دقیقا همین کار رو میکرد.

شرمنده ها چون گفتی جایی ندیدم گفتم ریفیق.

حق یارت
 

nc_hamid

Member
خوب رفقا هر ایده ای واسه این دارید بگید مشکل اصلی اینجاست که باید بتونیم فریم ها رو Blend کنیم .

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

مشاهده پیوست 90251
سلام
فکر می کنم یه مقایسه باشه . مثل اول A=0 بعد به ازای هر فریم موقعیت اون Vertex رو با A مقایسه کنه اگه بیشتر از A بود بریزه تو A . بعد در نهایت این A می شه همون مقداری که باید به عنوان موقعیت Vertex در نظر بگیری (حالا اگه در جهت منفیه بر عکسش )
 

LinkinForEver

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


آقا من یه چیزی بگم؟ من این کاری که دوستمون میخواد انجام بده رو با سیستم PF دیدم انجام دادن، یعنی source فایلش رو هم داشتم ولی الان نمیدونم کجاست ولی فکر کنم دقیقا همین کار رو میکرد.

شرمنده ها چون گفتی جایی ندیدم گفتم ریفیق.

حق یارت


اگه بذاری رفیق خیــــــــــــــــــــــــــــــلی ممنون میشم
 

LinkinForEver

مسئول بخش برنامه ها و مسائل گرافیک سه بعدی
سلام
فکر می کنم یه مقایسه باشه . مثل اول A=0 بعد به ازای هر فریم موقعیت اون Vertex رو با A مقایسه کنه اگه بیشتر از A بود بریزه تو A . بعد در نهایت این A می شه همون مقداری که باید به عنوان موقعیت Vertex در نظر بگیری (حالا اگه در جهت منفیه بر عکسش )
سلام رفیق
بیشتر توضیح بده یا یه نمونه بنویش فک نمیکنم اینجوری عملی باشه چون فقط یک سطح نیست ممکن چند بار هی با عمق بیشتر تو برف فرو بره در یک نقطه .

به نظرت اگه سه مقدار زیر رو تعیین کنیم میشه کاری کرد :
برای هر ورتکس :
Vertexpreviousframe=point3
VertexNextframe=point3
VertexCurrentFrame=point3

با این ها یه فرمولی در اوار که فرم قبلی رو تغییر نده .
تنها مشکل همینه بقیش حله
توی C++ خودش یه چیز آماده توی SDK ها ی مکس داشت به اسم
Affect Multiple Frame
از اون استفاده کردم اما اینجا رو چکار کنیم .

توضیحشم این بود :

This turns this effect on and off basically turning on/off the Vertex Animation Cache
 
آخرین ویرایش:

nc_hamid

Member
چون فقط یک سطح نیست ممکن چند بار هی با عمق بیشتر تو برف فرو بره در یک نقطه .
منظورت رو نفهمیدم می شه توضیح بدی ؟
من خیلی بد گفتم الان که متن و می خونم خودمم نمی فهمم چی نوشتم . منظورم این بود که چون وقتی جسم توی برف فرو می ره پایین می ره دیگه بالا نمی آد پس باید از اونجایی که Vertex می آد بالا رو فیلتر کرد . با یه مقایسه موقعیت vertex تو فریم جاری با موقعیتش با فریم قبلش می شه این کار رو انجام داد اما به شرط اینکه اثر نتیجه عمل فریم قبل رو تو فریم جدید اعمال کنیم . برای این کار اگه یه مقدار مثل A تعریف کنیم و نتیجه مقایسه رو بریزیم توش جواب می ده .
من متاسفانه هیچی از SDK نمی دونم اما مکس اسکریپت یه مثال ساده نوشتم .
کد:
result=#()a=0
arr=#(1,3,4,5,8,9,10,8,5,2,0,-2)
for i=1 to arr.count do
(
    if a<arr[i] then a=arr[i] else a
    append result a
)
جواب:
(result:#(1, 3, 4, 5, 8, 9, 10, 10, 10, 10, 10, 10
ارایه arr مقدار های یک vertex خاص توی frame های مختلفه
آرایه Result هم ارایه بعد از مقایسه .
تا یه مقداری تو می ره بعد دیگه تو آخرین مقدار ثابت می مونه
 
آخرین ویرایش:

LinkinForEver

مسئول بخش برنامه ها و مسائل گرافیک سه بعدی
منظورم رو با فیلم توضیح میدم ولی مختصر . فکر کن یه توپ اول میره تو برف ( تو فریم 10 ) بعد میر بالا دوباره با عمق بیشتر درست تو همون نقطه میره داخل برف در فریم 60 فهمیدی ؟؟؟؟ یعنی چند بار هی پایین تر بره
راستی من که هیچی از این اسکریپت با لا نفهمیدم اگه یکی کامل با ui بسازی خیلی کمک میکنی ممنون
 

LinkinForEver

مسئول بخش برنامه ها و مسائل گرافیک سه بعدی
ببین منظورم این شکلیه !
 

پیوست ها

  • SnowSim.avi
    200.5 کیلوبایت · بازدیدها: 33

bubo3d

کاربر متخصص انیمیشن
خوب ، ببین عزیز من الان خونم ولی سیستم خونم خوب نمیکشه تا بتونم اون چیزی که میخوای تست بزنم ولی دقیقا اون چیزی که تو اون یکی پست گفتی رو به صورت video برات میذارم
ولی چند نکته:
  1. تو برای این کار نیاز به PF tools داری ، اگه نداری بگو لینکش رو بهت بدم
  2. این در مورد خود کاره و با دیدن فیلم این رو بخون اگه برات مفهموم نبود، تو این کار من یه sphere ساختم تا حجم Particle ـها تو اون قرار بگیرن و از همون یه کپی گرفتم برای particle skinner ، یعنی اون sphere اولی رو بهش این خاصیت رو ندادم چون مکشل تو کار ایجاد میکنه.

هنوز وقت نکردم رو چیزی که میخوای خوب کار کنم چون سرم بد شلوغه ولی یه تستی میزنم بهت میگم

اینو فعلا ببینم ، حلش کردم، نمیدونم چرا خنگ بازی در میارم، اینو ببینم جدیده رو برات میذارم
 

پیوست ها

  • Particle skinner.rar
    1.4 مگایابت · بازدیدها: 47

bubo3d

کاربر متخصص انیمیشن
اینم از راه حلی که گفتم، انقدر سرم شلوغه که فکرم نمیتونه تو چندین جا کار کنه، ببخشید دیر شد

بیش از اندازه ساده بود ولی نمیدونم چرا فکرم کار نمیکرد.

حق یارت
 

پیوست ها

  • Snow.rar
    1.5 مگایابت · بازدیدها: 71

nc_hamid

Member
چقدر قشنگ در اومد !!!!
من که خودم رو خفه کردم تا این برخورد رو درست در بیارم .
فوق العاده بود.
مثل همیشه عالیییی بود .
 

LinkinForEver

مسئول بخش برنامه ها و مسائل گرافیک سه بعدی
اینم از راه حلی که گفتم، انقدر سرم شلوغه که فکرم نمیتونه تو چندین جا کار کنه، ببخشید دیر شد

بیش از اندازه ساده بود ولی نمیدونم چرا فکرم کار نمیکرد.

حق یارت

رفیق دستت درد نکنه !!! یه تشکر کمه !!!!!!!!
 

LinkinForEver

مسئول بخش برنامه ها و مسائل گرافیک سه بعدی
خوب ، ببین عزیز من الان خونم ولی سیستم خونم خوب نمیکشه تا بتونم اون چیزی که میخوای تست بزنم ولی دقیقا اون چیزی که تو اون یکی پست گفتی رو به صورت video برات میذارم
ولی چند نکته:
  1. تو برای این کار نیاز به PF tools داری ، اگه نداری بگو لینکش رو بهت بدم
  2. این در مورد خود کاره و با دیدن فیلم این رو بخون اگه برات مفهموم نبود، تو این کار من یه sphere ساختم تا حجم Particle ـها تو اون قرار بگیرن و از همون یه کپی گرفتم برای particle skinner ، یعنی اون sphere اولی رو بهش این خاصیت رو ندادم چون مکشل تو کار ایجاد میکنه.

هنوز وقت نکردم رو چیزی که میخوای خوب کار کنم چون سرم بد شلوغه ولی یه تستی میزنم بهت میگم

اینو فعلا ببینم ، حلش کردم، نمیدونم چرا خنگ بازی در میارم، اینو ببینم جدیده رو برات میذارم

ممنون رفیق این PF tools ای که میگی همون PF Box 2 & 3 مال Orbaz یا اون نسخه ی رایگانش ؟؟؟ یا یه چیز دیگست ؟؟؟
به هر حال لطف میکنی اگه لینک بدی !
بازم ممنون از وقتی که گذاشتی .
 

bubo3d

کاربر متخصص انیمیشن
فقط مشکلاتی داره اگه روش دقت کنی و بیشتر باهاش کار کنی، میشه حلش کرد ولی ابزارهایی که لازم داره رو الان رو سیستم من خوب جواب نمیده، ابزارهای Physx ، مشکلش هم اینه که وقتی یه Deflector ایجاد میکنی و بعد جسم مورد نظرت رو میدی بهش ، جسم ذرات رو با خودش میبره، خیلی عجیبه، انگار UDeflector یه نوع باگ داره. حتی اگه جسمت یه sphere که شکلا مثل SDeflector هست ولی نمیدونم چرا ذرات رو دنبال خودش میکشه ؟!!!!
خودم حالا باز روش فکر میکنم تا ببینم چشه، ولی دیگه دست خودت باز تره دیگه رفیق.

بابت تشکر هم ممنون عزیز، نظر لطفته :rose:
 

جدیدترین ارسال ها

بالا