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 9 – musluk suyu 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 .
