آموزش ساخت 3D با ActionScript

UnknownUser

Well-Known Member
سلام
از این دوستم ممنونم برای این پستش چون باعث شد من یادم بیاد که میخواستم در این مورد فعالیتی داشته باشم
من تو مثالایی که دوستمون قرار داده بود یک مورد رودیدم که از روش برش یه عکس و تغییر مقیاسش برمبنای x و y موس یک شکل سه بعدی ساخته بود ترفند خیلی جالبی یه :wink:
من روش ساختن این ترفند رو می گم
برای شروع یه movieclip می سازیم (ctrl+F8) تو movieclip یه tween می سازیم البته باید این tween یه شرایطی داشته باشه
1- بهتزه از shaptween برای این کار استفاده کنین
2- بهتره همه ی مرکز شکل ها بر مرکز movieclip منطبق باشه یا فاصله ی زیادی نداشته باشه
من برای مثال یه نمونه رو می گم :
داخل movieclip یه دایره در فریم اور بکشید و مرکز دایره را با مرکز Movieclip منطبق کنین اندازه ی اون رو بزارید 214.0 * 214.0 و رنگش رو هم مشکی بزارید
به فریم 30 برید با زدن F6 یه فریم ایجاد کنین یه دایره با اندازه یه 18*18 رسم کنین و مرکزش رو با مرکز movie clip منطبق کنین رنگش رو کم یه رنگ روشن انتخاب کنین مثلا #00FFFF
بین فریم های 1 و 30 را انتخاب کنین و در پنل proprties گزینه ی tween رو برابر shap بزارید
خوب حالا در داخل پنل library بر روی movie clip کلیک راست کنین و بعد linkage را انتخاب کنین گزینه های Export for Actionscript و export in first frame را انتخاب کنین و Identifer را n بگزارید این اسمی هست که ما به وسیله یه action مووی کلیپ رو از library می خونیم بر روی ok بزنید و به Scene 1 بروید فریم اول را انتخاب کنید
و در دخل اون این action را وارد کنین
PHP:
var sliceNum = 30;
var step = 4;
var X = 200;
var Y = 200;
createEmptyMovieClip("newM",0);
newM._x = X;
newM._y = Y;
for (i=0; i<sliceNum; i++) {
	newM.createEmptyMovieClip("slice"+i,i);
	newM["slice"+i].attachMovie("n","n"+i,i);
	newM["slice"+i]["n"+i].gotoAndStop(i+1);
	newM["slice"+i].number = i;
	newM["slice"+i].onEnterFrame = scale;
}
function scale() {
	var a = _root._ymouse;
	this._y = ((this.number*_root.step*Math.cos(a*Math.PI/180))*-1);
	this._yscale = Math.sin(a*Math.PI/180)*100;
}

sliceNum برابر تعداد برش هایی هست که باید ایجاد بشه که با تعداد فریم های movie clip برابره
step فاصله ی بین هر برش
X مکان x شکل در root
Y مکان y شل در root

PHP:
createEmptyMovieClip("newM",0);
در این خط از کد ما یه movieclip ایجاد کرده ایم که تمام اجزا در این movieclip ایجاد می شه

PHP:
newM._x = X;
newM._y = Y;
در اینجا مکان x و y رو تعیین می کنیم
PHP:
for (i=0; i<sliceNum; i++) {
	newM.createEmptyMovieClip("slice"+i,i);
	newM["slice"+i].attachMovie("n","n"+i,i);
	newM["slice"+i]["n"+i].gotoAndStop(i+1);
	newM["slice"+i].number = i;
	newM["slice"+i].onEnterFrame = scale;
}
در این جا با ایجاد یه حلقه در هر بار یه movie clip ایجاد می شه و در داخل هر movie clip ایجاد شده movie clip ای که در library قرار داره رو لود می کنیم و هر برش ( که هر یک ار فریم های movie clip هست ) را بر اساس شمارندهی حلقه تعیین می کنیم و برای هر یک یه onEnterFrame ایجاد می کنیم که در هر EnterFrame تابع scale فرا خوانی میشه

PHP:
function scale() {
	var a = _root._ymouse;
	this._y = ((this.number*_root.step*Math.cos(a*Math.PI/180))*-1);
	this._yscale = Math.sin(a*Math.PI/180)*100;
}

این تابع مبنای y موس (فاصله ی y موس از مبدا) y و yscale هر برش رو تعیین می کنه تا باعث ساخت این ترفند می شه
در واقع همون طور که دوستمون روشنایی گفت تو این تابع ما با نوعی حرکت بر روی محور Y محور z رو می سازیم
این هم یه مثال :
 

پیوست ها

  • unknown 3D.zip
    5.1 کیلوبایت · بازدیدها: 24
آخرین ویرایش:

UnknownUser

Well-Known Member
اینم یه مثال دیگه :D:wink:
این رو گذاشتم که ببینین که خیلی کار ها می شه کرد تو این روش شما راحت می تونین یه عکس 2 بعدی رو 3 بعدی کنین :neutral: :cool:
 

پیوست ها

  • unknown 3D 2.zip
    3.9 کیلوبایت · بازدیدها: 26
آخرین ویرایش:

kiarash.M

Active Member
جالبه میخوای اگه میتونی واسه بچه ها بیشتر توضضیح بدی مخصصوصا کلا س ها رو عالی میشه!
 

UnknownUser

Well-Known Member
من منظورت رو نفهمیدم
اگه این مثال رو می گی فکر نکم دیگه توضیحی بخواد
اما منظورت رو از کلاس ها نفهمیدم !
 
آخرین ویرایش:

kiarash.M

Active Member
منظورم اینه که
همون طوری که جناب
در صفحه اول آموزش ساخت مکعب با کلاس Draw3D
که فک کنم خودش نوشته بود mfsh_1369
رو گذاشتن ولی از قسمت اصلی یعنی همون Draw3D Calss
حرفی نزدن
می میخوام به کمک برخی از دوستان
انجمن
>OOP
رو راه اندازی کنم
کسانی که آمادگی لازم جهت همکاری دارن
پیغام خصوصی
بزنن
لطفا
 

kiarash.M

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

omid020

Member
UnknownUser مثالت خيلي به كارم اومد ، فقط ميتوني بگي براي اينكه پس از حركت موس شي با يك شتابي حركت كنه و سرعت چرخشش زياد شه و پس از مدتي كم كم سرعتش كم شه و بايسته چيكار بايد كنيم !!؟
 

omid020

Member
دوستان كسي اگه آموزش ساخت يه چنين صورتكي رو داره حتماً بزاره يا لينك بده . من خودم ميخوام براي طراحي بنر تبليغاتي ازش استفاده كنم . ايدۀ جالبيه !:wink:

http://www.arseiam.com/faces_frames.htm
 

UnknownUser

Well-Known Member
سلام
جواب سوال اولت که گفتی شتاب داشته باشه
اون function scale ره به این تغییر بده
PHP:
function scale() {
	var a = _root._ymouse;
	this._y = ((this.number*_root.step*Math.cos(a*Math.PI/180))*-1);
	this._yscale += ((Math.sin(a*Math.PI/180)*100)-this._yscale)/8;
}
با این کار باعث میشه به صورت شتاب دار حرکت کنه:wink:
 

UnknownUser

Well-Known Member
جواب سوال دومت :
این کار خیلی سادس یه عکس صورت وارد کرده بعد با ماسک کردن عکس رو برش داده به ترتیب ارتفاع اولین فریم کل صورت آخرین فریم نوک بینی !
 

roshanaiy

Active Member
Paper Planes

يه كار سه بعدي تووووووپ :wink:
 

پیوست ها

  • Paper Planes.rar
    223.6 کیلوبایت · بازدیدها: 67
آخرین ویرایش:

UnknownUser

Well-Known Member
سلام ممنون از مثالی که گذاشتی اما این مثال به صورت static ساخته شده یعنی هیچ ActionScript یی استفاده نشده
جالب بود مرسی
 

omid020

Member
roshanaiy جان ، مي بري تا لب چشمه ، تشنه بر مي گردوني !؟ پس فايل fla اين شاهكار كجاست ؟:eek:
 

Avang2005

مدیر انجمن
سلام دوست من

من سورس اين 3d رو داشتم اگه پيدا كردم 100 % مي زارم

موفق باشيد
 

Nasab187

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

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

بالا