2016年10月26日水曜日

Meshのテクスチャーが巻き戻る

原因は分からないのですが、対処法はあるのでメモ。

リグ(ボーン)入りのMeshでたまーにあるのですが、テクスチャを設定しても、コピーしたりほんの数秒たっただけで元のテクスに戻ったり予想外の動きをする時があります。

白いテクスチャがコピーすると両方赤いテクスチャに戻る

こういうときはブレンダーなどでデーターを出力する前にメインにしているオブジェクトを別のオブジェクトにして出力してからアップロードすると正常な状態に戻る場合があります。ブレンダーだと最後にsift+右クリックして選択したオブジェクトです。




※別の原因として、まれにSecond lifeが不安定な時に巻き戻ったり、ひとつ前の状態に戻ったりするとこがあります。これはmeshや普通のプリムにも起こります。

2016年9月15日木曜日

Meshとプリム数とランドインパクトの話

作りながら感覚で覚えたので用語が変かもしれない
MeshのLI(ランドインパクト)を小さくする方法、Sarver(プリム)数編です。


アップロード画面の説明

まず、メッシュをアップロードする時。ランドインパクトに関わる数値が3つ有ります。
この中の一番大きな数字がアップロード時のメッシュのランドインパクトに適用されます。 


今回は一番右のServerの数値を低く抑える話です。


Sarverの数値を抑える方法

Sarverの数値はプリム(リンクを解除した時の塊)の数によります。大体一プリムにつき0.5増えます。メッシュの中にスクリプトを入れた場合も増加。
下の画像は6個のリンクされたメッシュをアップロードしたので6個☓0.5負荷でServerの数値は3です。
ランドインパクトは3。

↓ 

これをUVマップを一切変えずに6個のテクスチャの面を持った一つのプリムにします。
すると、プリム数はひとつなのでSarverの数値が0.5になりランドインパクトは1になります。




複数のUVテクスチャ面を持つ単一のプリムの作り方

ひとつ目は別々のプリムでメッシュを作って、それぞれにマテリアルを振り分け、最後に結合(Join)する方法。一番簡単。

一番上のプリムのマテリアルを変更する

1.『3DViwe画面』のObject Modeで一番上のプリムを選択します。
2.『OutLiner』画面のピンク色の玉のアイコンをクリックしてマテリアル画面を表示します。

3.下の画面のマテリアルタブのピンク色の文字で囲った『+』をクリックして新しいマテリアルを作ります。これで一番上のプリムを別のマテリアルにすることが出来ました。


4.全部のプリムにマテリアルを振り分けられたら、『3DViwe画面』のObject Modeで全てのプリムを選択。
5.『3DViwe画面』上にマウスカーソルを乗せてキーボードの『T』を押して『Tool』タブを出す。
6.『Tool』タブの『Join』ボタンを押して全てのプリムを結合する。
後は普通のメッシュと同じようにアップロードするだけです。


注意点はマテリアルを振り分ける時に、別々のマテリアルを選択することです。
同じマテリアルにしてしまうとその部分は同じ面として扱われて、別々のテクスチャを割り当てられなくなります。
※色は被っても大丈夫、色は分かりやすい用に塗っているだけです。


※『Join』をする時にそれぞれのプリムのUV Mapsの名前が同じであることを確認してください。名前が違うとUv mapが統合出来ず、バラバラのUvマップになってしまします。
 SLにアップロードする時にUvマップが複数あると、ひとつのUvマップしか適用されないっぽい。


既に結合してあるメッシュに複数のマテリアルを振り分ける方法

1.『3DViwe画面』のObject Modeでのメッシュを選択します。『Edeit Mode』に変更します。
2.『OutLiner』画面のピンク色の玉のアイコンをクリックしてマテリアル画面を表示します。『+』をクリック、その下の『New』ボタンを押して新しいマテリアルを作ります。区別がつきやすいように水色にします。


3.『3DViwe画面』の『Edeit Mode』で違うマテリアルを割り振りたい部分を選択します。今回は真ん中の立方体のマテリアルを変更します。
4.『マテリアルタブ』に戻り、新しく出した水色のマテリアルを選択。
5.『マテリアルタブ』の『Assign』ボタンを押して、水色のマテリアルを選択をした部分のメッシュに適用します。

6.完成、後は普通のメッシュと同様にアップロードします。




参考
Calculating land impact
https://community.secondlife.com/t5/English-Knowledge-Base/Calculating-land-impact/ta-p/974163
Uploading a mesh model
https://community.secondlife.com/t5/English-Knowledge-Base/Uploading-a-mesh-model/ta-p/974185

2016年7月13日水曜日

llSetPrimitiveParams複数設定

llSetPrimitiveParams系は複数のパラメーターを一度に設定できる。

default
{
    state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }

    touch_start(integer total_number)
    {
        llSetLinkPrimitiveParamsFast(LINK_THIS,
              [ PRIM_TEXTURE, ALL_SIDES,
                      "5748decc-f629-461c-9a36-a35a221fe21f", <1,1,1>,<1,1,1>, 0 , 
     PRIM_FULLBRIGHT, ALL_SIDES, TRUE   , 
     PRIM_GLOW, ALL_SIDES ,0.1 ] 

);
    }
}


メモ
”|”など間に入れてもコンパイルは一応できるが、実行時エラーが出る。(やっちゃダメ)
 エラー文 例
  • llSetPrimitiveParams error running rule #1 (PRIM_FULLBRIGHT): bounds error; 25 is not in (0, 1).
  • llSetPrimitiveParams error running rule #2: need integer prim type.


LlSetPrimitiveParams/ja
http://wiki.secondlife.com/wiki/LlSetPrimitiveParams/ja

2016年7月12日火曜日

ダイアログをアバターが喋ってしまう

ダイアログのボタンをおした時にアバターがボタンの名前を喋ってしまう時
→チャンネル設定のミスが考えられます

ダイアログに設定したチャンネルが有効な範囲外の数字を設定した場合に上記の事が起こるので、桁数を減らしましょう。



セカンドライフで有効なチャンネル 

-2147483647から2147483647
10桁




LlListen/ja

2016年5月25日水曜日

AO種類互換リスト


llSetAnimationOverrideでのアニメーション

"Crouching"
"CrouchWalking"
"Falling Down"
"Flying"
"FlyingSlow"
"Hovering"
"Hovering Down"
"Hovering Up"
"Jumping"
"Landing"
"PreJumping"
"Running"
"Sitting"
"Sitting on Ground"
"Standing"
"Standing Up"
"Striding"    
"Soft Landing"
"Taking Off"
"Turning Left"
"Turning Right"
"Walking"

ZHAO

[ Standing ]
[ Walking ]
[ Sitting ]

[ Sitting On Ground ]
[ Crouching ]
[ Crouch Walking ]
[ Landing ]
[ Standing Up ]
[ Falling ]
[ Flying Down ]
[ Flying Up ]
[ Flying ]
[ Flying Slow ]
[ Hovering ]
[ Jumping ]
[ Pre Jumping ]
[ Running ]
 [ Turning Right ]
[ Turning Left ]
[ Floating ]
[ Swimming Forward ]
[ Swimming Up ]
[ Swimming Down ]
[ Typing ]

ZHAOとLSLの互換

ZHAO / LSL
[ Standing ] / "Standing"
[ Walking ] / "Walking"
[ Sitting On Ground ]/"Sitting on Ground"
[ Sitting ] /"Sitting"
[ Crouching ] /"Crouching"
[ Crouch Walking ] /"CrouchWalking"
[ Landing ] / "Landing"
[ Standing Up ] /"Standing Up"
[ Falling ] /"Falling Down"
[ Flying Down ] /"Hovering Down"
[ Flying Up ] /"Hovering Up"
[ Flying ] / "Flying"
[ Flying Slow ] /"FlyingSlow"
[ Hovering ] /"Hovering"
[ Jumping ] /"Jumping"
[ Pre Jumping ] /"PreJumping"
[ Running ] / "Running"
 [ Turning Right ] / "Turning Right"
[ Turning Left ] / "Turning Left"

[ Floating ] /海。該当なし
[ Swimming Forward ] /海。該当なし
[ Swimming Up ] /海。該当なし
[ Swimming Down ] /海。該当なし
[ Typing ] /該当なし


該当なし / "Striding" 

 アバターがオブジェクトの角に引っかかっているときや、他のアバターの上にいるとき。
該当なし / "Soft Landing" 短い距離を落下したあと。
該当なし / "Taking Off" 離陸





AOメモ
ジャンプ : "PreJumping"→"Jumping"→ Landing"
飛ぶ : "Standing" →"Hovering Up"→"Hovering"
落下 :  "Falling Down"→"Standing Up"(地面着地)→"Standing"
飛行移動 : "FlyingSlow"→"Flying"→"FlyingSlow"

参考
Second Life Wiki > LlSetAnimationOverride

2016年1月11日月曜日

Second lifeの始め方と基本的な操作 2

第一回目はこちら

SL基本操作編

とりあえず最低限のslで遊ぶための操作方法。

・SLの画面

左と下のショートカットアイコンはカスタマイズ可能。
これらはシュートカット以外にも一番上の黒いメニューバー(ミー、コミニュケーションなど…)の何処かに収まってます。

  • 現在地 現在の居場所です。
  • 所持金 現在の所持金です、通貨単位はL$(リンデンドル)。
    • 増やすには公式からクレジットなどで購入、公式以外の換金業者から購入(日本の業者だとslmameの所が有名かな?)、作ったアイテムを他のユーザーに買ってもらうなど。
  • SLでの時間 SLでの時間です。SL内のイベント告知の時間は基本この時間です(SLTと表記することも)。日本だと日本時間が基準の物もあります(JPT)。
  • 持ち物 あなたのSL内のすべての持ち物です、手に入れたアイテムは全てここに入ります。緑色のライブラリフォルダはSL公式が用意したアイテムです。基本捨てられない、たまに増える。
  • チャットパネル "近くのチャット"と書かれているところに文字を入力して、エンターを押すと発言することができる。
  • 移動パネル 移動するときに使います。飛ぶことも可能。

・移動/歩く、飛ぶ

キーボードで移動

移動できない時は環境設定パネルからキーボードで移動を有効にします。
環境設定パネルの一般タブからムーブメントに影響にチェックを入れて右下のOKを押すと有効になります。

移動パネルクリックで移動
パネルは
画面下の"歩行/走行/飛行ボタン"または左上の"ミー>ムーブメント>歩行/走行/飛行"、で取り出せます。

※飛行禁止エリアでは飛行は出来ません。

・テレポート(瞬間移動)をする

second lifeはとても広い上に土地が全て繋がっているわけではないので基本的にテレポートで移動をします。方法は大きく分けて二つあります。

一つ目はLM(ランドマーク)というテレポート地点を記録してあるアイテムをクリックする。持ち物(インベントリ)の中の地球儀のアイコンがLMです。お気に入りの地点を記録することもできます。
LM(ランドマーク)

二つ目はwebプラウザからslurlをクリックしてテレポートをする方法です。
以下のようなアドレスをslurlと言います。
クリックして、ページを開いたらvisit this location ボタンをクリック。
するとSecondlife内で"テレポートしますか?"と聞かれるのでOkを押すとその場所へ移動することができます。

※テレポート先が立ち入り禁止になっていたり、人が沢山集まりすぎていた場合はテレポートに失敗します。

次は見た目の変更方法(着替え)などを説明する予定です。


2015年12月3日木曜日

Blenderでチューブの表面を光が移動するアイテムの作り方

セカンドライフ技術系 Advent Calendar 2015[12/3担当]
複数人で一ヶ月間1日一つ技術系トピックスをあげています。


今回はBlenderでチューブの表面を光が移動するアイテムの作り方です。
わたしこの演出が大好きなのでSLでいっぱい増えればいいなと思いこの記事を書きました。結構簡単にできるので作ってください。




最初に

1.まず素体のチューブを用意します。 Curve機能を使えば簡単。

2.先にUV展開を済ませておく。UV展開方法はここを参考に。
UVマップは横長にする。SLのテクスチャをスクロールさせるスクリプトが横方向にしか流れないため。


3.チューブのメッシュを同じ場所にコピー(Shift+D)する。
このメッシュが外側の光が流れる方のメッシュになります。

外側に面を貼る

1.光のメッシュを選んで『OutLiner』画面の六角レンチアイコンの『Add Modifier』プルダウンメニューから『Solidify』を選択。


2."Even Thickness"と"High Quality Normals"にチェックを入れ、"Fill Rim"(厚みの間に面を貼る)のチェックを外します。
今回は"Thickness"と"Offset"の数値を使います。
"Thickness"の数値は厚みを設定します好きなように調整してください。
"Offset"は厚みを出す位置、どちら側にはみ出すかを設定します。今回はチューブの外側に光を流したいので、プラスの数値を設定します。




3.『Solidify』パネルの『Apply』を押すと確定します。
外側にメッシュができています。

分離をする

内側の頂点をalt+右クリックで選択をして消去する。

これでBlender上の作業は終わりです!
Collada形式で出力してSLにアップロードしてください!


光のテクスチャを用意する

横にスクロールするので以下のような画像だと最初の動画のような光がチューブの周りを撫でるような感じになります。 この画像は個人的な使用ならSLにアップしても構いません。(フリー配布や販売はダメ)
これを外側の光のメッシュに貼ります。
光のテクスチャ

スクリプトを用意する

テクスチャをスクロールさせるスクリプトです。
llSetLinkTextureAnimを使用します。

  llSetLinkTextureAnim(リンクナンバー,ANIM_ON | SMOOTH | LOOP,面,横フレーム,縦フレーム,開始位置番号,毎秒のフレーム数);
スクロールの場合は赤字の部分を変更して調整します。

以下のスクリプトをコピーしてSL内で使用してください。こっちは自由に使用してOKです。タッチをするとスクリプトの入ってるプリムがスクロールを始めます。


default
{
    touch_start(integer num_detected)
    {
   
llSetLinkTextureAnim(LINK_THIS,ANIM_ON | SMOOTH | LOOP,ALL_SIDES,1,1,1,1,0.1);

    }

}


完成!