2010年6月30日水曜日

もう少しで50種類突破っす

データサーバーのメンテナンスみたいっすね。
始まったとも終わったともグリッドステータスに出てないっす。
なんか怖いので、今日は何もしないっす。
どうもぺんぎんっす( ◎v◎ )


ひっそりと作り続けてるラティスっす。
このあたりに見本を置いたっす。
見本は43種類入ってるっす。
地味に多いっす。

目標は100種類なんっすけど、50種類を達成したら、
何個かセットを作る予定っす。
現在は15種類セットが3つ(FAT PACK(A), (B), (C))販売中っす。
さらに3セットくらい作れそうっすね。

さっきまた閃いたカタチがあるんっすけど、今日は無理っすね。
明日以降に作って、見本に追加しておくっす。


ばら売りの要望もないのでセット販売しかしてないっす。
それぞれにパッケージ作るのも面倒だし、お金かかるっすからね。
やるとすれば15種類セットじゃなくて、5種類とかの
小さいセットを作るくらいっすかねぇ。
50種類を達成したら、また考えてみるっす。

2010年6月29日火曜日

1.40.2っす

ソラマメで書いた分も含めると、計400記事となったみたいっす。
数だけは書いてるっすねぇ。
どうもぺんぎんっす( ◎v◎ )


今日はサーバー1.40.2が来るみたいっすね。
全域適用は来月1日の予定らしいっす。
第2四半期中に間に合った…ことにしておくっす。

実験の予定をまとめておくっす。
・動摩擦係数測定
 所要時間:1セット90分*10セット
 結果をまとめる時間を含めると2日で出来そうっす。
・静止摩擦係数測定
 所要時間:1セット9時間半*5セット
 結果をまとめる時間を含めて4日くださいっす。

というわけで、丸々1週間かけてやる予定っす。
実験しても、誰か検証してくれないと…

2010年6月28日月曜日

先行読み込みの効果っす

昨日の投稿がこっちに移って128件目らしいっす。
分かるヒトはニヤッとしておいてくださいっす。
どうもぺんぎんっす( ◎v◎ )


昨日書いた「先行読み込み」についてっす。
先行読み込みがないのと、±1のインデックスのを先行読み込みした
ものを比較すると、明らかに差があるっす。
具体的にどれほどの差があるか、数字で出せれば良いんっすけど、
これは個々の状況にもよるっすから当てにならないっすね。

±1のインデックスのを先行読み込みしたものと、
±3のインデックスのを先行読み込みしたものでも違いは出たっす。
検証のためにキャッシュを何回もクリアするハメになったっす。


実際に試せるように、自宅にでも作っておくっすかね?
面倒なのでやらない可能性が高いっすけどね。

2010年6月27日日曜日

先行読み込みは1つ先だけだと効果薄いっす

最近タイトルが長いような気がするっす。
気を付けるっす…
どうもぺんぎんっす( ◎v◎ )


スカルプテッド・テクスチャを切り替えするスクリプト書いたっす。
難しいことは一切なかったっすね。
さくさくっと書いちゃったっす。

で、テクスチャを切り替えるスクリプトで使われるテクニックに
「先行読み込み」っていうのがあるっす。
例えば現在インデックス3のテクスチャを表示してるとしたら、
前後のインデックス2とか4のテクスチャをどこかに表示して、
切り替わったときにグレーになったり(一般のテクスチャ)、
丸く表示される(スカルプテッド・テクスチャ)のを軽減するっす。
ほぼ必須のテクニックと言っても良いかもっすね。

このテクニックを使っても限界はあるっす。
Touch切り替えの場合だと、連打された場合っすね。
読み込み前に次のに行っちゃうっすから、効果がないわけっす。

とは言え、毎秒10回のTouchに対応なんてやりたくないので、
どこかで妥協することになるっす。
自分の感覚だと毎秒1回のTouchで、±3のインデックスのを
読み込ませれば良いのかと思うっす。
±3っていうのは必要な面の数が6で、ボックス1つで出来る数っす。


ここら辺は考えだしたらキリがないっすねぇ。

2010年6月26日土曜日

イベントでのBANサポートツール(仮)っす

前々からちょっと気になってたっす。
「BANしたりHomeにテレポートさせる」スクリプトっす。
どうもぺんぎんっす( ◎v◎ )


まず方法っす。迷惑行為に対して警告した後っす。
 1.迷惑なアバターの名前を入手
 2.センサーで探してUUIDを取得
 3.llTeleportAgentHomeを実行
 4.llAddToBanListを実行
 5.IMを送る(llInstantMessageを実行)
とやれば可能っす。

では、順番にツッコんでいくっす。

[1.迷惑なアバターの名前を入手]
これは問題ないっすね。
Viewer 2.0以降だと「近くのアバター」で簡単っす。

[2.センサーで探してUUIDを取得]
大問題っすね。
迷惑行為にもいろいろあるんっすけど、「不愉快な発言」より
「オブジェクトを大量にRezする」などのリージョン・パフォーマンスに
影響するような行為の方が多いんじゃないかと思うっす。
そこでセンサーをさらにかけるわけっすからね。
(メモ:llSensorで拾えるのは16個までっす。イベントでヒトが
たくさんいる場合、複数回に分けて実行する必要があるっす。)
簡単な方法でUUIDが取得できればここは問題ないんっすけどね。

[3.llTeleportAgentHomeを実行]
[4.llAddToBanListを実行]
準備段階で土地のオーナーに設置してもらう必要があるっすね。

[5.IMを送る(llInstantMessageを実行)]
メッセージは考えてくださいっす。


実際に作るとすると、
 0.土地のオーナーがオブジェクトを設置
  (土地がグループ譲渡されてる場合はオブジェクトも譲渡)
 1.イベントスタッフに共通のチャンネル(Say/Listenのチャンネル)
  を伝えておく
 2.迷惑なアバターの名前を、そのチャンネルでSay
 3.オブジェクトでListenして、センサー実行
 4.Homeへテレポート→BAN
 5.IMを送る
っていう風になるっすかねぇ。
迷惑なアバターの名前を伝えるのはノートでもOKっす。
何でも良いんっすけどね。


名前じゃなくて、UUIDが必要なのが問題なんっすよねぇ。
このせいで実用性・実現性がガクッと落ちてるっす。
アイデアとしては面白いんっすけどねぇ。

2010年6月25日金曜日

連打対策っす

http://lsl-users.jp/codehighlight/を利用させてもらったっす。
ど、どんなもんっすかね?
どうもぺんぎんっす( ◎v◎ )


いつもとは趣向を変えて、ちょっと問題っす。
以下のコードをオブジェクトに入れて、touchしまくるっす。
連打っすね。
このとき、オブジェクトはどんなふうにOwnerSayすると思うっすか?
(連打を約1.5秒間続けた場合について考えてみてくださいっす)

[A]
reset
touch_start: 1
link_message: 1
touch_start: 2
link_message: 2

[B]
reset
touch_start: 1
link_message: 1
touch_start: 2
link_message: 2
touch_start: 3
link_message: 3
以下連打した回数続く

[C]
reset
touch_start: 1
touch_start: 2
link_message: 1
link_message: 2

integer count;
default
{
state_entry()
{
llOwnerSay("reset");
count = 0;
}
touch_start(integer total_number)
{
count++;
llOwnerSay("touch_start: " + (string)count);
llSleep(1.0);
llMessageLinked(LINK_THIS, count, "", "");
}
link_message(integer sender_num, integer num, string message, key id)
{
llOwnerSay("link_message: " + (string)count);
}
}
答えは試してみれば分かるので書かないっす。

touch_startとlink_messageじゃなくて、
moneyとdataserverなベンダーも考えられるっすね。
その場合は悲惨なことになるわけっす。
この辺が「ノートの読み込みは最初に全部すべし」の理由なんっすね。


連打じゃなくても「ほぼ同時」のケースでも起こりそうっす。
何かうまいこと処理してやらないといけないっすね。

2010年6月24日木曜日

まだ1.40来ないっすね

blogにviewer 1.23.5が引き続き使用できる旨の投稿があったっす。
60日ルールは適用しないんっすね。
どうもぺんぎんっす( ◎v◎ )


今回のサーバーバージョンアップも2回に分けての予定だったっす。
1回目が16日の日本時間23時から(全体の20%)、
2回目が23日の日本時間23時から(残り全部)の予定っす。
でも1回目のときに何かあったらしく、1.38にロールバックされたっす。
それから何も発表がないっすね。

7月に入るとごたごたするもんっすから、物理の実験を早くしたいっす。
次にまとまった時間が取れるのは11月になるっすからね。
あ、誰か代わりにやってくれるんなら良いっす。


まだ何も発表がないってことは、まだ先になるんっすかねぇ?

2010年6月22日火曜日

Bセットは不人気みたいっす

なぜか最近、ラティスのセットが売れてるっす。
今月分の土地代はラティスの売上だけで出たっす。
急に何なんっすかね?
どうもぺんぎんっす( ◎v◎ )


ラティスは現物の展示はしてないんっすよねぇ。
種類がたくさんあって、場所もプリムも食うっす。
そこで、テクスチャ・チェンジャーを作ろうと思うっす。
スカルプテッド・オブジェクトもテクスチャっすからね。

使う関数がちょっと違うだけっすね。
SLPPF(llSetLinkPrimitiveParamsFast)を使うっす。
PRIM_TYPE_SCULPTっていうのが用意されてるっす。
あとはUUIDとタイプ(平面とか球とかのあれっす)を指定するっす。

ノートに「この番号はXセットに入ってます」っていうのを書いて、
切り替わる度に読み込んで表示(フローティング・テキスト)と
やりたいんっすけど、ノート読み込みのディレイがネックっす。
連打に弱くなるっすね。
テクスチャの読み込みが終わるまではタッチしないとは思うんっすけど、
絶対とは言い切れないっすからね。
(ランタイム・エラーで)死ぬわけじゃないので、迷うっす。


ちゃっちゃっと作っちゃうっす。

2010年6月21日月曜日

まだ先なんっすけど、準備はするっす

サーバー1.40の全域適用が間近に迫ってるっすね。
Havok7が楽しみっす。
どうもぺんぎんっす( ◎v◎ )


さて、デジアカの講師依頼の件っす。
第1回目の原稿はほぼ書けたので、2回目以降の作戦っす。
メインでやることは見本の提示と、その説明になるっす。
おまけもあるんっすけどね。

考えてる順番は、
 ・まず見本のスクリプトを見てもらう
 (・自力で改造できるヒトは組み替えて遊ぶ)
 ・解説
   ・基礎部分の説明
   ・見本の説明
 ・実習
 ・質疑応答
 ・小ネタ
 ・次回までの宿題
と、ここまでで90分っす。
上から順番にこなしていくっす。

ポイントは、出来るヒトは勝手にやってもらうことっすね。
出来るヒトを下のレベルに合わせることはしたくないっす。
退屈しちゃうっすからね。
(出来るヒト向けにネタを仕込めば退屈しないかもっすね)
周囲にちょっかい出さなければ、ガンガンやってもらうっす。

あと、あんまりガリガリやりたくないんっすけど、
ある程度は基礎的な解説も必要だと思うっす。
ifとかforだったり、イベントだったり、パーミッションだったりっすね。
目標は15行で説明っす。長くても25行に収めたいっす。
時間にして2分から5分までっすね。
なんとかするっす。


アンケートの結果待ちなんっすけど、基礎のところの
原稿は作り始めるっす。
入学式などは7月の中旬みたいっすね。

2010年6月19日土曜日

ほぼ決定っす

隠せてないっすけど、これまで「頼まれごと」として書いてた件っす。
先ほど受けるとお伝えしたので、ほぼ決まりっす。
どうもぺんぎんっす( ◎v◎ )


では、さっそく発表っす。
デジアカでスクリプト講座の講師をすることになったっす。



……あれ?










デジアカでスクリプト講座の講師をすることになったっす。
反応が薄そうだったので2回書いたっす。

日程は未定っす。
金・土・日のどれか、隔週で22:00(日本時間)からの予定っす。
まだ分かんないっすよ。
決まり次第、報告するっすけどね。

全部で6回あるっす。
期間にして3か月っすね。
期間中は数をこなしてもらうことになるっす。
山盛りの宿題ってわけっすね。
でも必要最低限に留めるようにはするっすよ。

受講は「入学」された方だけになるみたいっす。
ログは誰でも読めるようにするっす。
要点をまとめたモノは書くかもっす。
「かも」っすよ!

えーっと、あとは何があったっすかね…
あ、アンケートっす。
全6回で「何か」を最終的に作ってもらう流れっす。
その「何か」をアンケートをもとに決めるっす。
太っ腹っす。
体型のことじゃないっすよ。

よくあるスクリプト教室とは違うこと・進め方をするっす。
まずは「自力で調べることができる」ことを目標にやるっす。
調べれることができれば、あとは勝手にできるっすからね。
いちいち関数についての説明をするのが面倒だから、
っていうのもあるんっすけどね。


それなりに期待してもらって良いんじゃないっすか。

2010年6月18日金曜日

特に何もする必要はないみたいっす

Havok7については来週から調査するっす。
オブジェクトを9時間以上放置する必要があるっすから、
自宅じゃないとできないわけっす。
どうもぺんぎんっす( ◎v◎ )


新しくなるXStreetSLについてのお知らせが来てたっすね。
メールっすよ。
さらにblogでも書いてあったっす。
すでに出品してある分は自動で引き継がれる模様っす。
なので何もしなくても良いわけっすね。

オフィシャルの記事の中ではXStreetSLよりも
SL Marketplaceっていう記述の方が多いように思うっす。
wikiもMarketplaceでページが作ってあるっすね。
どっちであっても、分かれば良いわけなんっすけど、
今後は7:3くらいでMarketplaceの方を使っていこうと思うっす。


いや、ホント、どっちでも良いっすね。

2010年6月17日木曜日

3年目突入っす

RezDayとかいうやつっす。
2008年からなので丸2年っすね。
どうもぺんぎんっす( ◎v◎ )


気になる話が1つあるっす。
LindeXのレートに大きな変動があったみたいっすね。
Mさんが書いてるっすから、よっぽどの事があったみたいっす。
気になるヒトは調べてくださいっす。

ここ1年間で作ったモノの総数をカウントしてみたっす。
in-worldに持ち込んだ分だけを数えてみたっす。
ゴミ箱送りになった分も含んでるっす。
オブジェクト: 2,167
テクスチャ: 240
スクリプト: 598
サウンド: 4
アニメーション: 3
ノートカード: 57

オブジェクトが多いのはスクリプトのテストに使ってるからっすね。
大量のObjectっていうオブジェクトがゴミ箱送りになってるっす。
オブジェクトだけでなく、全体の95%以上はゴミ箱行きっす。

とは言え、コレが多いのか少ないのかサッパリっすね。
「作った数」っていう指標がどこにもなかったもんっすから、
ひそかにカウントしてたっす。


役に立たない指標なんっすけどね…

2010年6月16日水曜日

1.40とHavok7っす

予定通りサーバーのアップデートが入ったっす。
物理エンジンもHavok7になるっす。
まだ試してきてないんっすけどね。
どうもぺんぎんっす( ◎v◎ )


物理は、いじってみないと分かんないっすね。
なので他の部分をリリースノートで見てみるっす。

まずスクリプトの新関数・新フラグっす。
PRIM_NAMEとPRIM_DESCフラグが加わったっす。
これはllGet/Set(Link)PrimitiveParamsで使えるっす。
ノートカード読み込みだとDelayある(0.1秒+α)っすけど、
Descを読むのにはDelayなしっすね。
使い道は広いっすね。

新関数llGetLinkNumberOfSides…ビミョーっす。
まだwikiに載ってないんっすけど、Linkを取ったのならあるっす。
「プリムの面の数を取得する」ってやつっす。
ボックスなら6が返ってくるっす。
これのLink版なわけっすね。
プリムの面の数が関係しそうなモノにはまだ出会ってないっす。
有効な活用方法があれば教えてくださいっす。
未だ有効な活用方法が分からないナゾ関数っす。


あとHTTP Texturesとか、テレポート周りのバグが直ったとかっすね。
これも調べてレポートするっす。
あ、摩擦関係も調べなおしっすね。

2010年6月13日日曜日

顔文字で遊んでみるっす

好評の小ネタシリーズっす。
今回は実用性皆無っす。
どうもぺんぎんっす( ◎v◎ )


LSLを顔文字で書いてみるっす。
「LSL」じゃないっすよ。「LSL」っす。

きっかけは
for(;;){;;}
っていう無限ループからっす。
これはLSLだと通ってくれないっす。条件式を要求されたっす。
なので
integer A;
for(;A;) {;;}
としたっす。
ここまで来ると別にfor文じゃなくても良いっすね。

というわけで、さらに遊んでみるっす。
integer OvO = 0xCAFE;
integer q = 0xBEEF;
integer v = 0xFACE;
integer o = 0xFEED;

(OvO) -q- (v^o^v);


16進数も足してみたんっすけど…イマイチっすね。

2010年6月11日金曜日

貰えるもんなら貰っておくっすよ?

リンデンラボ社で人員整理があったみたいっすね。
業務の引き継ぎとかは出来たんっすかねぇ?
その辺はクリアされてるとは思うんっすけどね。
どうもぺんぎんっす( ◎v◎ )


自分ですら忘れそうだったっす。
RezDayというやつっすね。
6月17日っす。
2008年スタートなので、これで2年になるっすね。

RezDayだからと言って、特別なことをするわけでもないっす。
いつも通りっす。
「あぁ、2年経った」で終了っす。


しばらく更新頻度が落ちてたっすけど、ひと段落したので
前のペースに戻せそうっす。
内容は無いy・・・いや、なんでもないっす。

2010年6月7日月曜日

7月からみたいっすね

正式なアナウンスがあるまで「頼まれごと」としておくっす。
バレちゃってるんっすけどね。
気持ちの問題っす。
どうもぺんぎんっす( ◎v◎ )


6月末かと思ってたら7月に入ってからなんっすね。
準備はしてるもんっすから、いつだって構わないんっすけどね。

ガッツリはやらない予定なんっすけど、でもある程度は必要っすね。
例えばifとかfor/whileの制御構文は覚えないといけないっすよね。
さらっとイケるもんなんっすかねぇ?
1回につき90分しかないっすから、時間が足りないっす。

作戦は
 ・最初にさらっと(目標5分)
 ・あとは出てくる度に解説→やってるうちに覚えるんじゃない?
で、どうっすかね?

しつこいみたいっすけど、とにかく時間がないっす。
なので膨大な量の「宿題」をこなしてもらうことになるっす。
2週間あるわけっすから、何とかなるんじゃないっすかね?


ガッツリやらないにしても、さじ加減が難しいっすねぇ。

2010年6月4日金曜日

いや、バグじゃないっすよね

帰ってきたrotationっす。
自分は「こうなるものだ」として覚えちゃったっす。
一般的にはどうなんっすかね?
どうもぺんぎんっす( ◎v◎ )


「子プリムをr回転させる」
っていうのを考えるっす。
いつものケースっすね。

ハマるのはllSetRotを使うときっす。
まず結論として、
ローカル座標系で設定するときには
llSetRot(r / llGetRootRotation())
と、ルートプリムの回転で「/」演算してやる必要があるっす。
「*」じゃないんっすよね。

たとえばっすけど、ベクトルで
AB = OB - OA (上に矢印を想像で付け加えてくださいっす)
っていうのがあるっすよね。
rotationも同じイメージでいけないっすかね?
あくまでイメージっすよ。
出来上がり = 設定したい回転からルートの分だけ逆回転
みたいな感じっす。


三角関数で「こうなるよ」って示した方が良いんっすかね?
紙でゴリゴリやるのは簡単なんっすけどね。
ブログ用に打ち直すのがメンドイっす。

2010年6月1日火曜日

+αのネタ候補っす

持ち物が500個くらい減ってたっす。
全持ち物数の2割に相当する数っす。
キャッシュクリアで直るんっすけどね。
ちょっと焦ったっす。
どうもぺんぎんっす( ◎v◎ )


必須ではないんっすけど、話しておいた方が良いネタもあるっす。
・グリーファーにならないために(安全講習)
・バグの調べ方・報告方法(JIRA部)
・LSLEditor(テキストエディタの紹介)
・今後の展望(新関数など)
などなど…

やることが全部終わって、時間があるなら入れていくっす。
俗に言う時間稼ぎっす。


ネタとその内容は調整がいるっすけど、とりあえず書いてみるっす。
Free Avatar