3D-CoatのAngelScriptで遊ぶ

**AngelScriptで遊ぶ**

3D-Coatには、AngelScriptというちょっとした**簡易プログラミング機能**みたいなのがついています。
せいぜい上級者がよく使う機能の登録に利用するくらいで、普通のスカルプトモデリングをやるぶんには全く見向きもされないであろうこの機能で、ちょっと造形を離れて遊んでみました。
Tipsというか、ただいじくってみただけというか。
<br><br>
***
公式の「取扱説明書」のpdfは、3D-Coatがインストールされてるフォルダ内の、Scriptsフォルダの中にあるよ。
![angel3.png](https://qiita-image-store.s3.amazonaws.com/0/103927/c996ead2-ce2f-4b83-a197-f0d9741afdc2.png)

これが取り扱い説明書。このpdfとにらめっこしながらプログラミングをしていく。
![angel4.png](https://qiita-image-store.s3.amazonaws.com/0/103927/72eff4ea-3c52-9c1c-92e1-76ba5fd27a5b.png)

***

じゃあ実際の作業。3D-Coatで、スクリプトタブから「あなたのスクリプトを作成」というのを選ぶ。
![angel1.png](https://qiita-image-store.s3.amazonaws.com/0/103927/5ea21f5b-fe7c-533a-e612-efa48bf0517b.png)

そしたら3種類のテンプレートからどれを選ぶか聞いてくるので、適当に1番上のを選んでおく。
![template.png](https://qiita-image-store.s3.amazonaws.com/0/103927/56d82f98-1f34-36b4-8dbc-787b03842282.png)


すると、こういう英語とプログラムの始め部分があらかじめ書かれたテキストファイルが作られるので、**これにプログラムを書いていく**と。
![angel2.png](https://qiita-image-store.s3.amazonaws.com/0/103927/0d5a23da-92af-f64e-c219-7d29694e7e7d.png)


***
<br>
で、さっきの説明書pdfをいろいろ見ていたら、sphereとかcubeとかいう命令があった。これがきっとプリミティブを作る命令だな！
![angel5.png](https://qiita-image-store.s3.amazonaws.com/0/103927/fe9652ee-2827-f1f1-f692-04202855cbcf.png)
<br>

いざ見つけたcube命令を、しかるべきところに書き加える。mainと書かれたとこの大カッコ内がプログラムのメイン部分なので、そこに、位置が0,0,0で大きさが100,100,100の立方体を作る命令を書きこむ。
![angel6.png](https://qiita-image-store.s3.amazonaws.com/0/103927/19899bab-d5f4-a604-f74c-33725066e8b0.png)

**そしてスクリプトを実行すると･･･立方体ができたぜ！**
![angel7.png](https://qiita-image-store.s3.amazonaws.com/0/103927/aee3d9b7-f09f-8f2f-500a-184135031c0b.png)
※エラーがでるとしたら、ボクセル用命令なのにペイントルームでやっちゃってるとかなので、自力でボクセルルームに移動しとくか、先に「Vox();」の命令を付け加えてボクセルルームに移動するプログラムにしておこう。
<br>
***
<br>
調子をよくして、さらにキューブを足してみる。今度は、「減算」の設定にして、先に作った立方体からくりぬいてみよっと。
![angel8.png](https://qiita-image-store.s3.amazonaws.com/0/103927/c46c06a1-2f26-cc5f-cd05-0571454f293c.png)

**くりぬけたぜ！**
![angel9.png](https://qiita-image-store.s3.amazonaws.com/0/103927/3447dc4d-71be-6eab-8b9d-c2264e36ed94.png)
***
さらに調子をよくして、YとZもくりぬくぜ。
![angel10.png](https://qiita-image-store.s3.amazonaws.com/0/103927/cabad4d0-fd6e-cbc5-1f8c-2328c47874ad.png)

上と横のぶんも減算cube命令を足すと･･･

**さらにくりぬけたぜ！**
![angel11.png](https://qiita-image-store.s3.amazonaws.com/0/103927/77911b5b-e903-c4d1-778c-66ab6f421387.png)
***
取扱説明書のサンプルを見るに、**while命令などの繰り返しもつかえる**ようなので、たくさんの立方体を一気にたくさん作れるかも･･･
![angel12.png](https://qiita-image-store.s3.amazonaws.com/0/103927/b67f0c2e-e9d8-ad76-c715-7fce0c3c2323.png)

**･･･立方体が一気にたくさん並んだぜ！**
![angel14.png](https://qiita-image-store.s3.amazonaws.com/0/103927/ee5d8f1f-a782-4851-9eac-3d2ce5b97c36.png)
***
AngelScriptsには**サインコサインタンジェントの命令もある**みたいなので、ためしに使ってみると･･･

サイン波の形に立方体が自動的に並べられたぜ！すげぇ！
![angel15.png](https://qiita-image-store.s3.amazonaws.com/0/103927/0709a22a-f28e-c995-1229-ce8394aadbb1.png)
***
減算でのくり抜きとwhile命令の繰り返しを組み合わせてみると･･･

･･･ボタンひとつで、穴いっぱいあくぜ！
![angel17.png](https://qiita-image-store.s3.amazonaws.com/0/103927/f4888773-1a60-3868-c591-aa24223e8974.png)

***
<br><br>
スクリプト次第で、手作業では面倒ないろんな面白い形がつくれるかも。
![last.png](https://qiita-image-store.s3.amazonaws.com/0/103927/3ff09445-48d8-5c1a-4f37-0abb620847d9.png)

**最後に：**
有機造形ではあんまり使わないかもしれませんが、たとえばオブジェクトをたくさんコピーする時にわざわざ何度もコピーをクリックしなくても一気に複製できたり、等列の配置が簡単に作れたり、面白い幾何学模様が作れたり、手作業では面倒でつらい作業がパッとできるようになるかもしれないので、
あるいは複雑なスクリプトが組める人ならもっともっとすごい色々なことができるかもしれない可能性を秘めた機能なので、興味が出たらぜひ試してみて無限大の使い道を考えてみてくださいね。
<br><br>

AngelScriptそのもののマニュアルはこちら
http://www.angelcode.com/angelscript/sdk/docs/manual/index.html