«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
بایگانی اسفند ۱۳۹۳ :: گیم اور _ بازیسازی با unity + مطالب متفرقه

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

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

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

۳۶ مطلب در اسفند ۱۳۹۳ ثبت شده است

http://s6.picofile.com/file/8177716118/shoot.jpg

http://s4.picofile.com/file/8177716268/football_shoot.rar.html

توی رویداد step از ball:

if speed>0 speed-=1;
if 
speed<0 speed=0


--
رویداد های player:


رویداد create:

//script:sajjad3011 promakers.ir
globalvar harkat,x_clicked,y_clicked,shoot,jahat;


رویداد step:

if(harkat==true){
if 
speed>10 speed-=0.5;

if(
distance_to_point(x_clicked,y_clicked)<10
{
speed=0
harkat
=false;

}
else

speed+=0.5;
}

}


فشردن کلید R برای ری استارت room:


room_restart()


global left mouse:

x_clicked=mouse_x;
y_clicked=mouse_y;
jahat=point_direction(x,y,x_clicked,y_clicked)
direction=jahat
image_angle
=point_direction(x,y,ball.x,ball.y)-90;
harkat=true 


press_space:

if(distance_to_object(ball)<50 
{
with ball
{
speed=20;
}
ball.direction=player.direction;
}


با click به توپ نزدیک میشیم و با space شوت می کنیم.
direction جهت هست. و image_angle زاویه ی نمایش sprite هر ابجکت.

۰ نظر موافقین ۰ مخالفین ۰ ۲۷ اسفند ۹۳ ، ۰۱:۰۶
مدیرکل

gameover.blog.ir


#یونیتی 

آموزش بردار نرمال در یونیتی /کاربرد متد نرمالایز در یونیتی/کاربرد normalize/کاربرد تابع normalize در یونیتی/حرکت به سمت مقصد توسط بردار نرمال(بردار عمود بر هدف یا بردار حرکت مستقیم به سمت هدف


تابع Lerp از کلاس Vector3 :


در شکل به وضوح می بینید اگر ما فاصله تا هدف رو 5 قسمت کنیم تابع نرمال xyz ای میده که اگر جمع کنیم با پوز فعلی، یک واحد به سمت هدف حرکت انجام میشه.


🔶 #یونیتی


نکته: بی نرمالایز هم به سمت هدف حرکت انجام میشه ولی ابتدا سرعت زیاد و وقتی به هدف نزدیک میشیم،سرعت کمه،چون تفاضل فاصله ها کم شده در speed ضرب کنیم سرعت ثابت نیست،ولی با نرمال سرعت همیشه ثابت هست. لرزش هم داریم در انتها.




🔶🔶🔶نکته ی بعدی : متد لرپ یا تابع Lerp در حرکت نرم ،نسبت به روش normalize بهتر و جدیدتر هست. اما مقایسه ما از این جهت هست که قدرت تابع لرپ تکمیل تر از نرمالایز هست. یعنی لرپ امکانات بیشتری هم داره ولی اینکه بگیم nomalize منسوخ هست نه اینکار هم نمی کنیم. فعلا اون توی جایگاه خودش بمونه ولی فقط قصد ما اثبات قدرت لرپ بود. همین(بیسواد)


مثال ساده :


Public Transform target;

void Update(){

transform.position = Vector3.Lerp(transform.position, target.position, speed  * Time.deltaTime);

}




ادامه (کاربرد تابع Lerp)

حرکت به اندازه ای که تابه لرپ نسبت به ضریب 0.1f  از مبدا t1 به مقصد t2 محاسبه می کنه.
نمی تونیم بگیم 0.1f قدر. چون کار تابع لرپ اینه که اگه پارامتر سوم 1 باشه پوزیشن t2  و اگه 0 باشه پوزیشن t1 و اگه 0.5 باشه پوزیشن بین  t1 و t2 رو برگشت می ده.





using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NORMAL : MonoBehaviour {

    public Transform t1, t2;
    float speed = 0.01f;
    void Update()
    {
        if (Input.GetKeyUp(KeyCode.A))
        {

        t1.position = Vector3.Lerp(t1.position, t2.position, 0.1f);

        }

    }
}

در این مثال با فشردن کلید A ، جسم مبدا به سمت مقصد حرکت می کنه. 
هر بار  به اندازه ای که خود تابع لرپ نسبت به ضریب 0.1f محاسبه می کنه.(دقت کنید نگفتم به طول یک، چون طول یک رو تابع نرمالایز می داد و جلو تر روش پیاده سازی نرمالایز رو با لرپ می گم )

اسکریپت رو بندازید روی هر جسمی که دوست دارید .

سپس گیم ابجکت اول  و دوم رو به ترتیب درگ کنید روی متغیر t1 و t2.

اجرا بگیرید. جسم مقصد رو جابجا کنید تا جسم مبدا بیاد دنبالش.






پیاده سازی normalized با استفاده از lerp/پیاده سازی متد نرمالایز با استفاده از متد لرپ/ساخت normalized با استفاده از Lerp/شبیه سازی تابع/متد normalized با استفاده از متد/تابع Lerp


'تمام محاسبه و کد توسط گیم اور انجام شده و کپی از جایی نیست.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NORMAL : MonoBehaviour {

    public Vector3 t1, t2;
    float speed = 0.01f;
    void Start()
    {
        t1 = new Vector3(0, 0, 0);
        t2 = new Vector3(1, 2, 2);
    
    }
    void Update()
    {
        if (Input.GetKeyUp(KeyCode.A))
        {
            Debug.Log(Vector3.Lerp(t1, t2, 1.0f/Vector3.Distance(t1,t2)));
            Debug.Log((t2-t1).normalized);
        Debug.Log("Thank u bisavad ma behet eftekhar mikonim");
        }

    }
}

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



تابع لرپ/متد لرپ/تابع Lerp/متد Lerp  از کلاس Vector3

شکل کلی


public static Vector3 Lerp(Vector3 a, Vector3 b, float t);


خروجی:
اگر t=0 بردار a
اگر t=1 بردار b
اگر t=0.5  بردار بین a,b 

در غیر اینصورت برداری روی فاصله ی بین بردار a و b
بر گشت داده میشه.

اگه  بخوایم  تابع normalized رو با Lerp پیاده سازی کنیم باید عدد 1 رو تقسیم به فاصله ی بین دو بردار کنیم،چون یک قسمت از این فاصله رو باید بدیم تا بردار حرکت به ما تحویل داده بشه.

دوستان این نکات رو بنویسید توی دفترتون. چون هر جایی گفته نشده.



توضیحات اضافی

slerp هم مثل lerp هست. شما lerp رو درک کنید اونم یادمی گیرید.

یه اسکریپت cs با کد زیر ایجاد کنید :

//lerp.cs
using UnityEngine;
using System
public class LightLerp: MonoBehaviour
{
private Vector3 newPosition;
void Awake()
{
newPosition = transform.position;
}
void Update()
{
PositionChanging();
}

PositionChanging()
{
Vector3 positionA = new Vector3(-5,3,0);
Vector3 positionB = new Vector3(5,3,0);

if(Input.GetKeyDown(KeyCode.Q))
newPosition = positionA;

if(Input.GetKeyDown(KeyCode.E))
newPosition = positionB;

transform.posision=newPosision;
}
}

اگه کد اشتباه داشت برطرف کنید چون همشون رو از روی فیلم سایت اصلی یونیتی تایپ کردم.
یه نور نقطه ای بذارید روی صحنه(point light) . شدت نور رو کمی زیاد کنید(خصوصیت Identsity) تا روی plane به چشم بیاد. 
اسکریپت فوق رو بدید به نور(بکشید روش رها کنید).
اجرا کنید .
طبق اسکریپت اگه Q بزنیم نور به موقع positionA میره و اگه E بزنیم به نقطه ی positionB .
شما اینو اجرا کنید می تونید ببینید چی می گم.( نور جابجا میشه )

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

برای اینکه نور با یک سرعت تعریف شده از نقطه ی A به نقطه ی B بره از تابع Lerp استفاده می کنیم. 

مثال شکل کلی استفاده از Lerp :
transform.position = Vector3.Lerp(transform.position, newPosition, smooth * Time.deltaTime);

تابع Lerp سه تا پارامتر می گیره :

From : از 
To: به
t : من بهش می گم time و شما هم بگید time. 
(با این که t مخفف چی هست و چی نیست یا اصلا غلط هست یا درست هم کاری نداشته باشید بذارید ما درس خودمون رو بدیم و اگه زیبا نبود بیخیالش بشید. اینم بگم خودم مقالات سایت رفرنس و سایت های ایرانی و خارجی زیادی رو مطالعه می کنم ولی مهم نیست همون time اسم گذاری کنید.)

به جای t مقدار smooth * Time.deltaTime رو بدید و به جای From و To هم متغیری از نوع بردار سه بعدی (در درس ما A و B) رو بدید.

smooth هم در بخش public(بالای برنامه) تعریف می کنید از نوع float(اعشاری).

و بعد از نسنب دادن اسکریپت به نور نقطه ای، خصوصیت smooth رو با مقدار 1 عدد بدید(اگه بیشترش کنید روان بودن و سرعت حرکت بیشتر میشه. این smooth داره در Time.deltaTime ضرب میشه و طبیعی هست دیگه هرچی بیشتر باشه سرعت زمانی حرکت نور بالا میره)

وقتی پروژه رو اجرا کنید با فشردن کلید Q و E نور به آرومی بین نقاط سه بعدی A و B تغییر موقعیت میده.

تا شما یه چایی بخورید من یاد میدم که Lerp چه کاربردهای دیگه ای داره و کجاها میشه ازش استفاده کرد.

سه مثال کاربردی از روش استفاده از تابع Lerp :

معمولا گیم ابجکت های مختلفی هستند که از تابع Lerp استفاده می کنند.

سه حالت رو مثال می زنم:

حالت اول :
کد:

transform.position = Vector3.Lerp(transform.position, newPosition, smooth * Time.deltaTime);

کد بالا رو شرح دادم.پس بیخیالش.

حالت دوم :
کد:
light.intensity = Mathf.Lerp(light.intensity, newIntensity, smooth * Time.deltaTime);

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

حالت سوم :
کد:

light.color = Color.Lerp(light.color, newColour, smooth * Time.deltaTime);

این کد برای تغییر رنگ نور از رنگ فعلی به رنگ جدید که در متغیر newColour تعریف شده بکار می ره. تیو اسکریپت که در ادامه میارم یادتون میدم ببینید چقدر زیباست و یاد گرفتنش از روی راهنمایی من چه قدر خوبه.
-
این کلیپ بی کیفیت که من ساختم رو ببینید تا قدرت Lerp رو درک کنید :
http://s5.picofile.com/file/8153633500/clip_lerp_func_unity3d_sajjad3011.zip.html

-
حالا روش ساخت :

یه پروژه 3d ایجاد کنید با این اجزا : main Camera ، plane و Point Light

اسکریپت js زیر رو بدید به نور نقطه ای (point Light):

#pragma strict

public var smooth : float;

private var newPosition : Vector3;
private var newIntensity : float;
private var newColour : Color;


function Awake ()
{
    newPosition = transform.position;
    newIntensity = light.intensity;
    newColour = light.color;
}


function Update ()
{
    PositionChanging();
    IntensityChanging();
    ColourChanging();
}


function PositionChanging ()
{
    var positionA : Vector3 = new Vector3(-5, 3, 0);
    var positionB : Vector3 = new Vector3(5, 3, 0);
    
    if(Input.GetKeyDown(KeyCode.Q))
        newPosition = positionA;
    if(Input.GetKeyDown(KeyCode.E))
        newPosition = positionB;
    
    transform.position = Vector3.Lerp(transform.position, newPosition, smooth * Time.deltaTime);
}


function IntensityChanging ()
{
    var intensityA : float = 0.5f;
    var intensityB : float = 5f;
    
    if(Input.GetKeyDown(KeyCode.A))
        newIntensity = intensityA;
    if(Input.GetKeyDown(KeyCode.D))
        newIntensity = intensityB;
    
    light.intensity = Mathf.Lerp(light.intensity, newIntensity, smooth * Time.deltaTime);
}


function ColourChanging ()
{
    var colourA : Color = Color.red;
    var colourB : Color = Color.green;
    
    if(Input.GetKeyDown(KeyCode.Z))
        newColour = colourA;
    if(Input.GetKeyDown(KeyCode.C))
        newColour = colourB;
    
    light.color = Color.Lerp(light.color, newColour, smooth * Time.deltaTime);
}

بعد از افزودن اسکریپت فوق به نور نقطه ای، نور رو انتخاب کنید و در پنجره ی خصوصیات یا inspector پارامتر Smooth رو بدید 1 یا 2 (یه عدد غیر صفر معمولا از 1 به بالا بدید که قبلا توضیحش دادم)

اجرا کنید .
با کلید های زیر بازی کنید:
Q و E
A و D
Z و C
--
خروجی :
http://s5.picofile.com/file/8153635742/lerp_noor.jpg
می بینید چقدر زیباست ؟ دقیقا عین چشماتون happy
همین الان تست کنید و ببینید چه قدر قشنگه کار با یونیتی.
کاربرد این کد در هوش مصنوعی هم هست و دستوری به اسم (Quaternion.Slerp(From,To,Time داریم که برای درکش فقط کافیه همین Lerp ای که بالا توضیح دادم رو تست کنید و بعدش Slerp همون پارامترها رو می گیره که یه جایی به دردتون میخوره توضیحات من.
۳ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۳ ، ۰۴:۱۰
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۳ ، ۰۲:۵۲
مدیرکل

http://s5.picofile.com/file/8147420068/emtiaz_sajjad3011.jpg

این سورس واسه ثبت امتیاز هست ولی فقط ثبت می کنه و جواب برگشتی رو نمی تونیم بخونیم
همه چی واضحه(کسی که میخواد اجرا بگیره و سیستم های پیشرفته تری بسازه حتما باید php بلد باشه)

هم روی And Roidجواب میده هم ویندوز هم iphone OS و هم ... (از کجا معلوم : از اونجا معلوم که من می گم)


من اسم متغیر ها رو طوری گذاشتم که بهش می گم کد تمیز یا clean code .
clean code ، یعنی کدی که برنامه نویس یا اسکریپت نویس بسازه تا نه فقط خودش،بلکه همه به سادگی منظورشو درک کنند حتی پس از سالیان زیاد.happy
--
چیز خاصی نداره.
فقط باید اینو بدنید تابع http_post_string دو مقدار می گیره. یک url و یک string .
url آدرس get.php هست که آنلاین روی سایت هست و پارامترها رو میخوایم بهش ارسال کنیم.
ما به دو صورت می تونیم داده ها رو بفرستیم به get.php .
یکی روش get هست که انتخای url یک علامت سوال می ذاریم و بعدش اسم متغیرها رو با مقدار میاریم و با & از هم جدا می کنیم که من چون فقط v1 رو دارم از url با متد get می فرستم نیازی به & نبود.
روش دوم روش post هست که قوی تر هم هست و متغیرها رو میریزیم توی یه رشته مثل "v2=145&v3=45" .
(اگه می خواید روش ارسال get و post رو درک کنید باید ساخت فرم توی html رو sumbit اونو بلد باشید که اونو تو بخش html بپرسید )

اسم این متغیرها هم دلخواه بود که من v1 و v2 و v3 دادم.

فقط روی سایت و توی get.php باید یادمون باشه هرچیز رو اینجا با متد get ارسال کردیم با دستور $_GET می گیریم و چیزی که با متد post فرستادیم با دستور $_POST می گیریم مثال

کد:
$_POST["v2"]
یا
کد:
$_GET["v1"]


اون لینکی هم که داده واسه برنامه نویسی تحت شبکه از طریق سوکت ها هست و فعلا چون تهش مخاطلبی نداره بهتره روش کار نکنیم.
--
کار اصلی که باید انجام بدم اینه که قسمتی برای پرداخت درون برنامه ای و نمایش رتبه ی تمام افراد هست.
--
آره اون عکس و راهنمایی ای که گذاشتم رو خودم نوشتم و منمعمولا تا چیزی رو تست نکنم و جواب نگیرم نمی ذارم واسه بقیه.
-
ارسال داده ها رو من یاد دادم.
شما باید حالا روی الگوریتمی فکر کنید که مفهوم AJAX رو توی گیم میکر پیاده سازی کنه.(یعنی یک فایل php یا حالا xml یا هرچیز دیگه ای رو بتونید از سایتتون بخونید اونم به صورت توکار بدون اینکه گیم میکر هنگ کنه.)
اگه مفهوم آژاکس رو نمی دونید این آموزش من رو بخونید :
http://promakers.ir/showthread.php?tid=10063

نکته برای مبتدی ها :
قبل از درک این مفاهیم باید ساخت فرم و روش های sumit فرم های html با متدهای GET و POST رو بلد باشید.
شما تا php بلد نباشید خیلی از چیزایی که می گم رو درک نمی کنید.
ضمنا توی کد game maker که گفتم :
کد:
send_With_GET_method="v1=9";
send_With_POST_method="v2=4&v3=reza";

myURL="http://localhost/emtiaz/get.php?" + send_With_GET_method;
global.post[0] = http_post_string(myURL,send_With_POST_method ) ;
هیچکس نمیاد اسم های send_With_GET_method و send_With_POST_method رو انتخاب نمی کنه.
اکثر سایت های خارجی کد فوق رو ممکنه اینطوری بیارن که شما درک نکنید و بیشتر (بلانسبت) گیج بشید :
کد:
global.post[0] = http_post_string("http://localhost/emtiaz/get.php?v1=9","v2=4&v3=reza" ) ;
من اومدم کد رو طوری تمیز کردم که راحت بفهمید کدوم متغیرها با متد get میفرستیم و کدوما رو به متد post(با استفاده از روش صحیح اسم گذاری استاندارد متغیرها)
-
با تشکر از sajjad3011
کپی شده از پرومیکرز
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۳ ، ۰۲:۲۸
مدیرکل

یک پروژه new کنید.
یک room بسازید.
یک ابجکت بسازید به نام particle_smoke و یک نمونه از اون رو بذارید روی room.
کد اکشن زیر رو توی رویداد keyboard pressed space این کد رو بذارید :

size=3;
effect_create_below(ef_smoke,room_width/2room_height/2sizec_red); 

پروژه رو اجرا کنید و space بزنید....
دقیقا وسط room دود قرمز ایجاد میشه..... با اندازه ی 3 (فکر کنم 1 یعنی small و 2 یعنی medum و 3 یعنی big و تا یه اندازه ی خاصی میشه ایجاد کرد و سایز دود رو با ابر فعلا قاطی نکنید)
----------------------
اینم کل توابعی که باهاشون می تونید پارتیکل ایجاد کنید(سیستم ذرات مثل برف و بارون و غیره توی گیم میکر استادیو)
http://docs.yoyogames.com/source/dadiosp...index.html
----------------------
دقت کنید که تمام اینا رو توی موبایل اندروید و .... میشه بکار گرفت....
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ اسفند ۹۳ ، ۰۲:۱۹
مدیرکل
// Get the latest webcam shot from outside "Friday's" in Times Square
var url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
function Start () {
	 // Start a download of the given URL
	var www : WWW = new WWW (url);

// Wait for download to complete yield www;

// assign texture renderer.material.mainTexture = www.texture; }
۰ نظر موافقین ۰ مخالفین ۰ ۲۵ اسفند ۹۳ ، ۱۶:۰۵
مدیرکل

newObject.gameObject.addcompenet("scriptName")

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ اسفند ۹۳ ، ۱۵:۲۹
مدیرکل
gameover.blog.ir
using UnityEngine;
using System.Collections;

public class PlayerHealth : MonoBehaviour {
    public int maxHealth = 100;
    public int curHealth = 100;
    
    public float healthBarLength;


    void Start () {
    healthBarLength = Screen.width / 2;
    }
    

    void Update () {
    AddjustCurrentHealth(0);
        
    }
    
    
    void OnGUI(){
    GUI.Box(new Rect(10, 10, healthBarLength, 20), curHealth + "/" + maxHealth);    
    }
    
   
    public void AddjustCurrentHealth(int adj) {
      curHealth += adj;    
        
        if(curHealth < 0)
            curHealth = 0;
        
        if(curHealth > maxHealth)
            curHealth = maxHealth;
        
        if(maxHealth < 1)
            maxHealth = 1;
        
        healthBarLength = (Screen.width / 2) * (curHealth / (float)maxHealth);
    }
}

نکته:
در سیستم جدید مستقیم می تونید ui | text بذارید یا ui | image بذارید و دیگه نیاز به این نیست که مثلا بیاید از Rect و کد نویسی زیاد پیچیده استفاده کنید. برای یادگیری این موارد کتاب ui ترجمه sajjad3011 رو بخرید که در بالای وبلاگ معرفی شده.
http://gameover.blog.ir/1395/03/27/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%DB%8C%D9%88-%D8%A2%DB%8C-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C-5-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%D8%B4%D8%AF-%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-ui-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C
۰ نظر موافقین ۰ مخالفین ۰ ۲۵ اسفند ۹۳ ، ۰۶:۳۱
مدیرکل

زبان کد : سیشارپ

این کد برای بررسی فاصله ی دشمن تا player بکار می ره و سپس با تابع slerp حرکت آرام چرخش و رو کردن به سمت player و حرکت به سمتش:

(البته با تنظیم متغیرها می تونید انیمیشن دویدن رو توسط کامپوننت animator  اجرا کنید و بعد از رسیدن به هدفبه حالت idle سوئیچ کنید.)

using UnityEngine;
using System.Collections;

public class 
EnemyAI MonoBehaviour {
    public 
Transform target;
    public 
int moveSpeed;
    public 
int rotationSpeed;
    public 
int maxdistance;
    
    private 
Transform myTransform;
    
    
void Awake(){
        
myTransform transform;
    }


    
void Start () {
        
GameObject go GameObject.FindGameObjectWithTag("Player");
        
        
target go.transform;
    
        
maxdistance 2;
    }
    

    
void Update () {
        
Debug.DrawLine(target.positionmyTransform.positionColor.red); 
        

        
myTransform.Rotation Quaternion.Slerp(myTransform.RotationQuaternion.LookRotation(target.position myTransform.position), rotationSpeed Time.deltaTime);
        
        if(
Vector3.Distance(target.positionmyTransform.position) > maxdistance){
        
//Move towards target
        
myTransform.position += myTransform.forward moveSpeed Time.deltaTime;
    
        }
    }
        

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ اسفند ۹۳ ، ۰۶:۲۸
مدیرکل
private void notRenderer()
{
if(notMat)
{

Destroy(GetComponent<ParticleSystem>());
Material mat = (Material) FindObjectOfType(typeof(Material));

if (mat)
Debug.Log("Material object found: " + mat.name);
else
Debug.Log("No Material object could be found");

}


}
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ اسفند ۹۳ ، ۲۰:۲۴
مدیرکل

دوربین اصلی را انتخاب کنید.
مسیر assests->importt package->image Efect pro را طی کنید.
مسیر component->image effects->blur و زیر شاخه هایش ا امتحان کنید.
بازی رو اجرا کنید تا حالت بلور یا تار شدن دوربین را ببینید. تنظیمات دیگر را در inspector(کادر خصوصیات سمت راست) می تونید انجام بدید.

http://s4.picofile.com/file/8176846434/assset_imageEffectPro_package.jpg

اجرا :

http://s4.picofile.com/file/8176847676/blur_effect.jpg

البته برای کج و معوج کردن هم بکار میره که میتونید مسیر component->image effects->Displacement->Vortex یا ... رو به دوربین بدید:

http://s6.picofile.com/file/8176857800/diplacement_vortex.jpg

-

با تشکر از سجاد

۱ نظر موافقین ۰ مخالفین ۰ ۲۳ اسفند ۹۳ ، ۰۹:۲۳
مدیرکل

خوب تصمیم گرفتم مقدماتی رو یاد بدم واسه اینکه گم نشن مبتدی ها:
ساده ترین محیط کد زنی borland turbo c هست. TC.EXE .
واسه windows 7 هم ورژن مربوط رو اگه مورد داشتید بگید من راهنمایی کنم واس دانلود.
با VS و DEVCPP و Eclips و ... هم میشه کد زد ولی من TC کار می کردم.
---
خوب توی TC ساختار اینطوری هست:

کد:
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
void main()
{
//my codes
getch();
}
کد بالا چیز خاصی نداره.
تابع اولی که اجرا میشه main هست.
بالاشم فایل های header(سر فایل یا فایل های سرایند پسوند h) رو ضمیمه کردیم با دستور include که توی PHP با include( هست و توی جاوا و VB.net با import هست و توی csharp با using هست و و و .... winking
--
معمولا ابتدا نوع تابع میاد بعدش نام تابع(int main یا void main یا float main و ...)
چون تابع اصلی ما main نمی خواد چیزی رو به دستوری برگشت(return) بده واسه همین نوعش رو void یا غیر بازگشتی دادم.
getch هم get می کنه یک character رو بدون نمایش(echo)(اگه میخواستیم نماش بده getche رو میذاشتیم به جاش)
http://s5.picofile.com/file/8118656018/tc_win7.jpg
http://s5.picofile.com/file/8118656350/tc2_win7.jpg

کل مطلب رو Rar کردیم(بعد از Extract با مروگر fireFox فایل html رو باز کنید):
http://s4.picofile.com/file/8176849500/c_tut_gameover.rar.html


۰ نظر موافقین ۰ مخالفین ۰ ۲۲ اسفند ۹۳ ، ۰۹:۰۳
مدیرکل

enum یعنی داده های شمارشی.... مثلا یک متغیر می گیری می دی یک بعدش هر اسمی بعدش میدی مقدارش یکی اضاف میشه.
مثلا ali=1 و اگه بدی reza مقدار reza خودکار میشه 2 و الی آخر... هر چی شروع بدی بعدی ها یکی یکی زیاد میشه و اگه مثلا وسط کار یکی اضافه کنی با مقدار دلخواه و بعدی رو بی مقدار بدی یکی بعد اون مقداری که همونجا تعیین کردی اضاف می کنه و الی آخر

از این نوع داده برای تعریف متغیرها با مقادیری تعریف شده توسط خودمان استفاده می کنیم.
مثال :
زبان js

کد:
#pragma strict

enum Direction{North, East, South, West};
function Start ()
{
    var myDirection : Direction;
    
    myDirection = Direction.North;
}

function ReverseDirection (dir : Direction) : Direction
{
    if(dir == Direction.North)
        dir = Direction.South;
    else if(dir == Direction.South)
        dir = Direction.North;
    else if(dir == Direction.East)
        dir = Direction.West;
    else if(dir == Direction.West)
        dir = Direction.East;
    
    return dir;    
}
مثال :

کد:
num DoorStates {open,closed};
var doorState :DoorStates;

function Awake()
{
doorState =DoorStates.closed;
}




function OnTriggerEnter (triger : Collider)
{
    
    if ((triger.gameObject.tag == "Player_A")&&(doorState==DoorStates.closed))
    
        {
            doorState=DoorStates.open;
            GameObject.FindWithTag("Door_L").animation.Play("Door_Anim_A_Left_Open");    
            GameObject.FindWithTag("Door_R").animation.Play("Door_Anim_A_Right_Open");
        }
    


}

function OnTriggerExit (triger : Collider)

{
    
    if ((triger.gameObject.tag == "Player_A")&&(doorState==DoorStates.open))
    
        {
            doorState=DoorStates.closed;
            GameObject.FindWithTag("Door_L").animation.Play("Door_Anim_A_Left_Close");    
            GameObject.FindWithTag("Door_R").animation.Play("Door_Anim_A_Right_Close");
        }
    
}
منبع:
http://unity3d.com/learn/tutorials/modules/beginner/scripting/enumerations

۰ نظر موافقین ۰ مخالفین ۰ ۲۱ اسفند ۹۳ ، ۱۵:۵۶
مدیرکل

برای تغییر سلاح یا تعویض اسلحه یا قطعات یا بدنه ی ماشین یا سوئیچ یا تغییر لباس یا فعال و غیرفعال کردن آبجکت های دلخواه در صحنه چه کنیم؟

برای اینکار از تابع setActive استفاده می کنیم. مثلا اسکریپت زیر رو ببینید. با فشردن کلید 1 و 2و3 روی numpad و یا 1و2و3 زیر کلید های تابعی(fuctional keys) بین قطعات تنظیم شده در پارامترهای ghete1 و ghete2 و ghete3 سوئیچ می کنیم و در هر لحظه یک آیتم را فعال خواهیم کرد.

کد csharp:
//setActive.Cs
using UnityEngine;
using System.Collections;
public class setActive : MonoBehaviour {
    public GameObject ghete1;
    public GameObject ghete2;
    public GameObject ghete3;
    // Use this for initialization
    //edit:Sajjad3011
    void Start () {
        ghete1.gameObject.SetActive(true);
        ghete2.gameObject.SetActive(false);
        ghete3.gameObject.SetActive(false);
    }
    // Update is called once per frame
    void Update(){
        if(Input.GetKeyDown("1") || Input.GetKey (KeyCode.Keypad1)){
            //switch part1
            killAll();
            ghete1.gameObject.SetActive(true);
        }
        if(Input.GetKeyDown("2") || Input.GetKey (KeyCode.Keypad2)){
            //switch part2
            killAll();
            ghete2.gameObject.SetActive(true);
        }
        if(Input.GetKeyDown("3") || Input.GetKey (KeyCode.Keypad3)){
            //switch part3
            killAll();
            ghete3.gameObject.SetActive(true);
        }
    }
    void killAll(){
        ghete1.gameObject.SetActive(false);
        ghete2.gameObject.SetActive(false);
        ghete3.gameObject.SetActive(false);
    }
} 
به اسکریپت دقت کنید.زبان آن سیشارپ بوده و با اندکی تغییر می توانید آن را به js تغییر دهید. تابع killAll رو هر بار صدا می زنیم تا تمام آیتم ها رو غیر فعال کنیم و سپس یکی از قطعات رو با نوشتن اسمش و سپس تابع setActive از کلاس gameObject فعال می کنیم.
دقت کنید که سه تا گیم آبجکت به عنوان قطعه ی 1 و 2 و 3 باید توی صحنه بذارید و همچنین یک گیم آبجکت تهی(empty game object) ایجاد کنید و اسکریپت رو بندازید روش. سپس قطعات رو بندازید روی پارامترهاش توی inspector تا توی آرایه تنظیم بشه.winking
نکته ی مهم : دقت کنید که موقعت(position) و زاویه ی چرخش(rotation) و مقیاس(scale) تمام قطعات یکی باشه تا بتونید به راحتی قطعات ماشین رو تنظیم کنید و بزرگ بودن یا قطعات خودرو تو هم نرن. برای تغییر سلاح یا تغییر اسلحه اینکار مهم نیستhappy

منبع مطالعه شده : http://answers.unity3d.com/questions/606...cript.html

با تشکر از سجاد از پرومیکرز

۲ نظر موافقین ۰ مخالفین ۰ ۲۱ اسفند ۹۳ ، ۱۵:۴۳
مدیرکل
۲ نظر موافقین ۰ مخالفین ۰ ۲۱ اسفند ۹۳ ، ۱۵:۴۰
مدیرکل

سعی کنید از طبیعت الهام بگیرید و روش های جدید رو بیاموزید.
مثال : به این تصویر shading بر حسب تکنیک های فیزیک در یونیتی 5 نگاهی بیندازید :

http://s5.picofile.com/file/8153024750/shot1.jpg

http://s5.picofile.com/file/8153023692/shot2.jpg


در یونیتی 5 می تونید با ادغام PBS و Enlighten GI نورهای خود را در تمام صحنه به سرعت ایجاد کنید.

البته من خودم هنوز از یونیتی 4.5 استفاده می کنم چون ورژن 5 هنوز در حال آزمایش خطایابی beta هست.

به تحته ها نگاه کنید. برچستگی ها رو می بینید؟ چیز خاصی نیستن. با نرمال مپ و کمی zbrush ترکیب شدن. نرمال مپ هم چیزی نیست و اموزش هاش توی انجمن هست.

۰ نظر موافقین ۰ مخالفین ۰ ۲۱ اسفند ۹۳ ، ۱۵:۳۷
مدیرکل

http://s5.picofile.com/file/8152660100/mech_walk.jpg

لینک شیلتر نیست اگه بود بگید آپ کنم یه جا دیگه. مرغ رو دانلود کنید(توی قسمت قبل لینک دانلود مدل انیمیت شده مرغ در بلندر رو گذاشتم) و طبق اموزش جلو برید و مشکلات رو پ.خ کنید سادست.

با استفاده از همین ایده می تونید اولین بازی سه بعدی خودتون رو برای عظیمت از game maker به unity بسازید.
اسکریپت js برای دکمه ی x و z و چرخش 20 درجه منفی و مثبت به چپ و راست حول محور UP(همون محور Y) بسازید و این کد رو بریزید توش و بدید به مدل مرغ که گفتم دانلود کنید :

کد PHP:
//char controller simple.js
function Update () {

  if (
Input.GetKey (KeyCode.Z)) {

    
transform.RotateAround (Vector3.zeroVector3.up20 Time.deltaTime);

  } else if (
Input.GetKey (KeyCode.X)) {

    
transform.RotateAround (Vector3.zeroVector3.up, -20 Time.deltaTime)

  }


کد بالا هیچی نداره .
تابع RotateAround سه پارامتر می گیره و الگوش اینه:
کد PHP:
RotateAround(pointVector3axisVector3anglefloat): void
point : نقطه ی چرخش که اگه Vector3.zero باشه به معنی نقطه ی مرکزی صفر ( دقیقا وسط ابجکت) حساب می شه.
دومین پارامتر axis یا بردار یا محور چرخش مدل هست که محور y هست و با دستور Vector3.up تنظیمش کردیم.
سومی هم زاویه چرخش هست.

(KeyCode.Z) فشردن کلید Z رو بررسی می کنه و (KeyCode.X) فشردن کلید X رو . اگه روی صفحه کلید نگاه کنید می بینید Z سمت چپ X هست .پس X باید باعث چرخش به راست و Z باعث چرخش به چپ بشه(یعنی حول محور Y) که توی کد فوق باید به وضوح ببینید.
البته در کد فوق احتمالا با کلید Z مرغ به راست می چرخه و با X به چپ که خودتون می تونید توی اسکریپت -20 رو با +20 در قسمت دلخواه تغییر بدید.

اگه یه نفر هم موفق بشه و نمونه کارشو بعد از این اموزش ها بذاره من ایده های دیگه و راهکارهای دیگه و ترفندهای زیادی یاتون میدم که مطمئن باشید با استفاده از همین چیزا می تونید بازی های خوبی بسازید که در حین گرافیک کم ایده های جالبی میشه ساخت.
۰ نظر موافقین ۰ مخالفین ۰ ۲۱ اسفند ۹۳ ، ۱۵:۳۳
مدیرکل

http://s5.picofile.com/file/8152662668/Rigify11.png

http://s5.picofile.com/file/8152665376/b...g.zip.html

سپس مدل ریگ شده ی حاوی انیمیشن راه رفتن رو  می برید و با ماوس می اندازید توی پروژه در یونیتی و بعدش توی صحنه یا hierarchy.

البته کامپوننت انیماتور (animator component)در یونیتی رو باید بلد باشید.

۰ نظر موافقین ۰ مخالفین ۰ ۲۱ اسفند ۹۳ ، ۱۵:۲۹
مدیرکل


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

گیم میکر اگه event داره یونیتی هم داره.

اگه توی گیم میکر رویداد کلیک داریم توی یونیتی می گیم رویداد های onMouseDown و غیره داریم:

رویداد های ماوس + تکستچر گذاری gui

کد PHP:
var normalTex Texture2D;

    var 
hoverTex Texture2D;
     
    function 
OnMouseEnter () {
     
guiTexture.texture hoverTex;
    }
     
    function 
OnMouseExit(){
     
guiTexture.texture normalTex;
    }
     
    function 
OnMouseDown(){
     
Debug.Log("clicked");
    } 
منبع :
http://www.unity3dstudent.com/2010/10/be...se-events/

مثال2 :
بار گذاری یک مرحله توسط رویداد onMouseDown :
کد PHP:
    // Loads the level named "SomeLevel" as a response
    // to the user clicking on the object

function OnMouseDown () { Application.LoadLevel ("SomeLevel"); } 
منبع :
http://docs.unity3d.com/ScriptReference/...eDown.html
کدهای بالا به زبون js بود.

۰ نظر موافقین ۰ مخالفین ۰ ۲۱ اسفند ۹۳ ، ۱۵:۱۳
مدیرکل

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

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

بعضی از این پارامتر های اصلی در کامپوننت wheel collider قرار داره که به تک تک چرخ ها نسبت میدیم:

http://s5.picofile.com/file/8151252792/wheel_collider.jpg


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

radius: بهش عدد بدید و در صحنه نگاه کنید تا دقیقا دایره ای هم اندازه با لاستیک ایجاد بشه.(البته با scale خود گیم ابجکت های empty ای که واسه تکتک چرخ ها ساختید هم می تونید بازی کنید. rotation هم واسه تنظیم زاویه دقیقا هم زاویه با لاستیک به منظور فرمون دادن درست لاستیک ها و نداشتن حالت غیر عادی)

از جمله پارامترهای دیگه ای که می تونید به ماشین نسبت بدید دو یا چد لامپ هست که می تونید با اسکریپ اونها رو کنترل کنید و همینطور دود و غیره که البته من دود برای هر چهار چرخ رو توصیه نمی کنم چون particle محاسبات زیادی می بره و cpu میخوره و optimize(بهینه) نیست.

http://s5.picofile.com/file/8151253534/car_207.jpg

۰ نظر موافقین ۰ مخالفین ۰ ۲۱ اسفند ۹۳ ، ۱۵:۱۱
مدیرکل

http://s5.picofile.com/file/8151249350/divar.jpg

دانلود آموزش:حجم:200 کیلوبایت PDF

http://s5.picofile.com/file/8151245626/divar.pdf.html

۰ نظر موافقین ۰ مخالفین ۰ ۲۱ اسفند ۹۳ ، ۱۵:۰۹
مدیرکل

http://s5.picofile.com/file/8117682642/rain.jpg



Unity.Pro.v4.3.4f1 رو باز کنید و یک پروزه new کنید و یک planeبندازید و دوربین رو در مکان دلخواه بذارید.

پکیج بارون رو از اینجا دانلود کنید :
حجمش 800 کیلوبایته :
http://s5.picofile.com/file/8117681700/rainpackage_259.zip.html
سپس بکشید با ماوس و بندازید توی پروژه در بخش assets رها کنید.
سپس بکشید با ماوس و بندازید توی پروژه در بخش assets رها کنید.

سپس در زیر شاخه ی Fire->Rain باورن یا rain رو در کادر assets انتخاب کنید و با ماوس بگیرید بکشید توی hierarchy روی Plane یا یکی از game Object های دلخواه رها کنید تا اعمال بشه.

بارون ساخته شد. فقط می مونه صدا.
یک فایل صوتی صدای بارش باران رو دانلود کنید و ببرید توی پروژه درگ(drag) کنید(با ماس بگیرید و بکشید توی پروژه رها کنید تا اضافه بشه به بخش assets)
یک آبجکت تهی از طریق gameObject->Create Empty ایجاد کنید.(می تونید از ابجکت های دیگه هم استفاه کنید ولی لازم نیست)
سپس اونو انتخاب کنید و منوی component->audio->Audio Source رو بزنید تا یک منبع صوتی بهش اضاف بشه.
سپس فایل صوتی رو از توی پروژه بگیرید و روی AudioClip در inspector رها کنید.
http://s5.picofile.com/file/8117681576/audio_source_add.jpg
پروژه رو اجرا کنید و لذت ببرید.تشکر هم بی زحمت بزنید .
۴ نظر موافقین ۰ مخالفین ۰ ۲۱ اسفند ۹۳ ، ۱۴:۰۳
مدیرکل


Unity.Pro.v4.3.4f1
شاید دلتون بخواد در حین اجرا با فشردن یک کلید تکستچر عوض بشه یا متریال .


ابتدا دو متریال ایجاد کنید به نام های mat1 و mat2 و تکستچر های دلخواه یا رنگ دلخواه رو بهش نسبت بدید.

نکته: برای ایجاد متریال در قسمت project راست کلیک کنید و Create Material رو بزنید.
(اگه تکستچر می خواد بذارید باید تکستچر رو بکشید با ماوس توی assets در بخش project به پروژه اضافه کنید و بعدش متریال رو انتخاب کرده و سپس تکستچر رو بکشید روی texture توی inspector از متریال انتخاب شده و رها کنید یا اونجا از کادر باز شده تکستچر رو براش set کنید که من فرض می کنم اینو بلدین اگه سوال داشتید بپرسید ازم)

سپس یک Plane ایجاد کنید.

سپس یک اسکریپت java بسازید و اسمشو بذارید: chColor.js و اونو بکشید روی Plane در hierarchy و کدهای زیر رو بریزید توش:


Material mat1,mat2;

void
Update () 
{
if (
Input.GetKeyUp (KeyCode.R)) renderer.material mat1;
if (
Input.GetKeyUp (KeyCode.G)) renderer.material mat2;


سکریپت رو با ctrl+S ذخیره یا Save کنید.

(نکته : بعضی اوقات یونیتی قاطی می کنه و مجبورید اسکریپت رو ببندید و دوباره باز کنید تا کد ها درست کپی بشن)
بعد از ذخیره ی اسکریپت به محیط پروژه برگردید و Plane رو انتخاب کنید .
توی inspector(پنجره ی خصوصیات)، در زیر شاخه ی همین اسکریپتی که اضاف کردید به Plane،باید دو تا گزینه Mat1 و Mat2 اومده باشه که جلوی هر کدوم یه کادر هست.از توی اون کادر متریال 1 و 2 رو به هر کدوم نسبت بدید(mat1 و mat2)

شکل پروژه باید شبیه این باشه:
http://s5.picofile.com/file/8117468600/change_material_using_js_unity_sajjad3011.jpg

http://s5.picofile.com/file/8117468600/c...ad3011.jpg

پروژه رو Play کنید
اگه R بزنید باید رنگ plane قرمز بشه و اگه G بزنید باید رنگش سبز بشه.
شما می تونید تکستچر دلخواه رو بدید ولی من تکستچر ندادم فقط رنگ قرمز و سبز رو به ترتیب به متریال mat1 و متریال mat2 نسبت دادم.
امیداورم لذت برده باشید.
نکته:
(فقط روی دکمه ی play بزنید تا Run بشه و دوباره برای خروج روی Play بزنید . دقت کنید روی دکمه های دیگه مثل pause و اینا نزنید کمی قاطی می کنه و undo میشه و اگه مبتدی هستید شما رو گیج می کنه و مجبورید دوباره تنظیمات اسکریپت ها رو بنویسید و اعمال کنید)
۰ نظر موافقین ۰ مخالفین ۰ ۲۰ اسفند ۹۳ ، ۱۷:۴۳
مدیرکل

ابتدا تکسچر آسمون رو به صورت دوار یا گرد پیدا کنید:
http://www.tutorialsforblender3d.com/Tex...ome_1.html
بعد از دانلود ببرید توی blender یا max یا maya یا ...
سپس یک نیمکره بسازید.
بعدش unwrap کنید و تکستچر رو بندازید دقیق روش بعدش obj file و uv map texture رو اکسپورت کنید ببرید توی یونیتی یا ... استفاده کنید.

http://s6.picofile.com/file/8176323934/sky_asemoon_blender_unity.jpg

۰ نظر موافقین ۰ مخالفین ۰ ۲۰ اسفند ۹۳ ، ۱۷:۳۷
مدیرکل


IK چیست ؟
IK inverse kinematic = سینماتیک بلعکس می باشد.
وقتی ما در بلندر یا مکس یا نرم افزارهای دیگه استخوان بندی رو آغاز می کنیم،استخوان ها رو از گره ی نوک (غیر ریشه)، امتداد می دیم.
بعضی اوقتا نیاز داریم استخوانی رو از جای دیگه extrude کنیم و سپس با حرکت اون استخوان ، کنترل بهتری روی استخوان دیگه داشته باشیم. به این استخوان می گیم IK .

برای اینکار کافیه استخوان رو در object mode انتخاب کنیم و سپس به pose mode رفته و ابتدا استخون اول و سپس دومی رو انتخاب(با shift و راست کلیک) کنیم و بعدش space می زنیم تا کادر فرمان باز بشه. کلمه ی ik رو تایپ می کنیم.گزینه ی add ik to bone رو می زنیم(کلید میانبر shift+i هست) و سپس To Active Bone رو انتخاب می کنیم.استخون دوم اگه تحت تاثیر قرار بگیره باید به رنگ زرد شفاف در بیاد

حالا می تونیم با استفاده از استخونسیسنماتیک عکس یا ik ، استخون دیگه رو بهتر کنترل کنیم.

نکته: برای اینکه استخوان ها در pose mode همراه با مدل نمایان بشه کافیه در کادر سمت راست از قسمت armature(آیکن استخوان انسان بعد از آیکن زنجیر ،نزدیک آیکن فیزیک و تکستچر و ...)و از شاخه ی display و octahed گزینه ی x-Ray رو فعال کنیم.

http://s4.picofile.com/file/8175679184/ik1.jpg

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ اسفند ۹۳ ، ۲۰:۴۴
مدیرکل

http://s6.picofile.com/file/8174732376/tank.jpghttp://s4.picofile.com/file/8174732334/_Refraction_improved2.jpg

http://s4.picofile.com/file/8174732350/chev.jpg


۰ نظر موافقین ۰ مخالفین ۰ ۱۳ اسفند ۹۳ ، ۰۷:۱۲
مدیرکل


لینک آپارات:

لینک دانلود فیلم آموزش به صورت فشرده و بدون تغییر کیفیت.
حجم : 2 مگا بایت
بعد از extract فیلم میشه 20 مگ کیفیتش هم عالی هست.

http://s6.picofile.com/file/8174730326/uvMapBestTut_sajjad3011.rar.html
=

۰ نظر موافقین ۰ مخالفین ۰ ۱۳ اسفند ۹۳ ، ۰۵:۴۲
مدیرکل
لطفا نظرتون رو بگید.اگه حمایت کنید یک اپلیکیشن بهتر رو در نسخه بعدی تقدیم می کنیم.
این اپلیکیشن شماره های ضروری ایرانسل و همراه اول رو در خودش داره
رمز بازی های سگا رو در خودش داره
رمز های بازی GTA رو در خودش داره
به معرفی ابزار هک و تقلب بازی های اندرویدی می پردازه
شماره هازی ضروری مثل اورژانس،آتش نسانی، مخابرات و ... رو در خودش داره. به شما یاد میده با ایرانسل رایگان چت کنید
و :
SBgameHacker 3.1 ابزار هک و تقلب در بازی های اندروید
حرکات در مورتال کمبات ۱
حرکات در مورتال کمبات ۲
تمامی رمز های مورتال کمبت 3
ترفندهای اندروید قسمت اول
تمام کدهای ایرانسل
تمام کدهای همراه اول
لیست شماره تلفنهای ضروری
علاءالدین
Alien 3
Art of Fighting
Cannon Fodder
Cliffhanger
Comix Zone
Contra: Hard Corps
Cutthroat Island
Demolition Man
Desert Strike – Return To The Gulf
Dragon: The Bruce Lee Story
Earthworm Jim
Earthworm Jim 2
ESWAT Cyber Police
فیفا FIFA Soccer 96
عصر حجر/Flintstones
Golden Axe تبر طلایی
تبر طلایی 2
تبر طلایی 3
کدهای بازی “فوتبال فانتزی” سگا
Gunstar Heroes
کد تقلب بازی “هوک” سگا
تقلب بازی “ هالک شگفت انگیز” سگا
تقلب بازی” فوتبال گزارشی ” سگا
کد های تقلب بازی ” جیمز باند” سگا
تقلب بازی “پارک ژوراسیک” سگا
کد های تقلب بازی ” شیر شاه” سگا
تقلب بازی ” رنجر” سگا
کد ضد ضربه شدن بازی مایکل جکسون سگا
کد های تقلب بازی ” مورتال کمبات 5″ سگا
تقلب بازی ” پیتفال” سگا
کد های تقلب بازی “دانلد داک” سگا (ورژن W)
کدهای بازی “رمبو 3″ سگا
کد های تقلب بازی ” ریستار” سگا
تقلب بازی “پلیس آهنی” سگا
تقلب بازی ” پلیس آهنی در برابر نابودگر” سگا
کد های تقلب بازی ” تندر 3″ سگا
کد تقلب بازی “سامورایی” سگا
کدهای بازی “نینجا و سگ” سگا
کد ضد ضربه شدن بازی شینوبی 3 سگا
کدهای بازی “سونیک 1″ سگا
کد های تقلب بازی “سونیک 2″ سگا
کد های تقلب بازی “سونیک 3″ سگا
تقلب بازی “ خانه ی شیطانی 3” سگا
کد تقلب بازی” استارگیت” سگا
شورش در خیابان 1 سگا
کد ضد ضربه برای بازی شورش در خیابان 2 سگا
کد های جالب و بدرد بخور برای بازی شورش در خیابان 3 سگا
کدهای بازی “سواران غروب” سگا
کد تقلب بازی “تازمانیا” سگا
کد تقلب بازی “فوتبالیستها”ی سگا
تقلب بازی “نینجاهای لاکپشتی” سگا
کد های تقلب بازی “تینی تون” سگا
تقلب بازی “داستان اسباب بازی” سگا
کد های تقلب بازی “مورتال کمبات 3 آلتیمیت” سگا
کد های تقلب بازی “وکتور من” سگا
کد های تقلب بازی “وکتور من 2 ” سگا
کد تقلب بازی “یوگی خرسه” سگا
آموزش تکنیک های pes2012
آموزش قسمت اول بازی PES 2013
ترفندهای دیگری در PES 2011
روشهای گل زنی خفن در PES 2011
کپی صورت بازیکن ها PES 2011
پاس کاری صحیح در PES 2011
پنالتی زدن و ضربه آزاد در PES 2012
گل ضربه آزاد از فاصله ی خیلی نزدیک در PES 2012
دفاع در PES 2012
ترفند های pes2012
تکنیک عالی شدن بازی در PES 2012
تکنیک های ساده در PES 2012
دریبل درPES 2012
حرکات فردی در PES 2012
چند ترفند جالب در PES 2010 :
زیباترین تکنیک بازی PES 2011 :
تنظیم تکنیک ها بر روی دکمه در PES 2011
رمز های مورتال کمبت 9 یا 2011 برای XBOX
رمز بازیه need for speed -underground
رمز بازی امپراطوری های جنگ سگاempire total war
GTA:San Andreas
رمز و کد تقلب های بازی call of duty 4: Modern Warfare
رمز بازیه زیبای mostwanted
ترفند های sims3
رمزبازی gta4-ps2
مکس پین -رمز بازی Max Payne 2
رمز بازیps2-vice city stories: gta
رمز بازیstronghold
GTA5 _PS2رمز های بازی
رمز gta4
کد تقلب-رمزهای بازی رم توتال وار rome: total war
برداشت محصول: (یا مزرعه دار)
رمز بازی Hitman 2: Silent Assassin:
رمزبازیTotal Overdose
هک بازی Clash of clans برای اندروید
رمز تقلب بازی جنگ خان ها
کدهای تست سخت افزاری (وای فای، بلوتوث، جی پی اس)
کدهای مخفی برای تست های مختلف کارخانه ای
کدهای مخفی برای دستیابی به اطلاعات فریم ور (میان افزار)
روش سوئیچ کردن بین اپلیکیشن های باز روی اندروید
بستن برنامه های در حال اجرا در اندروید
تنظیم برنامه پیشفرض برای باز کردن فایل ها در اندروید
نصب برنامه بر روی گوشی اندروید از منابع خارجی
حذف کردن کامل برنامه ها – Uninstall کردن برنامه اندروید
معرفی
نرم افزار جامع کدهای تقلب بازی ها
معرفی نرم افزاری برای کد تقلب 1000بازی مختلف

http://iranapps.ir/app/gameover.daftarche_ramz


۰ نظر موافقین ۰ مخالفین ۰ ۱۰ اسفند ۹۳ ، ۱۳:۵۸
مدیرکل

کلید ctrl+shift+F

۰ نظر موافقین ۰ مخالفین ۰ ۰۹ اسفند ۹۳ ، ۰۱:۱۹
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۰۹ اسفند ۹۳ ، ۰۱:۰۹
مدیرکل

how to disable kaspersky addons for firefox

-

به مسیر زیر برید و گزینه automatically activate plugins رو غیرفعال کنید.

-

Try settings > protection > web anti virus > advanced settings and uncheck automatically activate plugins.

۰ نظر موافقین ۰ مخالفین ۰ ۰۸ اسفند ۹۳ ، ۰۳:۵۶
مدیرکل
چرخش یک ابجکت وقتی ماوس روی آن قرار می گیرد:
public float rotationSpeed = 50f;
public GameObject target;
private bool rotate = false;

void OnMouseDown() {
    rotate = !rotate; //this line toggles the bool "rotate" every time the object is clicked
}

void Update() {
    if(rotate) {
        target.transform.Rotate (new Vector3(0, Time.deltaTime, 0) * rotationSpeed );
    }
}

۰ نظر موافقین ۰ مخالفین ۰ ۰۶ اسفند ۹۳ ، ۰۵:۱۶
مدیرکل

http://www.blendswap.com/files/images/2014/02/image72512/medium_49d6c4ecba2e058509617f98486a265e.jpg


اینجا می تونید مدل های رایگان و اپن سورس زیادی رو دانلود کنید:
http://www.blendswap.com/blends/
--
البته اولش باید عضو بشید.
ضمنا یه تعداد که دانلود می کنید می گه حجم اکانت شما برای این چند ساعت تموم شده باید چند ساعت دیگه وارد بشید.

البته میشه از مدلهاش ایده گرفت.

۰ نظر موافقین ۱ مخالفین ۰ ۰۳ اسفند ۹۳ ، ۰۶:۵۹
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۰۳ اسفند ۹۳ ، ۰۶:۲۷
مدیرکل

http://docs.autodesk.com/3DSMAX/16/ENU/3ds-Max-Tutorials/images/GUID-A2AA380A-8AD7-490E-BDDC-134DDDA5901F-low.png

۰ نظر موافقین ۰ مخالفین ۰ ۰۳ اسفند ۹۳ ، ۰۶:۲۳
مدیرکل

Skinning a Character
منبع : http://docs.autodesk.com/3DSMAX/16/ENU/3...=d30e17453

-----

برگرفته از پرومیکرز
این قسمت : skin اولیه

1. 3dsmax را reset کنید.

2.در Quick Access toolbar روی [تصویر: GUID-CAC2BD26-2E16-474D-974F-F6F51EF99E3F-low.png] یا (Open File) کلیک و از مسیر \character_animation\skinning\ فایل applying_skin.max رو باز کنید.(نکته:اگه پیام تنظیمات گاما یا scene Gamma settings اومد تایید کنید)
کاراکتر ما در مرکز صحنه یعنی (0, 0, 0) قرار می گیره.
[تصویر: GUID-27E0C70F-94C0-40E2-9B71-B1E24833C950-low.png]

میت اما (Meet Emma) کاراکتری با حدود 7,500 پولیگان هست.در حقیقت قراره انیمیشن rig رو روی اون تست کنیم.

= بارگذاری ریگ کاراکتر "اِما" Load the Emma rig

1.در پنل Create روی Helper([تصویر: GUID-26B4569E-97F7-401F-B7FF-1EEB5C7DA0E8-low.png]) کلیک کنید و از لیست مربوط CAT Objects رو انتخاب کنید.
در اینجا باید با character studio (در بخش انیمیشن دارم آموزشش رو ترجمه می کنم:sajjad3011) آشنا باشید;CAT یک سیستم انییشن مجزای جدیدتر است البته قابلیت هایی دارد که با هم تداخل دارند.این آموزش به جای وقت گذاشتن زیاد روی Skin modifier ، حداقل با خصوصیات CAT سر و کار دارد.(نکته: برای اطلاعات جزئی تر به the CAT (Character Animation Toolkit) section مراجعه کنید.

2.در Object Type روی CATParent کلیک کنید.
CATRig Load Save rollout یک لیست از ریگ شخصیت های از پیش تعیین شده را فراهم می کند.
به هر حال می توانید با استفاده از یک rig اختصاصی تیجاد شده خودتان در این آموزش استفاده کنید.
آسونترین راه برای اینکار ،بارگذاری اون روی یک CATParent موجود هست.

3.روی CATRig Load Save rollout مطمئن بشید (None) هایلایت(انتخاب) شده(شاید منظورش اینه که هیچ چیز انتخاب نشه) و سپس Perspective viewport .
سپس برای emma یک CATParent objec رو به بیرون drag کنید.

http://docs.autodesk.com/3DSMAX/16/ENU/3ds-Max-Tutorials/images/GUID-2C925C6F-1802-46A5-AB51-DCBB00F612E8-low.png

(CATParentدر سمت راست شکل دیده میشه)


4.به پنل Modify([تصویر: GUID-8F70211D-F4D3-482E-96D1-889B2FE01D6F-low.png]) برید و در CATRig Load Save rollout روی (Open Preset Rig) ([تصویر: GUID-91F2BDC5-0D7D-494A-A8BD-DCFCB6CC2615-low.png]) کلیک کنید.
به مسیر \sceneassets\animations\ برید و emmarig.rg3 رو باز کنید.
ریگ در موقعیت CATParent ظاهر میشه.
(نکته :این ریگ به طور ویژه modify یا "pose" میشه تا شکل Emma رو پر کنه.معموالا شما اینکار رو باید قبلا از skinning مدل ،خودتون انجام بدید.اگرچه اپلیکیشن اولیه Skin modifier به تنظیم بیش از حد نیاز ندارد اما خارج از حوزه ی این آموزش است big grin)
در هر حال روند کار نسبتا ساده است مخصوصا زمانیکه استخوان ها بر طبق هندسه ی استاندارد پولیگان ها داخل ریگ های CAT هستند.آنها با تمام ابزار مدل سازی در 3ds مکس سازگار هستند و حتی می توانند با اشیای دیگر جایگزین گردند.)
وقتی در حال اسکین(skin) یک کاراکتر هستیم مطلوب است که ریگ را داخل آن مخفی کنیم. اما بعضی وقتا که نیاز به دیدن استخوان دارید بهتر است روی rig اسم گذاری کنید تا به راحتی بتوانید قسمت دلخواه را انتخاب(select) کنید.

5.صحنه را بچرخانید به طوری که مش کاراکتر و ریگ همپوشانی نداشته باشند.سپس با آیکن(Select Object)[تصویر: GUID-16CB758B-14A8-4113-AB39-B4E3B9DAF30B-low.png] در ناحیه ای اطراف rig کلیک کنید تا همه ی استخوان(bone) های آن انتخاب شوند.
در فیلد Named Selection Sets در نوار ابزار اصلی (اخیرا “Create Selection Set” نامیده شده) اسم EmmaRig را تایپ و سچس Enter کنید تا اسم ثبت شود.این اسم همانند اسم CATParent است،اما به عنوان یک مجموعه انتخاب، نه یک جسم، هیچ تضاد یا conflict ای وجود ندارد.

در حالت ایده آل موقع skin یک کاراکتر، rig باید در وسط skin mesh باشد زیرا Emma باید در مرکز world(جهان) باشد.این کار آسان است.

6.مطمئن شوید CATParent (با نام EmmaRig) انتخاب و سپس (Select And Move) ([تصویر: GUID-7364965C-3A1C-4902-9322-401B110A87A5-low.png]) در main toolbar فعال شده باشد.

7. روی اسپینر(spinner) های X و Y در status bar راست کلیک کرده و آن ها را 0(صفر) کنید.(نکته: اسپینر همون فیلدهای متنی هستن که فلش های بالاپایین روی هم دارن که وقتی ماوس رو می بریم روشون Drag می کنیم مقدار داخل کادر متنی ها زیاد و کم میشه big grin ) .
پارامتر Z باید روی 0 تنظیم شده باشد.

اسکلت به مرکز جهان پرش می کند و کاملا با مش کاراکتر Emma تنظیم است.
[تصویر: GUID-4334D15F-2F95-4484-9E5A-F69F1628D72C-low.png]
Emma and rig, both at world center

سپس با استفاده از Skin modifier، استخوان ها(Bones) را به مش(mesh یا همون مدل) apply می کنیم.

Set up for skinning (مراحل تنظیم اسکین) :

1.با استفاده از (Select Object)([تصویر: GUID-16CB758B-14A8-4113-AB39-B4E3B9DAF30B-low.png]) ابجکت Emma و سپس از شاخه ی Modify panel Modifier List Object-Space Modifiers گزینه ی Skin را انتخاب کنید.این باعث میشود Skin modifier به مش apply شود.در مرحله ی بعدی باید به Skin modifier بگوییم که استخوان ها باید روی شکل mesh تاثیر بگذارند.در این حالت همه کار انجام میگیرد.

2.در قسمت Parameters rollout روی دکمه ی Add برای افزودن Bone ها کلیک کنید.پنجره ی انتخاب استخوان ها/ Select Bones باز میشود.این پنجره شبیه پنجره Select From Scene است.

3.forbiddenهای Display را فقط روی Display Geometry (نمایش هندسه) تنظیم و همه ی موجودیت های لیست به جز 4 تای اول را انتخاب کنید.یک راه آسان برای اینکار این است که در کادر جستجو حرف e را تایپ کنیم ، چرا که شروع تمام استخوان های مورد نظر با “Emma,” نامگذاری شده اند.در پایان روی Select کلیک کنید.
[تصویر: GUID-86E9CF4D-1BE3-4B6A-A30C-3B9373B2CD48-low.png]
استخوان ها در لیست Parameters rollout ظاهر و skinning (پوسته گذاری) اولیه انجام میشود.
شما می توانید برای نمایش اینکار،پلتفرم پا را حرکت دهید.

4. EmmaRigLPlatform را انتخاب کنید، (مستطیل سیمی زیر پای چپ) و سپس آن را حرکت دهید.
[تصویر: GUID-231FC39A-9ECD-4581-8922-A4E01F96DD6D-low.png]

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

5.قبل از ادامه،پروژه را با نام MyEmma1.max ذخیره کنید.

Animate the rig(پویا نمایی ریگ):

قبل از skinnging یک کاراکتر برای ایجاد یک کار موثر بهتر است ابتدا یک انیمیشن شامل pose های مختلف کاراکتر که دوست دارید ایجاد کنید.این کار باعث میشود تا ناهنجاری ها(آنومالی ها) ی skinning در موقعیت های مختلف را بدون مصرف زمان اضافی و تنظیم دستی کاراکتر،برطرف کنیم.

با استفاده خصوصیت rig می توانیم فایل انیمیشن خود را روی خصوصیت CAT’s Clip Manager بار(load)کنیم.این کار را با مراحل زیر دنبال کنید.زیاد طول نمی کشد و آموزنده است.اما اگر ترجیح میدهید skinning را انجام دهید به بخش بعد بروید.

1.فایل ذخیره شده قبل را برای ادامه بار کنید.

2.[تصویر: GUID-16CB758B-14A8-4113-AB39-B4E3B9DAF30B-low.png] CATParent را انتخاب کنید.(شی سه گوشه در زیر rig)

3.به Motion panel([تصویر: GUID-A0678F81-5075-4623-9328-B4A1CED35803-low.png]) رفته و نوار اسکرول را به Clip Manager rollout ببرید. مطمئن شوید دکمه Clip فعال باشد.اینجا مکانی است که انیمیشن را برای CAT rigs لود و save می کنیم.

4.در قسمت پایینی rollout روی آیکن (Browse)([تصویر: GUID-27186105-DCA4-4440-A4E7-6A825A4E5D73-low.png]) کلیک کرده و سپس از پنجره ی open فایل \sceneassets\animations\emma_stretching.clp را باز کنید. وقتی پنجره ی تنظیات کلیپ Clip Options باز شد روی Load بزنید تا تنظیمات پیشفرض را قبول کنید.
CAT دو مد دارد: Setup برای مدیفای(اصلاح کردن) Rig ; و Animation برای پویانمایی آن. مد پیشفرض Setup است . برای play انیمیشن لازم است به مد Animation سوئیچ کنید.

5.در بالای Layer Manager rollout می توانید دکمه ی [تصویر: GUID-680E7D6D-573C-4A41-82C9-2674AD53B9C3-low.png](Setup/Animation Mode Toggle ) را برای تعیین Rig ای که اکنون در Setup mode است ببینید.روی این دکمه کلیک کنید.عکس دکمه به آیکن سبز ([تصویر: GUID-6AC581B9-3F7D-409C-B5F1-203ABAE3DC87-low.png]) تغییر می کند و بر فعال شدن Animation mode دلالت دارد.

6.همچنین در بخش کنترال های انیمیشین از پنجره ی 3dsmax کلیک کنید تا پنجره ی Time Configuration باز شود. Length (طول) را روی 500 تنظیم و سپس روی OK کلیک کنید تا پنجره ی تنظیمات بسته شود.

7.مجموعه انتخاب EmmaRig را فعال کنید، در viewport (نمای کاری) راست کلیک و Hide Selection را انتخاب کنید.

8.نوار زمان یا [تصویر: GUID-17EB6861-E98C-49E7-9122-7608B66CE470-low.png] را اجرا کنید تا انیمیشن play شود.تام آن بخش های "exercises" ای از بدنه که به احتمال زیاد به تنظیمات skinning نیاز دارند از پاها آغاز شده و به انگشتان ختم می شوند.
به هر حال cap(سر)،hair(مو) و eyeballs(چشم ها) یا “accessories,” با بقیه مش حرکت نمی کنند.

9. به فریم صفر(0) روی نوارابزار اصلی برگردید.(Select And Link)([تصویر: GUID-DE77D22D-2453-48D9-9BF9-16D40CCAA896-low.png]) را فعال کنید.سپس از هر دسترسی(accessory) که میخواهید به ابجکت EmmaRigHead درگ کنید تا آنها به عنوان children (فرزندان) لینک شوند.(چهار drag برای همه)[تصویر: GUID-17EB6861-E98C-49E7-9122-7608B66CE470-low.png]انیمیشن را دوباره play کنید تا مطمئن شوید همه چیز با هم حرکت می کنند.
(روش دیگر این است که 4 اکسسوری را ابتدا انتخاب و سپس Select And Link را فعال کنید و از هر اکسسوری انتخاب شده ، به ابجکت EmmaRigHead درگ کنید.این کار باعث لینک همه ی آنها به یکباره می شود)

10. با کلید روی (Select Object) [تصویر: GUID-16CB758B-14A8-4113-AB39-B4E3B9DAF30B-low.png] از Select And Link خارج شوید و سپس در viewport راست کلیک کرده و Unhide All (غیرمخفی کردن همه) را انتخاب کنید.

11.پروژه را با نام MyEmma2.max ذخیره کنید.

در درس بعدی Weighting the Character's Lower Half رو ترجمه خواهم کرد انشاءا... .
۰ نظر موافقین ۰ مخالفین ۰ ۰۲ اسفند ۹۳ ، ۰۶:۵۴
مدیرکل