|
|
#6 (permalink) | |||||||||||||
|
MaxScripte Giriş
Max´ ı kullanırken menülerden tıkladığınız herşey aslında maxscripte dayanır. Siz bir tuşa bastığınızda yada bir değeri değiştirdiğinizde yaptığınız işlemi yerine getiren bir iç komutu devreye sokarsınız.Bu bölümde devam edeceğimiz maxscript dersleri ile yaptığımız işlemlerin görmediğimiz yüzünü öğreneceğiz. MaxScript Nasıl Açılır? Maxscripte işlem yapabilmeye erişmek için iki seçeneğiniz var Bunlardan birincisi; ![]() Help menusunun hemen yanında bulunan Max script menusune basmak.Yada menulerde modifier IK gibi menulerin yanında bulunan iconuna basarak en aşşağıdan Maxscript menusunu seçmek Burda seçeneklerimiz şu şekilde ; 1. Open Listener 2.Newscript 3.OpenScript 4.Run Script Birinci menu Listener dediğimiz yazdığımız maxscriptleri daha iyi bir şekilde izlemek yada menulere basarken aslında hangi komutların gönderildiğini görmek için kullanacağımız menudur. NewScript: Boş halde maxscript editörünü açar.Böylece yeni bir maxscript oluşturmaya başlayabiliriz OpenScript: Daha önceden oluşturduğunuz bir maxscripti düzenleme yada test etme amacı ile açmaya yarar RunScript: Daha önceden yazdığınız maxscripti çağırır ve çalıştırır.Direk kaynak kodun sonucunu görürsünüz. Maxscript Listener ![]() ![]() Yazdığınız maxscripti izlemek için kullanılır.Scripti çalıştırdığınızda bir hata ile karşılaşırsanız hatanın nerde olduğunu ne olduğunu direk buradan öğrenebilirsiniz.MacroRecorder menüsünden Enable yi aktif ederseniz hemen koyu renkli olan sekmede max menulerinden işlem yaparken aslında görmediğiniz içten gönderilen komutları görebilirsiniz |
|||||||||||||
|
|
|
|
#7 (permalink) | |||||||||||
|
New Script yada Open script dediğinizde önünüze aynı editör açılacaktır. Bu editör sayesinde scriptleri yazabilir.düzenleyebilir direk burdan çalıştırabilirsinizFile Menusunde New: Yeni bir proje açar.Open ile daha önceki çalışmalarınızı açabilirsiniz.Close ile açık projenizi kapatabilirsiniz. Save projenizdeki değişiklikleri kaydetmeye yarar. Save as ise çalışmanızı farklı kaydetmeye yarar Bunlar her programda olan menuler )Bunlar içerisinde File menusunde farklı olan Evalute All var kısa yolu ile Ctrl+E tuşu Bunun ile yazdığınız max scriptin sonucunu görebilirsiniz ![]() ![]() Undo (Geri Alma) Cut (Kesme) Copy (Kopyalama) Paste (Yapıştırma) Delete (Silme) Select All (Tümünü Seçme) Bu menulere de herhangi bir programdan aşina olmuşsunuzdur zaten. Bu iki menu ileriye yani maxscript olayını ileri düzey öğrendiğimizde gerekli olacak menuler Menuler genel itibari ile maxta kullandığınız menuler formlar gibi objeleri oluşturmaya yarıyor. Eger yeni bir görünüm oluşturuyorsak bunu New Rollout menusunden yapıyoruz.Ama daha önceden yaptığımız bir menu varsa bunu Edit Rollout menusunden yapıyoruz Rollout menusu başlı başına bir konu.Bir visual basic yada bir Delphi gibi visual tabanlı uygulamaları oluşturmada yarıyor yalnız bu programlardan farkı oluşturduğumuz uygulamalar sadece maxta çalışması.Herhangi bir maxscript uygulaması oluşturduğumuzu düşünürsek ilk önce simgesine oradan Maxscript sekmesine basıp oradanda New Script dedikten sonra kodlarımızı yazıp Edit menusunden Evulate All diyerek çalıştırabiliriz.Yada save menusunden u çalışmamızı kaydederek yine MaxScript menusunden Run Script diyerek kaydettiğimiz dosyayı seçebiliriz...MaxScript Box Objesi´nin Genel Özellikleri Normalde menulerle yapabileceğiniz herşeyi ve daha fazlasını maxscriptle yapabilirsiniz. ![]() Box nesnesini eklemek için menulere girdiğinizde box un özelliklerini Görürsünüz Bunlar şöyle; Lenght Box nesnenizin uzunluğunu temsil eder.Max scriptte kullanım için erişmeki istediğinizde .length şeklinde erişebilirsiniz. Bir box oluşturduğunuzda eğer herhangi bir değer vermezseniz ilk değeri otomatik olarak 25.0 olarak atanacaktır. Width Box Nesnenizin genişliğini temsim eder.Bir Box nesnesinin genişliğini değiştirmek istediğinizde .width şeklinde erişirsiniz. Uzunlukta olduğu gibi herhangi bir değer verilmezse ilk degeri 25.0 olarak atanacaktır Height .height Şeklinde uzunluğuna erişebilirsiniz bunun da ilk değeri 25.0 dır. Lengthsegs Bir box nesnesini uzunluğunu oluşturan tel çizgilerin sayısıdır.Kullanımı; .lengthsegs Herhangi bir değer verilmezse 1 olarak otomatik atanır. Widthsegs Bir box nesnesini genişliğini oluşturan tel çizgilerin sayısıdır.Kullanımı; .widthsegs Herhangi bir değer verilmezse 1 olarak otomatik atanır. Heightsegs Bir box nesnesini yüksekliğini oluşturan tel çizgilerin sayısıdır.Kullanımı; .heightsegs Herhangi bir değer verilmezse 1 olarak otomatik atanır. Generate Mapping Coords Sadece doğru yada yanlış değerlerini alır.Zaten menulerdede dikkat etmişseniz ya seçilidir yada seçili değildir,Kullanımı .mapcoords .Herhangi bir değer verilmediğinde ilk değeri yanlış yani seçili değildir. WireColor Box nesnemizin rengine erişmek için kullanılır. .wireColor İlk değer olarak her zaman farklı renklerde oluşacaktır. Pos Box nesnemizin o anki konumunu değiştirmek için uygulanır. .pos Örnek Uygulamalar Bir max script açarak aşşağıdaki uygulamaları denerseniz sanirim daha açıklayıcı olacaktır.Kalın olarak belirtilen değerleri olduğundan farklı girerek değişimleri daha rahat gözlemleyebilirsiniz; kutum=box() --sahnede bir kutu oluşturur kutum.name="Deneme Kutusu" kutum.wirecolor = (color 255 0 255) kutum.length=50 kutum.width=50 kutum.height=50 kutum.pos=[20,-75,50] kutum.lengthsegs=3 kutum.widthsegs=3 kutum.heightsegs=3 Kutu oluşturmayı öğrendiğimize göre kod yazmanın avantajını kullanarak sahnemize birbirinden 70 birim uzakta 100 tane kutu çizelim. aşağıdaki kodu olduğu gibi max scripte kaydedip Run ile çalıştırabilirsiniz. kutum=#() --dizi tanımlama for y = 1 to 100 do -- ( kutum[y]=box() kutum[y].length=50 kutum[y].width=50 kutum[y].height=50 kutum[y].pos=[0 , y*70 , 0] )
__________________ |
|||||||||||
|
|
|
|
#8 (permalink) | |||||||||||
|
Shaq-hair ile saç yapımı
![]() Dikkat Bu plugin max içinde orjinal olarak bulunmaz, sonradan yüklemeniz gerekir. Öncelikle sahnemize bir küre çizerek saç pluginini bunun üzerinde öğrenelim.Bir küre çizdikten sonra bir de line(çizgi) yapıyoruz. Bu çizgi saç sisteminin temelini oluşturacak. Modifier menüsünden "Model Hair" seçeneğini seçiyoruz veçizgi kullanıma hazır hale geliyor. Yine modifier penceresinin alt kısmından Hair to Hair Coordsys seçeneğiile diğer saçların buna uyumlu haraket etmesi gerektiğini belirtiyoruz. Daha sonra Environment penceresini açarak listeden ShaqHair ekliyoruz. Ayrıca Render sırasında görünmesini sağlamak için birdeShaq Render ekliyoruz. Pencereyi yukarı doğru çekerek Emitter kısmından Pick diyerek küreyiseçiyoruz. Alt kısımdan Model Hairs olarak Hazırlamış olduğumuz çizgiyiseçiyoruz. Max pencerelerinde saç görünmeye başladı. Render ettiğinizde aşağıdakigibi bir görüntü alacaksınız. Saçın bazı bölümlerini kesmek isterseniz Environment penceresinde Shaqhair seçili iken alt kısımdan modeling Cutters seçeneğini kullanabilirsiniz.Aşağıdaki örnekte saçı kesmek için bir Box kullandım. Select ile kutuyuseçip daha sonra Cut düğmesine basınca saçın o kısmı kesilecektir.![]() Böylece biraz yolunmuş bir saç elde ettik. Tabii bu istediğimiz birsonuç değil. Bunu modellerimizde kullanamayız. Fakat buraya kadar shaqhair kullanımı hakkında bilgi sahibi olmuşsunuzdur. Gelelim modelimizin kafasına saç ekmeye. Bunun için önce kel bir model bulmalısınız. Bu kel modele iki yöntemle saç ekebilirsiniz. Birincisi kafasının üst kısmının bir kopyasını yapıp bunu da birkaç parçaya bölerek her parçaya farklı bir saç tipi atayabilirsiniz. Aşağıdaki örnekte uyguladım, bunun küreye saç eklemekten hiçbir farkı yok sadece alt soldaki gibi kafanın benzeri olan bir kopya yapıp bunu parçalar ayırıyorsunuz. Daha sonra bu parçaları hide diyerek gizleseniz bile saç ortada kalacaktır.![]() ikinci yöntem ise daha uygun bir tercih olacaktır. Bu seçenekte modelin kafasında kaplama ID numarası farklı bir yüzey oluşturup Id numarası kullanarak saç ekliyoruz.Öncelikle Sub-Object Face iken kafada istediğimiz yüzeyleri seçip Alt taraftan Id numarası olarak modelin başka biyerinde olmayan bir Id numarası veriyoruz . burdaki örnekte kafada küçük bir yüzey seçip ID=5 yaptım. Multi-Sub object kaplama kullanarak seçili yüzeyi görebiliriz. Environment penceresinde ise önce modeli seçiyoruz daha sonra sağ tarafındanFace Level seçeneği ile kaplama ID numarasını belirtiyoruz. ![]() Saçın kalınlığını ve yoğunluğunu ayarlamak isterseniz pencerenin alt kısmındaki seçenekleri kullanabilirsiniz. Density Yoğunluk): Per area değeri normalde 0,2 bunu yükseltirseniz saç sıklaşacaktır.Thickness (kıl kalınlığı): Bu değeri 0,1 yaparsanız daha ince kıl yapısı oluşur ve bu durumda sıklığını arttırmanız gerekebilir. Curliness: (Kıvırcık): Kıvırcık saçlılardan hoşlanıyorsanızbu seçeneği aktif yapın. ![]() Environment penceresinin alt tarafından saç rengini değiştirebilirsiniz. Eğer uç kısımdaki saçların yukardaki gibi dağınık olmasını istemiyorsanız.En başta hazırladığımız line ı seçerek modifier menüsünden alt taraftaki Attraction seçeneğini kullanabilirsiniz. Bu seçenekle gelen pencerede gösterdiğm noktayı yukarı çekerseniz saçlarıbirbirine doğru yaklaştıracaktır. Bu noktayı aşağı çekarseniz saç uçlarıdağılacaktır. Tabii bu nokta saçın en ucunu temsile ediyor. istersenizsaç ortasında da yaklaşma sağlayabilirsiniz. Son noktanın yukarı çekilmiş hali aşağıdadır. Dilerseniz Environment penceresinde shaq hairin özelliklerinden Dinamics seçeneklerini kullanarak Yerçekimi(Gravity) Rüzgar(Wind) ve Çarpışma(Collision) olaylarını eleyerek hızlıca animasyon verebilir ve Calculate seçeneği ile hesaplama sonuçlarını görebilirsiniz. ![]()
__________________ |
|||||||||||
|
|
|
|
#9 (permalink) | |||||||||||
|
Fırtına Animasyonu Yapımı
Önce öğrenilmesi gerekenler: Temel tanecik bilgisi ve Particle Flow sistemi giriş konusu. Öncelikle amaçlarımızı belirleyelim: 1. taneciklerin dairesel yükseldiği bir yol(Path) olacak 2.Bu dairesel yol sağa sola hareket ettiği gibi çeşitli eğimler alacak. 3.Yerde Rastladığı cisimleri havaya kaldıracak. Sahnemize girdap olacak şekli hazırlamakla başlıyoruz. Resimde gördüğünüz gibi uzun bir helix ve bunun tam ortasından geçen bir Line çiziyoruz. Düz çizgi 5-6 noktadan oluşsun. en ortaya da bir Dummy koyun. bunların ne işe yarayacağını anlatacağım. Resimdeki gibi bir düzenek ile Helix´e istediğimiz hareketleri yaptırabiliriz. Buradaki Dummy kontrol nesnesi olacak. yani gerekli hesapları yaptıktan sonra sadece Dummy yi oynatmamız yeterli olacak. ![]() Y ukardaki sonucu elde etmek için sadece ortadaki çizgiyi düşünerek şu ayaları yapın. Line seçili iken modifier kısmından Vertex moduna geçip , Soft Selection işaretli iken ortadaki iki noktayı hareket ettirin. Diğer noktaların da buna bağlı olarak hareket ettiğini göreceksiniz. hareket eden noktanın komşuları da aynı hareketi daha az miktarda yapar. Alt kısımdaki FallOff değeri komşu noktaların hareket oranını belirler. ![]() Soft Selection ile çizgiye yumuşak hareketler verebiliriz. şimdi tek yapmamız gereken bu iki noktaya animasyon vermek. ben bu işlem için otomatik yöntem kullanacağım. dilerseniz aşağıdaki TrackView işlemleri yerine çizgiye basit Autokey animasyonu verebilirsiniz. tabii o durumda sonradan değişiklik yapmak çok zor olacaktır. benim yapacağım yöntemde ise tek bir sayını değiştirdiğimde çizginin hareketi tümden değişecektir. Şimdi Helix´i seçerek çizgi ile ilişkilendireceğiz. Helix´i seçin ve Skin modifierini uygulayın . Alt kısımdan Add düğmesine basarak. ortadaki çizgiyi seçin. Skin modifieri sayesinde girdap cisminin tüm hareketlerini ortadaki çizgi ile kontrol edeceğiz. çizgi hareket edince girdap da benzer şekilde hareket eder. Skin modifieri daha çok insan ve hayvan animasyonlarında kullanılmaktadır. Eğer autokey ile animasyon vermeyi düşünüyorsanız buradan diğer çizgiye kadar atlayın. Çizgiye otomatik animasyon vermek için Dummy cismini Linked Xform ile çizginin ortadaki iki noktasına bağlıyoruz. böylece Dummy hareket edince ortadaki iki nokta da hareket edecektir. Önce çizgiyi seçin ve alt obje moduna geçip ortadaki iki noktayı seçin. iki nokta seçili iken modifier listesinden LinkedXForm modifierini işaretleyin. böylece linkedXform modifieri kaynak oalrak ortadaki iki noktayı alacaktır. şimdi Linked Xformun özelliklerindne alt kısımdaki Pick Control Object düğmesine basarak Dummy yi seçin. Bu işlemden sonra çizgiye hiç dokunmanıza gerek yok. artık tek yapmanız gereken Dummy yi hareket ettirmek. ![]() Ben işi biraz daha ileri götürereek otomatiğe bağlamak istiyorum. böylece Dummy ye de hiç elimi sürmeden gerekli animasyonu elde edeceğim. Dumy´ye sağ tıklayıp Curve Editor penceresini açın. Yapacağımız işlem sırası şöyle: X-Position ve Y-Position için Flot List ve Noise özelliği ekleyeceğiz.Noise cismin rasgele hareket etmeisin sağlayacak. Float list ise aynı anda hem rasgele hareketi hemde dışarıdna uygulanan herhangi bir hareketi kabul etmesini sağlar. Bu işlemlerin aynısını Y için de yapacağız: X-Position´a sağ tıklayıp Assign Controller diyerek Listeden Float list seçin. ![]() Listede şu anda Bezier Float(normal hareket için) ve Available(herhangi bir hareket atamak için , buraya noise atacağız) görünüyor olmalı. Available yazısına sağ tıklayıp Assign Controller diyin ve Listeden Noise seçin. şu halde sahnedeki animasyonu izlerseniz Dummy cisminin sıtmaya yakalanmış gibi titrediğini görürsünüz. sebebi çok küçük noise değeridir. ![]() Noise Float Yazısına Sağ tıklayıp Properties seçeneği ile rasgele salınım değerini büyütelim. bu ayarlardan: Frequency: hareketin hızı Strength: hareketin miktarı Seed: Noise verilen iki özelliğin aynı salınımı yapmasını engellemek içni farklı seed değeri verilmelidir. herhangi bir sayı yazabilirsiniz. X için başka Y için başka olsun. Fractal Noise: daha keskin geçişli salınım, iptal ederseniz yumuşak geçişli hareket oluşur. ![]() Yukarı reismdeki sağ bölümdekine benzer bir eğri elde ettiyseniz animasyon tamamdır. X Position ´u ele alırsak bu eğrideki üst kısımlar X ekseninde sağa doğru 0-10 arası değerlerdir. eğrinin alt kısmında kalan alanlar ise sola doğru harekettir. Aynı işlemi Y Position için tekrarlayın. Şimdi yapacağımız işlemde ayrıntı anlatmıyorum. kısaca geçeceğim: 1.Blizzard Particle ekleyin 2.Girdap cisminin tam altına taşıyın 3.Helpers menüsünden sahneye Path Follow ekleyin 4.Bind to Spacewarps düğmesi ile blizzard ve Path Follow´u ilişkilendirin. Anlamadıysanız sitedeki diğer tanecik derslerini inceleyin. ![]() Şimdi sıra geldi Hortumun içine giren nesneleri havaya uçurma kısmına, bu kısım için farklı bir hareket tanımlayacağız çünkü hortuma giren cisimler yukarıdaki hazırladığımız tanecikler kadar hızlı hareket etmez. Yapacağımız işlemler: 1. Sahneye Particle Flow ve plane ekleyin. zemin ve zemindeki kutular için. 2 . Vortex ve SDeflector ekleyin. kutuları havaya savurmak ve ilk tespit için. 3. Yerçekimi ekleyin. havaya savrulan kutular düşsün diye. 4 .Plane ile aynı boyda deflector ekleyin. havada savrulup düşen kutuları tutmak için. öncelikle zemin ve Pflow ekleyip zemindeki kutuları oluşturacağız. ![]() Nasıl yapıldığını açıklamak için aşağıdaki Pflow grafiğine bakacağız (Durun hemen kaçmayın) yüzeye kutuları yaymak için 2 ile gösterdiğim kısmı ayarlamanız yeterli. Position Object ekleyerek Plane´yi seçin, Kutu şekli için Shape olarak Box seçin. Şimdi yukarıda hazırladığımız hortum ile Sdeflector ve Vortex ´i aynı noktaya getirin. ve bunların hepsini grup yapın. (veya hepsini deflector´e bağlayın) böylece hortumla birlikte deflector ve Vortex hareket edecektir. bundan sonraki tüm işlemleri Pflow düzenleme Penceresinde yapacağız. ![]() Event 2. numaralı olaydaki Send out: bu komut tanecikleri bir sonraki olaya aktarmakta kullanılır. başka hiçbir özelliği yok. sonradan geri dönüş yapacağımız için. bu tip bir komuta ihtiyacımız var. Event 3. Küre Deflectore çarpan kutular bir sonraki olaya gidiyor. (Tanecik yerine kutu diyorum çünkü burada uğraştığımız sadece Pflow tanecikleri) Event 4. Bu kısma gelebilen kutular Speed2(Along Icon Arrow) yönünde hareket eder. yani havaya doğru gider. Force(vortex) etkisi ile dönerek gider. Age test(30) havada 30 kare kalan tanecikler diğer olaya gider. (30 zaman biriminde bir miktar yükselmiş olurlar) Event5. Force02(Gravity) etkisine kapılan tanecikler düşmeye başlar. Aşağı hareket. Düşerken Collision02(Deflector)´e çarpan tanecikler sonraki olaya gider. Event6. Buradaki hızı sıfır yaptım. böylece yere çarpmış olan kutular sabit kalıyor. ve bu noktadan sonra tekrar hortuma kapılabilir bunu sağlamak için Collision ekleyerek SDeflector´ü buraya da ekliyoruz. ve bunun çıkışını yukarı bağlıyoruz. böylece hortum tekrar gelip yere düşmüş olan kutuya çarparsa havaya kaldırabilir. Bundan sonra tek yapmanız gereken hortum grubuna animasyon vererek kutuların üzerindne geçirmek. ![]()
__________________ |
|||||||||||
|
|
|
|
#10 (permalink) | |||||||||||
|
Hemen mevzuya dalıyoruz. İlk önce top görüş penceresine geçip aşağıda görülen ölçülerde bir plane oluşturuyoruz.
Daha sonra BEND modifieri uyguluyoruz. Left görüş penceresinde aşağıdaki gibi görünmesine ve modifierin yönüne dikkat edin. Plane in üzerinde ters tıklayıp Convert to Editable Poly diyoruz. Şimdi TOP görüş penceresine geçelim. Alt+W tuş kombinasyonuyla pencereyi tam ekran olarak ayarlayabilirsiniz. Bu daha rahat çalışmanızı sağlar.EDGE moduna geçip aşağıda görülen , cismin sağ tarafındaki edge leri seçip SHIFT tuşuna basılı tutarak hafifçe sağa doğru sürükleyin. Aynı işlemi soldaki edgeler içinde uygulayın. Şimdi sırasıyla .Edgeler sağ ve sola SHIFT tuşuyla kopyalanmış(Soldaki resim).Vertex moduna geçip üst kesit olarak kabaca düzenlenmiş(Ortadaki resim). Vertex
__________________ |
|||||||||||
|
|
| Konu Araçları | |
| Mod Seç | |
|
|
|
||||
| Konu | Konuyu Başlatan | Forum | Yanıt | Son Mesaj |
| SON 10 YILDA ÖSS'DE SORULMUŞ ANLATIM BOZUKLUĞU SORULARI ve CEVAPLARI | meteor34 | Açık Öğretim Fakültesi | 1 | 19-10-2009 07:50 PM |
| Anlatım Bozuklukları | İsyan Ateşi | Öss, Kpss, Dgs, Oks | 0 | 09-04-2008 08:31 PM |
| Anlatım Bozuklukları | SeReN | Türkçe, Edebiyat | 1 | 30-11-2007 02:39 PM |
| Anlatım bozukluğu testleri | MÊVAN | Türkçe, Edebiyat | 0 | 18-11-2007 07:09 PM |
Bir Forum sitesi
olduğumuzdan, kullanıcılar önceden onay almadan her türlü görüşlerini yazabilmektedir.
Yazılanlardan dolayı oluşabilecek her türlü yasal sorumluluk, yazan kullanıcılara
aittir.
Yinede sitemizde yasalara aykırı herhangi bir durum
görürseniz; Lütfen,
bydigi@gmail.com'a yada
İletişim'e bildiriniz.
Mesajınız incelenip, kısa bir süre içerisinde gereken müdahale yapılacaktır.