vmapにNULL(nil)を割り当てると値を削除できる
が、一見削除できたように見えるが、LWの仕様なのか内部的(モデラーのデータベース)には削除されない
ウエイトマップを選んで削除(LScript)のサンプル
@script modeler
main
{
vmap = VMap(VMWEIGHT);
if( nil == vmap ){
error("");
return;
}
numVMaps = 0;
while( vmap && vmap.type == VMWEIGHT ){
vmapNames += vmap.name;
numVMaps++;
vmap = vmap.next();
}
reqbegin("Delete WeightMap");
for(i=0; i<numVMaps; i++){
ctl[i+1] = ctlcheckbox(vmapNames[i+1], false);
}
return if !reqpost();
for(i=0; i<numVMaps; i++){
sel += getvalue(ctl[i+1]);
}
reqend();
selmode(GLOBAL);
editbegin();
for(i=0; i<numVMaps; i++){
if( sel[i+1] ){
vmap = VMap(vmapNames[i+1]);
foreach(p,points){
if(vmap.isMapped(p)) vmap.setValue(p, nil);
}
}
}
editend();
}
プラグインだったら
edit->pntVMap( edit->state, pntID, LWVMAP_WGHT , vmapName, 1, NULL)
のようにNULLを渡すとvmapを取り除ける