View Categories

MaxScript

9 dakika okuma

Bu sayfa, MaxScript’in Chaos Phoenix ile nasıl kullanılabileceğine dair bilgiler sunmaktadır.

Genel Bakış #


Simülasyon işlemi sırasında, Phoenix’in MaxScript fonksiyonlarını kullanarak Simülatörün içeriğine doğrudan erişebilirsiniz.

Bu fonksiyonları, gelişmiş simülasyon kuralları yazmak veya örneğin yalnızca bir Simülasyon Lisansı kullanarak çalışan uzak bir makinedeki simülasyonu kontrol etmek için kullanabilirsiniz .

 

Geri Çağrı Fonksiyonları #


 Bu işlevler , Phoenix Simülatörünün Simülasyon sürümünde  Komut  Dosyası Kullan seçeneğini etkinleştirdiğinizde kullanılabilir .

Simülasyonun farklı anlarında Phoenix bunları çağıracak ve siz de içine özel MaxScript kodunuzu ekleyebilirsiniz.

Bu MaxScript kodu, her farklı simülatör için ayrıdır ve 3ds Max sahne dosyasına kaydedilir.

Örneğin, bir simülasyon bittiğinde veya bir sekansın ya da tek bir karenin işlenmesi başladığında otomatik olarak başka bir Simülatörü başlatmak için komut dosyası eklemek mümkündür ( şu örneğe bakın ).

Aşağıdaki işlevler mevcuttur:

İşlev

Tanım

OnSimulationBegin

Simülatörün başlatılması tamamlandıktan sonra ve ilk çalıştırmadan önce çağrılır.

Simülasyon Adımında

Her simülasyon adımından önce, sahneyle etkileşimden sonra çağrılır.

Simülasyon Sonu

Simülasyonun bitiminden sonra çağrılır. ‘This’ değişkeniyle belirtilen simülasyon çekirdeği, bu geri çağırma sırasında zaten yok edilmiş olacağından erişilmemelidir.

OnNewFrame

Her kare dışa aktarımından sonra çağrılır.

 

Küresel Değişkenler #


Aşağıdaki global değişkenler, geri çağrı fonksiyonlarına girilmeden önce başlatılır:

Değişken

Tanım

bu:<simülatör>

Geri çağrı fonksiyonunu çağıran simülatöre işaret eder.

t:<float>

Simülatörün dahili zamanı

dt:<float>

Simülatörün dahili adım süresi

 

Küresel Fonksiyonlar #


Bunlar, 3ds Max’in MaxScript dinleyicisinden, yukarıdaki Geri Çağrı Fonksiyonlarından veya örneğin başlangıçta 3ds Max’e ilettiğiniz bir MaxScript dosyasından çağırabileceğiniz Phoenix’e özgü fonksiyonlardır.

Simülasyon ızgara kanallarının her biri (sıcaklık, hız, duman vb.) iki örnekte bulunur: bir örnek simülasyon çalışırken simülasyon çekirdeğinde, diğer örnek ise simülasyon çalışmıyorken bile erişebileceğiniz yüklenmiş simülasyon önbellek dosyalarındadır. Bu bölümdeki fonksiyonlar hem simülasyon çekirdeğine hem de önbellek dosyalarına erişebilir. Fonksiyona geçirilen ilk argüman bir Phoenix Simülatör düğümü belirtiyorsa, fonksiyon önbellek dosyasındaki verilere erişir. Açıkça belirtilen bir Phoenix Simülatör düğümü yoksa, fonksiyon şu anda çalışan simülasyon çekirdeğine erişir ve bu belirsiz değildir çünkü aynı anda yalnızca bir Simülatör başlatılabilir.

Simülasyon çekirdeğinin yalnızca simülasyon sırasında var olduğunu ve yalnızca geri çağırma fonksiyonlarında `this` global değişkeni kullanılarak erişilebildiğini unutmayın .

 

Fonksiyonlar

Tanım

A_SetSystem

Parametreler:

sistem:<tamsayı>

Mevcut seçenekler şunlardır:

0 – Nesne alanı

1 – Dünya uzayı

2 – Izgara (voksel) alanı

Dönüş değeri:

 hiçbiri

Hangi koordinat sisteminin kullanılacağını belirtir.

A_Enjeksiyon

Parametreler:

nerede:<nokta3>

miktar:<float>

[sıcaklık:<float>]

[duman:<float>]

[hız:<nokta3>]

[RGB:<point3>]

Dönüş değeri:

hiçbiri

Belirtilen bir noktaya sıvı enjekte eder. Bu fonksiyonu kullanarak kendi prosedürel kaynaklarınızı oluşturabilirsiniz. Fonksiyonun sonucu, bir veya daha fazla A_SetX fonksiyonu çağrılarak elde edilemez, çünkü bunlar sıvının miktarını değil, yalnızca sıvının taşıdığı parametreleri etkiler. Bir noktaya sıvı enjeksiyonu, yalnızca en yakın 8 hücrenin içeriğinde değişikliklere neden olur, ancak tüm ızgarada dışa doğru bir akış üretir. Bununla birlikte, fonksiyon sıradan A_SetX fonksiyonundan daha yavaş değildir, çünkü dışa doğru akış simülasyon yürütüldüğünde daha sonra ortaya çıkar. A_Inject’ten hemen sonra yakın bir noktada A_GetV fonksiyonu çalıştırılırsa, hız değişmez.

A_SetV

Parametreler:

x:<tamsayı>

y:<tamsayı>

z:<tamsayı>

hız:<point3>

Dönüş değeri:

hiçbiri

Bir hücrenin hızını ayarlar. Bir simülatör adı kullanılırsa, fonksiyon yüklenen önbelleğe yazar; aksi takdirde, varsa çalışan simülatörün ızgarasına yazar.

A_SetRGB

Parametreler:

x:<tamsayı>

y:<tamsayı>

z:<tamsayı>

RGB:<point3>

Dönüş değeri:

hiçbiri

Bir hücrenin RGB değerlerini ayarlar. Simülatör adı kullanılırsa, fonksiyon yüklenen önbelleğe yazar; aksi takdirde, varsa çalışan simülatörün ızgarasına yazar.

A_SetT

Parametreler:

x:<tamsayı>

y:<tamsayı>

z:<tamsayı>

sıcaklık:<float>

Dönüş değeri:

hiçbiri

Bir hücrenin sıcaklığını ayarlar. Simülatör adı kullanılırsa, fonksiyon yüklenen önbelleğe yazar; aksi takdirde, varsa çalışan simülatörün tablosuna yazar.

A_SetSm

Parametreler:

x:<tamsayı>

y:<tamsayı>

z:<tamsayı>

duman:<float>

Dönüş değeri:

hiçbiri

Bir hücrenin dumanını ayarlar. Bir simülatör adı kullanılırsa, fonksiyon yüklenen önbelleğe yazar; aksi takdirde, varsa çalışan simülatörün ızgarasına yazar.

A_SetFl

Parametreler:

x:<tamsayı>

y:<tamsayı>

z:<tamsayı>

yakıt:<şamandıra>

Dönüş değeri:

hiçbiri

Bir hücrenin yakıtını ayarlar. Bir simülatör adı kullanılırsa, fonksiyon yüklenen önbelleğe yazar; aksi takdirde, varsa çalışan simülatörün tablosuna yazar.

A_GetFl

Parametreler

nerede:<Nokta3>

Dönüş Değeri:

<float>

Belirtilen noktadaki yakıt miktarını alır. Bir simülatör adı kullanılırsa, fonksiyon yüklenen önbellekten okur; aksi takdirde, varsa çalışan simülatörden okur.

A_GetV

Parametreler

nerede:<Nokta3>

Dönüş Değeri:

<point3>

Belirtilen noktadaki hızı alır. Bir simülatör adı kullanılırsa, fonksiyon yüklenen önbellekten okur; aksi takdirde, varsa çalışan simülatörden okur.

A_GetRGB

Parametreler

nerede:<Nokta3>

Dönüş Değeri:

<point3>

Verilen noktadaki RGB değerlerini alır. Bir simülatör adı kullanılırsa, fonksiyon yüklenen önbellekten okur; aksi takdirde, varsa çalışan simülatörden okur.

A_GetT

Parametreler

nerede:<Nokta3>

Dönüş Değeri:

<float>

Belirtilen noktadaki sıcaklığı alır. Bir simülatör adı kullanılırsa, fonksiyon yüklenen önbellekten okur; aksi takdirde, varsa çalışan simülatörden okur.

A_GetSm

Parametreler

[düğüm:<Simülatör>]

nerede:<Nokta3>

Dönüş Değeri:

<float>

Belirtilen noktadaki Duman değerini alır. Bir Simülatör adı kullanılırsa, fonksiyon yüklenen önbellekten okur; aksi takdirde, varsa çalışan simülatörden okur.

A_StartSim

Parametreler

düğüm:<Simülatör>

[önbellek: <Dize>]

[başlangıç ​​çerçevesi: <tam sayı>]

Simülasyonu başlatır. Yalnızca simülatör düğümünü geçirmek yeni bir simülasyon başlatır. Bir önbellek dosyasına giden yolu geçirirseniz, etkisi Simülasyon açılır menüsündeki Yükle ve Başlat düğmesininkiyle aynıdır : simülasyon durumu önbellekten yüklenir ve simülasyon belirtilen Başlangıç ​​Karesinden devam eder. Başlangıç ​​karesi dizinini de manuel olarak geçirirseniz , bu Yükle işlevine göre öncelik kazanır ve simülasyon, Geri Yükle düğmesinin çalıştığı gibi, verilen kareden geri yüklenir .

Bu fonksiyon , Parçacık Yeniden Simülasyonu ve Izgara Yeniden Simülasyonu anahtarlarının durumuna bağlı olarak simülasyon ve yeniden simülasyon arasında karar verecektir .

A_StopSim

Parametreler

düğüm:<Simülatör>

Simülasyonu durdurur

A_Bekle

Parametreler

düğüm:<Simülatör>

Bu fonksiyon, belirtilen simülatörün çalışması bitene kadar komut dosyasının yürütülmesini durdurur. Genellikle bu fonksiyon, simülasyon bittikten sonra belirli eylemleri çalıştırmak istediğinizde A_StartSim ile birlikte kullanılır.

Bu işlevi son derece dikkatli kullanın çünkü 3ds Max’in grafik kullanıcı arayüzünü (GUI) engellemez.

A_Parçacık Oluştur

Parametreler

Parçacık grubu:<string>

nerede:<Nokta3>

[Yarıçap:<float>]

[Hız:<Nokta3>]

Dönüş Değeri:

hiçbiri

Belirtilen konumda ve belirtilen özelliklere sahip yeni bir parçacık oluşturur.

A_Dondurma

Parametreler:

x:<tamsayı>

y:<tamsayı>

z:<tamsayı>

Verilen hücreyi dondurur. Dondurulmuş hücre katı bir cisim gibi davranır .

A_Dondurmayı Kaldır

Parametreler:

x:<tamsayı>

y:<tamsayı>

z:<tamsayı>

Verilen hücrenin dondurma işlemini kaldırır. Simülatörün dondurma işlemlerini saydığını ve bir hücrenin dondurma işlemini başarıyla kaldırmak için aynı sayıda dondurma kaldırma işlemi gerçekleştirmeniz gerektiğini unutmayın.

A_HızlıKurulum

Parametreler:

kurulum: <tamsayı>

Mevcut seçenekler şunlardır:

0 – yangın
1 – yakıt yangını
2 – patlama
3 – benzin patlaması
4 – yoğun duman
5 – soğuk duman
6 – sigara dumanı
7 – mum
8 – bulutlar

9 – musluk suyu
10 – süt
11 – bira
12 – kahve
13 – bal
14 – sıvı çikolata
15 – kan
16 – boyalar
17 – suda mürekkep
18 – şelale
19 – okyanus

Dönüş Değeri:

hiçbiri

Seçilen nesnelerle Hızlı Kurulum oluşturur (Hızlı Kurulum ön ayarları, birden fazla nesneden oluşan bir seçime uygulanabilir).

A_LoadRenderPreset

Parametreler

düğüm: <Simülatör>

önceden belirlenmiş yol: <Dize>

Belirtilen render ön ayar dosyasını yükler. Bu , Simülatörün Rendering açılır menüsündeki Render Ön Ayarları… menüsünü kullanmakla aynıdır .

Önceden tanımlanmış yol, tam bir yol olabilir veya geçerli sahne dosyasının dizinini belirten $(dir) makrosunu kullanabilir.

Örneğin, aşağıdaki komut mevcut sahne dizininden “preset.tpr” dosyasını yükleyecektir:

A_LoadRenderPreset (getnodebyname “PhoenixFDFire001”) “$(dir)\preset.tpr”

A_SaveRenderPreset

Parametreler

düğüm: <Simülatör>

önceden belirlenmiş yol: <Dize>

Phoenix render ön ayarını, mevcut render ve önizleme ayarlarıyla birlikte bir dosyaya kaydeder.

Bu , Simülatörün İşleme menüsündeki İşleme Ön Ayarları… menüsünü kullanmakla aynı şeydir .

Önceden tanımlanmış yol, tam bir yol olabilir veya geçerli sahne dosyasının dizinini belirten $(dir) makrosunu kullanabilir.

A_LoadSimPreset

Parametreler

düğüm: <Simülatör>

önceden belirlenmiş yol: <Dize>

Belirtilen simülasyon ön ayar dosyasını yükler.

Bu , Simülatörün Simülasyon açılır menüsündeki Simülasyon Ön Ayarları… menüsünü kullanmakla aynı şeydir .

Önceden tanımlanmış yol, tam bir yol olabilir veya geçerli sahne dosyasının dizinini belirten $(dir) makrosunu kullanabilir.

Örneğin, aşağıdaki komut mevcut sahne dizininden “preset.tpr” dosyasını yükleyecektir:

A_LoadSimPreset (getnodebyname “PhoenixFDFire001”) “$(dir)\preset.tpr”

 A_SaveSimPreset

Parametreler

düğüm: <Simülatör>

önceden belirlenmiş yol: <Dize>

Phoenix simülasyonu için önceden ayarlanmış bir ayarı dosyaya kaydeder.

Bu , Simülatörün Simülasyon açılır menüsündeki Simülasyon Ön Ayarları… menüsünü kullanmakla aynı şeydir .

Önceden tanımlanmış yol, tam bir yol olabilir veya geçerli sahne dosyasının dizinini belirten $(dir) makrosunu kullanabilir.

[Phoenix FD 4.10.04 sürümünden itibaren kullanılabilir]

A_GetGridSize

Parametreler

düğüm: <Simülatör>

kanal adı: <Dize>

Dönüş Değeri:

<point3>

Çalışmakta olan simülatörün ızgara boyutunu veya simülasyon çalışmıyorsa yüklenmiş önbellek dosyasının ızgara boyutunu alır.

Uyarlanabilir ızgara kullanılırken faydalıdır; bu durumda this.xc, this.yc ve this.zc yalnızca başlangıç ​​ızgara boyutunu döndürür.

Izgara kanalının adı ileride kullanılmak üzere ayrılmıştır. Şu anda tüm izgara kanalları aynı boyuttadır.

[Phoenix 5.01.02 Nightly sürümünden itibaren kullanılabilir, Yapı Kimliği: 2022120531780]

A_Simscene’i Dışa Aktar

Parametreler

dışa aktarma yolu: <Dize>

Daha sonra veya farklı bir makinede simülasyon için kullanabileceğiniz bir simscene dosyası dışa aktarır. Phoenix Standalone simülasyonu için .simscene dosyalarının dışa aktarılması hakkında daha fazla bilgi için bu sayfaya bakın .

 

 

Küresel Arayüz #


Phoenix ayrıca , belirli bir Phoenix düğümüne özgü olmayan verileri elde etmek için kullanılabilecek küresel bir arayüz de sağlar  .

Örnek kullanım:
IPhoenix.getCopyrightsString()

 

Mevcut işlevler şunlardır:

SürümDizesini al

Phoenix sürümünün tam olarak hangi versiyon olduğunu belirten bir dize döndürür.

getTargetString

3ds Max sürümünü ve Phoenix derleme türünü içeren bir dize döndürür.

Telif haklarını al

Chaos Phoenix ve kullanılan tüm üçüncü taraf yazılımların telif haklarını ve telif bilgilerini içeren bir dize döndürür.

 

 

Düğüm Başına Fonksiyonlar #


Phoenix ayrıca, Simülatör düğümüne doğrudan yazarak ızgara verilerini alma ve render ön ayarlarını yükleme olanağı sağlayan bir arayüz de sunmaktadır.

Örnek kullanım:
$PhoenixFDFire001.getFuel (Point3 15 15 15)

 

Mevcut işlevler şunlardır:

getVersion  –  [Phoenix FD 4.10.04 sürümünden itibaren kullanılabilir]  Şu anda yüklü olan Phoenix sürümünü alır.
setCoordSys  – Hangi koordinat sisteminin kullanılacağını belirtir.

 Mevcut seçenekler şunlardır:

0 – Nesne alanı

1 – Dünya uzayı

2 – Izgara (voksel) alanı

getGridSize  –  [Phoenix FD 4.10.04 sürümünden itibaren kullanılabilir]  Çalışan Simülatörün veya simülasyon çalışmıyorsa yüklenen önbellek dosyasının ızgara boyutunu alır.
loadRenderPreset  – Daha önce kaydedilmiş bir Phoenix render ön ayarını dosyadan yükler.
saveRenderPreset  – Geçerli render ve önizleme ayarlarıyla bir Phoenix render ön ayarını dosyaya kaydeder.
loadSimPreset  – Daha önce kaydedilmiş bir Phoenix simülasyon ön ayarını dosyadan yükler.
saveSimPreset  – Geçerli render ve önizleme ayarlarıyla bir Phoenix simülasyon ön ayarını dosyaya kaydeder.
getVelocity  – Belirtilen noktadaki Hız değerini alır.
getRGB  – Belirtilen noktadaki RGB değerini alır.
getTemperature  – Belirtilen noktadaki Sıcaklık değerini alır.
getSmoke  – Belirtilen noktadaki Duman değerini alır.
getFuel  – Belirtilen noktadaki Yakıt değerini alır.
reloadFrame  – Geçerli zaman çizelgesi zamanı için önbellek karesinin yüklenmesini zorlar.
getFrameInfo  – Şu anda yüklenen önbellek karesi hakkında bilgi içeren bir dize döndürür. Bu bilgiyi Simülasyon paketinin Önbellek Dosyası İçeriği kutusunda bulabilirsiniz .

Tarafından desteklenmektedir BetterDocs

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir