ページトップへ戻る

DIGITAL DNA
2019.08.12 - 2019.10.12
Max Script 基本文法:配列

目次
「MaxScriptヘルプ」の見かた
デバッグ用に変数の値などを表示したい
スクリプトファイルの拡張子
コメントの記述

・MaxScript基本文法
 ├変数
 ├演算子
 ├文字列
 ├配列
 ├ループ
 ├条件分岐・エラー回避処理
 └関数(Function)



配列
ヘルプ
[HELP] MAXScript 言語リファレンス > コレクション > コレクションのタイプ > 配列の値

配列を定義
解説とメモ


基本的な書式
配列の宣言と値の代入を行う場合
[配列名] = #([値1],[値2],[値3]…)

配列の宣言のみの場合
[配列名] = #()


記述例
配列の宣言と値の代入を行う場合
my_array = #("a","b","c","d","e")

配列の宣言のみの場合
my_array = #()


値の参照
解説とメモ
配列のインデックスは1からスタートします。
※他のプログラム言語では、配列の先頭は1番目ではなく0番目とするものがあります。

記述例
my_array = #("a","b","c","d","e")
my_array[2]

"b"が表示されます。


配列内容をクリア
解説とメモ
配列を再定義すると内容がクリアされますが、他に方法があるか調査中です。

配列に値を追加
解説とメモ
配列の末尾に値を追加するには append を使います。


基本的な書式
append [変数名] [追加する値]


記述例
my_array = #("a","b","c","d","e")
append my_array "f"


配列から値を削除
解説とメモ
配列の特定の位置から値を削除するには deleteItem を使います。


基本的な書式
deleteItem [変数名] [何番目ものを消すか]


記述例
my_array = #("a","b","c","d","e")
deleteItem my_array 2

この例では、配列の2番目の値"b"が削除され、配列の内容は"a","c","d","e" になります。


配列から重複した値を削除
ヘルプ
[HELP] よくある質問と回答 > 実際の操作に関する質問 > MAXScript 値の操作 > 配列から、重複した配列を削除する方法はありますか。


配列の結合
解説とメモ
配列を結合するには join を使います。


記述例
my_array1 = #(1,2,3,4,5)
my_array2 = #(6,7,8,9,10)
join my_array1 my_array2


配列の特定の位置に値を挿入
解説とメモ
配列を結合するには insertItem を使います。


記述例
my_array = #(10,20,30,40,50)
insertItem 15 my_array 2

MaxScriptリスナー上で上記の例を実行すると、"OK"と表示されます。
配列内容を確認すると #(10, 15, 20, 30, 40, 50) となっていることが分かります。

配列内容のソート
解説とメモ
配列の内容を昇順にソートするには sort を使います。


記述例
my_array = #(5,2,3,1,4)
sort my_array


多元配列(2次元配列)
ヘルプ
[HELP] よくある質問と回答 > 実際の操作に関する質問 > MAXScript 値の操作 > 多次元配列を作成する方法はありますか。

Max Scriptのサンプル
objnanme = #(#())
append objname #()
append objname #()
append objname #()
objname[4][6] = 0
objaname =#(#($obj_1_1,$obj_1_2,$obj_1_3,$obj_1_4,$obj_1_5,$obj_1_6))
append objaname #($obj_2_1,$obj_2_2,$obj_2_3,$obj_2_4,$obj_2_5,$obj_2_6)
append objaname #($obj_3_1,$obj_3_2,$obj_3_3,$obj_3_4,$obj_3_5,$obj_3_6)
append objaname #($obj_4_1,$obj_4_2,$obj_4_3,$obj_4_4,$obj_4_5,$obj_4_6)
for counter1 = 1 to 4 do (
	for counte2 = 1 to 6 do (
		select objname[counter1][counter2]
	)
)