QRコード
QRCODE
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 0人
オーナーへメッセージ
slMame › 一日一膳腹八分目 › 作成物/製品 › スカート製造装置/プロトタイプ
2009年08月11日

スカート製造装置/プロトタイプ

スカート製造装置/プロトタイプ


複数の部品対応、各部品についていろいろ微調整できる楕円形配置スクリプトです。
意地になって調整可能な変数を増やしましたので、多分簡単に使えるジェネレーターではなくなっていると思われます。まだまだ増やすかもしれません。
ゆえに今のところは知り合い限定となり、スクリプト内容は非公開とさせて頂きます。
ただのチュートリアルです。


使用方法 0:初期化


初期化は手動です。(笑
初期状態ではRBKが最後に作動実験をしていた状態で手渡されるはずですので、中にあるはずの次の3物体を自分のイベントリにコピーします。
ほかはゴミです。捨ててください。

1:main スクリプトファイル
2:centralDogma 同じ名前の物体を装備するかrezして開いた、その中のスクリプト
3:settings ノートカード

これらのうち、settings以外の二つにコピー権限が無い場合はIMしてください。動きません。

settingsの内容を以下のものに差し替えてください。
最初の状態


使用方法 1:著作者表示変更


スクリプト「centralDogma」を、作成する物体の中心になる何らかのオブジェクトに入れてください。
初期状態では赤い玉ですが、何でもかまいません。このスクリプトが入っている物体のクリエイター表示が、クリエイターの名前になります。
適当に名前をつけてください。

編集画面を開いて、スクリプト「main」の最上部にある初期設定を編集してください。赤字の部分に、上で用意した中心物の名前を設定します。

//スカート製造装置・装置オブジェクト
//************************************
//動作設定項目

//1:本体(中心に出現させるコア)の名前
string centralDogma="centralDogma";

//2:コアを出現させる位置の調整
float offsetX=0.0;
float offsetY=0.0;
float offsetZ=0.0;

//3:デフォルトで許すrezの上限数
integer MAX_REZ_LIMIT=64;

//4:デフォルトの設定ノートカードの名称
string settingFileName="settings";
//************************************


使用方法 2:作動試験


準備が終わったらスクリプト「main」、「centralDogma」が入っている物体、ノートカード「settings」を何らかの物体に入れてください。
次に何らかの物体「test」を用意して、同じく入れてください。

タッチしてしばらく待ち、半径1メートルの円状に物体が出れば成功です。
放置しておくとリンクし、そのうち消えます。
下の画像ではキューブ「test」を適当につくって放り込み、テストしています。
スカート製造装置/プロトタイプ

使用方法 3:チャットコマンド


半角スラッシュで始まるコマンドで、二種類の設定が出来ます。

1:出現させるプリムの最大数
/sk limit
で設定します。初期状態では64個になっています。
設定ノートカードで指定の数がこれより多くても、設定ノートカードの指定が無視される安全弁です。

2:設定ノートカードの名前
/sk file ファイル名
で設定します。初期状態では「settings」になっています。
複合する円を使用した作成物を作ったり、複数の設定を内部においておく場合、ノートカードを適当に名づけて入れておいて、このコマンドで切り替えてください。

使用方法 4:設定ノートの内容



規則その1
行頭が「//」で始まる行はすべて無視されます。
行頭しか効果がありません。

規則その2
行頭が「/*」~「*/」で囲まれている範囲はすべて無視されます。
複数行に対応していますが、厳密なチェックはしておりませんので、

/*
なんだか
/*
なんとか
*/
ここは無視されません
*/

という具合になります。

規則その3
設定ファイルの内容をコピペして複数繰り返すと、おのおのの指定に従ってループ製造を何度も繰り返そうとします。
ただし読み込みに時間がかかるのであまり価値はありませんでした。^^;


以下、数がありますが基本的に説明がついているとおりの動作をします。
ややこしそうなものを抜粋して画像を取ってみました。

rez_type:実験モード
行頭を//にして無視させていない場合、作成される物体を自動リンク後に臨時オブジェクトにしようとします。
rezした物体の総数が64個を超えると、自動臨時オブジェクト化はうまく動作しません。手動で消してください。
また、実験モードを無視させている場合や、自動リンクが行われない数をrezさせた場合、今のところ、コアの中に本体スクリプトや部品、設定ファイルなどが残ります。実害はありませんが気になれば手動で捨ててください。

#プリム名称,プリム名称,・・・
行頭が#で始まる行は、出現させる物体の名称の指定です。
半角カンマ「,」で区切って複数指定すると、一つrezする毎に入れ替わりながらrezされていきます。
例)紅白のスカート
赤い部品「red」と白い部品「white」をマネキンの中にいれ、以下に設定してタッチします。
#white,red
スカート製造装置/プロトタイプ



Ra:
Rb:

楕円のX軸とY軸の半径です。
直径ではなく半径を指定します。脳がところてんになっている私はよく直径を指定して期待通りにならずイラついています。
大よそネックレスサイズまでは作動していましたが、ブレスレットサイズで作動するかどうかは未検証です。

AngleZ:数
部品の回転に一律に傾きを指定します。
実はDefaultRotYを指定するのと動作が同じです。^^;

deltaXZ:
配置を傾けます。
例)20度を指定。真正面(X軸)から見た図。
スカート製造装置/プロトタイプ


deltaYZ:
配置を傾けます。
例)20度を指定。真正面(X軸)から見た図。
スカート製造装置/プロトタイプ



useAccelX:
accelXA:
accelXB:
useSinX:0か1か-1

配置曲面の指定です。
二次式z=useAccelX*(x-accelA)(x-accelB)にしたがって頂点を指定した曲面上に物体を配置できます。
指定する場合、x座標が(-Ra,Ra)を(-1,1)に読み替えて指定します。
つまり、補正を0にしたい場所の割合を、accelAとaccelBに指定します。

useSinXが1になっている場合、0度180度付近で変形による回転が減衰します。
スカート製造装置/プロトタイプ



例)
useAccelX:1.0
accelXA:-1.0
accelXB:1.0
useSinX:1.0

z=(x+1)(x-1) の意味です。
x座標が-RaとRaの場所で補正が0になるため、ちょうどY軸上が頂点になる放物線を描きます。
頂点位置が中心から1メートルになり、-RaとRaで(つまりX軸上で)元の高さになります。
スカート製造装置/プロトタイプ



useAccelX:1.0
accelXA:-1.0
accelXB:0.0
useSinX:1.0

z=x(x+1) の意味です。
x座標が-Raと0の場所で補正が0になるため、頂点が後ろにある放物線に見えるようになります。
頂点位置が高さ1メートル補正になり、前側はマイナス側に補正されています。
スカート製造装置/プロトタイプ



useAccelX:1.0
accelXA:-1.0
accelXB:0.0
useSinX:1.0
を別アングルから。
useSinXが1の場合、このように天板の回転がつながって見えます。
スカート製造装置/プロトタイプ



useSinXを0にすると、こうなります。
スカート製造装置/プロトタイプ



useSinXを-1にすると、こうなります。
スカート製造装置/プロトタイプ



useAccelT:
accelTA:
accelTB:
useSinT:0か1

二次曲線に従って配置される角度を補正します。
accelX系と異なるのは、0度から180度を0~1に読み替えることです。
accelX系と同じ法物線を指定して配置間隔を微調整したり、もともとの楕円の扁平率が大きい場合に微調整して、当幅な配置にすることが出来ます。

例)上がX軸正方向です。
useAccelT:1.0
accelTA:-1.0
accelTB:1.0
useSinT:1.0
スカート製造装置/プロトタイプ



useAccelT:5.0
accelTA:-1.0
accelTB:0.0
useSinT:1.0
補正の大きさuseAccelTが怪しいと結果も怪しいことになります。
この場合は補正が大きすぎます。
一応暴走はしないはずですが・・^^; 、本来紅白にならぶはずの物体がずれています。
スカート製造装置/プロトタイプ



rotationDeltaZ:
指定の角度で軸周りに回転します。
要するに、チェーンなどです。。
例)30度で回転
スカート製造装置/プロトタイプ






/**********************************************************************
設定ファイルの初期状態
***********************************************************************/
/**********************************************************************/
//動作モード
//rez_type:実験モードとすると、作成されるスカートは臨時オブジェクトになります。
//本作成時にはコメント化してください。
rez_type:実験モード
/**********************************************************************/



/**********************************************************************/
//対象プリム名称
//半角カンマで区切って複数指定すると、一つrezするたびに順に入れ替わっていきます。
#test
/**********************************************************************/
//パーツの初期回転(実数・度)
//パーツデザイン画面の値をそのまま入れられます。
//指定すると初期回転として使用されます。
//パーツの回転計算はすべてを0指定の場合を基準にしておこなわれ、
//指定の初期回転をした後に、計算結果の回転が付加されます。
DefaultRotX:0.0
DefaultRotY:90.0
DefaultRotZ:0.0

//いくつのプリムで分割するか(正の整数)
//ひとつの設定ファイルで生成される部品プリムの合計が64を超えると自動リンク処理は実行されません。
Partitions:12

//配置開始の角度(実数・度)
//設定すると配置開始位置が0方向からずれます。
offsetTheta:0.0

//配置終了の角度(実数・度)
//設定すると配置開始終了位置が0方向からずれます。
limitTheta:360.0

//楕円のX軸方向の半径(正の実数・メートル)
Ra:1.0

//楕円のY軸方向の半径(正の実数・メートル)
Rb:1.0

//ひらひらの縦方向すぼまりの傾き(正の実数・度)。
//プラス指定で上がすぼまるテーパー状に配置されます。
//スカート用
AngleZ:0

//スカートを出現させる装置中心位置からのX位置調整(実数・メートル)
//0でマネキンの位置。
PositionX:0.0

//スカートを出現させる装置中心位置からのY位置調整(実数・メートル)
//0でマネキンの位置。
PositionY:0

//スカートを出現させる装置中心位置からの高さ調整(実数・メートル)
//値を大きくすると下に下がります。
PositionZ:0.0

//X軸とスカート上端面の傾き(実数・度)
//指定が0以外の場合、前方向から見て傾斜して見えます。
deltaXZ:0

//Y軸とスカート上端面の傾き(実数・度)
//指定が0以外の場合、横方向から見て傾斜して見えます。
deltaYZ:0

//X軸による生成位置の加速
//Z位置の調整 dZ=(x-a)*(x-b)
//の二次式に従って出現位置が法物面になります。
//xの値は-a~a(x軸の直径)を-1~1に置き換えた値をとります。
//ネックレスの自動生成などに。
//useAccelXは効果の大きさで、0の場合は計算されません。
//useAccelX値を大きくしすぎると変異が大きすぎて自動リンクが作動しなくなります。
//小さ目の値から試してください。
//useSinXに1を指定した場合、サインカーブによって傾き計算に減速補正がかかり、プリム天井面が滑らかに並んで見えます。
//useSinXに0を指定した場合、計算補正は行われません。指定のままの2次曲線に従います。
//useSinXに-1を指定した場合、加速結果による回転自体を行いません。
useAccelX:0.0
accelXA:-1.0
accelXB:1.0
useSinX:1.0

//角度位置による回転角の加速
//XY位置の、楕円中心から見た回転角の調整 dθ=(θ-a)*(θ-b)
//の二次式に従って出現方向が調整されます。
//θの値は0~180度を0~1に置き換えた値をとります。
//Partitionsで指定した分割角度を基準にして調整されます。
//ネックレスの自動生成などに。
//useAccelTは効果の大きさで、0の場合は計算されません。
//useSinTに1を指定した場合、サインカーブによって計算に減速補正がかかり、開始位置と180度位置付近で角度補正の値が小さくなります。
//useSinTに0を指定した場合、計算補正は行われません。指定のままの2次曲線に従います。
useAccelT:0.0
accelTA:-1.0
accelTB:1.0
useSinT:1.0

//一回REZ毎のオブジェクトの横軸周り回転(実数・度)
//指定すると軸を回転しながら生成されます。
//チェーンの自動生成などに。
rotationDeltaZ:0.0;


同じカテゴリー(作成物/製品)の記事画像
スーパーリアル8ビット3D’SK’
パーティクル製造機
同じカテゴリー(作成物/製品)の記事
 スーパーリアル8ビット3D’SK’ (2017-02-06 00:04)
 モーション制作スクリプト完成♪ (2011-05-14 22:26)
 極端に重い処理をJavaScriptに投げると・・ (2010-09-01 15:37)
 パーティクル製造機 (2009-12-25 16:33)

Posted by RBK Drachnyd(しお) at 21:15│Comments(0)作成物/製品
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。