2010年4月30日金曜日

企画は初っすね

今日もネットワーク関係のメンテ(増強?)があるっすね。
グリッドステータスにRESOLVEDが付くまでおとなしくしてるっす。
どうもぺんぎんっす( ◎v◎ )


イベントを企画してみたっす。
すでに別のブログを立ち上げて、概要とかは書いてあるっす。
[ビジネスプラン発表会 in SL]
http://slbizplan.blogspot.com/
そのまんまストレートなタイトルなので説明は要らないと思うっす。

そんなに堅苦しいものにはしないっす。たとえば・・・
「こんなモノを作っています。そこで、販売する場所を探しています。」
「こんなのを企画しました。実験・検証に協力してもらえませんか?」
「こんなのがあると良いと思います!誰か作ってやりませんか!」
などなど、どんなものでも良いっす。

(RLなら「販路拡大」とかカテゴリーを分けてやるんっすけど、
初回で応募数が読めないこと等も考慮して分けないっす)


発表者締め切りは6/6(日)の1週間前までなので、5月いっぱいまでっすね。
誰もいなくても言い出しっぺの自分はやるっす。
応募待ってるっすよ。

Free Avatar

2010年4月27日火曜日

3つのパラメータを設定してもらう方法っす

ソラマメにも書いたので1日2本の強行軍っす。
天気が悪く、外で仕事しなかった分だけ体力余ってるっす。
こういう日には文章量も多目になるっすよ。
どうもぺんぎんっす( ◎v◎ )


パーティクル作成ツール(名称未定)っす。
PSYS_PART_START_COLORとかの色設定の部分は
カラーピッカーで対応したのは前にも書いたっす。
PSYS_SRC_ACCELとPSYS_SRC_OMEGAっていう
面倒なモノが残ってるっす。
さらに加えるとPSYS_PART_START_SCALEもそうっすね。

これらの値はvectorなので、工夫してやる必要があるっす。
上矢印+下矢印を3つ並べるだけでも良いんっすけど、芸がないっすね。

とりあえずは矢印セットを3つ並べるタイプのを作るっすけど、
良い案があれば教えてくださいっす。


まずはカタチにするのが先っす。

2010年4月26日月曜日

ご要望にお応えして・・・っす

移ってきてから99本目っす。
珍しいSSを貼らないSLブログっす。
文章量が少ない時は疲れてるときっす。
最近の文章量から察してくださいっす・・・
どうもぺんぎんっす( ◎v◎ )


コソコソ作ってるパーティクル作成ツールっす。
要望等が多数来てるので、仕様変更するっす。

・オーナーのみ操作可能
  最終的な出力をllOwnerSayで出来るのは大きいっす。
  でもパラメータはフローティングテキストで見えてるっすよね・・・
・初期パラメータをノートで設定可能
  例外処理は面倒なんっすけど、あれば便利っす。
・低プリム化(60→30)
  砂場以外の作業場で使用することを想定しないといけなくなったっす。


大きい所だとこんな感じっす。
そろそろカタチにしないとっすね。

2010年4月24日土曜日

乗り気じゃないんっすけどね

自分がJIRAに上げた案件はEXTへ移されたっす。
Nice to haveでも良かったような気もするっす。
どうもぺんぎんっす( ◎v◎ )


前々から要望をもらってるんっすけど、あんまり乗り気じゃないっす。
vector ・ rotationについて教えてほしいということなんっすけどね。

やるとすれば1コマ60分として
 ・三角関数のおさらい(1コマ)
 ・vector(2コマ)
 ・rotation(2コマ)
と、ざっと5時間のコースっすね。
対象は「昔のことなので算数は忘れた」くらいのレベルの方っす。
やってるうちに思い出すとは思うんっすけどね。


乗り気じゃないんっすけど、資料を少しずつ作ってるっす。
乗り気じゃないっすよ!

2010年4月22日木曜日

JIRAに初投稿っす

すっごく小さいバグを見つけたので報告してみたっす。
方法と手順をまとめてみるっす。
どうもぺんぎんっす( ◎v◎ )


バグを見つけたら・・・
[[ 報告する前に ]]
A.他の人でも同じことが起こるか
B.再現する手順
C.同様のことが既に報告されていないか
以上のことを確認しておく。
既に報告済みならVote(必要に応じてコメントも付加する)。

準備ができたら、いよいよフォームに書きこむっす。
(Torlyのビデオチュートリアル観れば分かるっすけどね)
1.ページの右上のloginからログイン
2.CREATE NEW ISSUEをクリック
3.Projectは
 ・インベントリーがおかしい
 ・ビューワがクラッシュする
 ・日本語訳が変
 とかならVWR

 ・物理プリムの動き
 ・スクリプト一般
 ・SIMに遅延が発生
 とかならSVC
 この2つの違いが何となく分かってればOKっす。
 他のは滅多に使わなかったり、読めば分かるっすね。
4.Issue Typeはバグ報告なのでBug(赤丸)
5.いよいよここから英語っす。
 Summary-分かりやすいタイトルを。
 Priority-著しくパフォーマンスに影響するくらいでCriticalっす。
   Showstopperはなかなかお目にかかれないっすね。
   逆にNice to haveもレアものなんっすけどね。
   あとで指摘されて変わることもあるっすから、
   思った通り付ければ良いと思うっす。
 Affects version/s-[Ctrl]キーを使って複数選択可能っす
 Environment-コピペ
   2.0だと
   ヘルプ→Second Lifeについて→クリップボードにコピー
   で、そのままEnvironmentに貼りつければOKっす。
 Description-英語で頑張って説明っす。
   ポイントは完全な再現手順を示すことっすね。
   その結果どうなるのかも書かなきゃダメっすよ。

以上が報告に必要なことっす。
説明するのに画像とか動画があれば添付することもできるっすよ。


ビューワの日本語訳がおかしいor英語のままの部分は
Rikaさんに直接持って行けば直る(というか直す)かもっす。
サマータイムなので金曜25:00(土曜深夜)にHawkshead SIMっす。
せっかくなのでSlurlも載せておくっす。
ここの上空(120m?)でやってるので、気付いた点があれば
(むしろ無くても)時間があればどうぞっす。

何やらエラーメッセージから全部訳していくみたいっすからね。

2010年4月21日水曜日

カラーピッカーっす

これがBloggerに移ってきてから96本目みたいっす。
100本目は目の前っすね。
かと言って、特別何もないっすよ。
どうもぺんぎんっす( ◎v◎ )


いろいろ作りかけなんっすけど、今回はパーティクルっす。
パーティクルそのものじゃなくて、それを作るためにツールなんっすけどね。

かなり贅沢にプリムを使ってるっす。
おそらく64から70プリムの間になるっす。
削ろうと思えばそこそこ削れるんっすけど、とりあえず作ってみるっす。

ちょっと問題になったのが「色」をどうやって決めるかってことっす。
スタートカラーとエンドカラーの2種類あるっすね。
R,G,Bそれぞれに増減ボタン付けるのはダサイっす。
2ボタン * RGB 3種類 * スタート・エンド 2種類
も使うことにもなるっすからね。

そんなわけで簡単なカラーピッカーを作ってみたっす。
選べる色は64種類(=4*4*4)っす。
個別のテクスチャを使う場合が多いっすから、白は選びやすくしないとっすね。


ここが完成すれば、あとはスクリプトをささっと書くだけっす。
今月中にテストバージョンができれば良いっすね。

2010年4月20日火曜日

どれくらい難しいのか分かんないくら難しいっす

今回からフォント変えてみるっす。
コード載せたりすると見難かったっすからね。
どうもぺんぎんっす( ◎v◎ )


シミュレートされてる風へのリベンジマッチっす。
単純には行かないとは思ってたっすけど、手強すぎるっす。
にキビシイ1文があるっす。
some pseudo stable chaos magic
つまりカオスがどこかに入ってるっす。

カタチの分からないもんっすから、カオスの影響を除去するのは大変っす。
というか、自分の腕では出来ないかもしれないっす。
差を見ていくだけで分かるような単純なモノじゃない可能性大っす。


実は胡散臭い奥の手は用意してあるっす。
できれば使いたくないんっすけどね・・・

2010年4月19日月曜日

風っす

リベンジ決行っす。
今度こそやるっす。
どうもぺんぎんっす( ◎v◎ )


「llWindで得られる値を自作関数でも出してやろう」
というお題っす。
これが出来れば予測が可能なわけっす。
もう一回どこかに記述がないか探してみたっす。

で、見つけたっす。
日本語訳もすでに付いてたっす。
06年11月からは3年以上経ったのにもかかわらず動きナシとかいう
ツッコミもしたいっすけどね。

ざーっと読むと、
[非圧縮の流れにおけるナビエ-ストークス方程式]
の気配っす。
幸いなことに3次元じゃなくて2次元なのでちょっとは簡単っす。
微分方程式なので精度も問題になりそうっす。


SIMを256のブロックに分割(1ブロック16m*16m)に分割して、
ブロックの中央部分のllWindを取ってみるっす。
0.5秒ごとに値が変わってるみたいっすから、
連続3秒分くらいでやってみるっす。
メールで送る時には分割して送らないとっすね。

2010年4月17日土曜日

動摩擦係数っす

実験結果が届いたのでまとめてみたっす。
table使ってみたんっすけどどうっすかね?
どうもぺんぎんっす( ◎v◎ )


[方法]
1.llSetForceでとりあえず動かす
2.llSetForce(ZERO_VECTOR, FALSE)を実行
3.現在位置と速度を取得
4.止まるまで待つ
5.止まったら位置を確認

「運動エネルギーが摩擦力による仕事に全て変わった」として、
1/2mv2 = μ'mgL
整理して
μ' = v2 / 2gL
(μ':動摩擦係数, v:最初の速度, g:重力加速度(=9.8), L:移動距離)
という計算から求める。

・1セット7回の試行
・7回の試行のうち最大値をそのセットの値とする
で、10セット行ってみた結果が↓っす。

10セット分の集計
箱-土台最小値最大値平均標準偏差中央値
S-S0.5387090.6280380.5886790.0314370.590351
M-S0.3921790.4360660.4208230.0130760.422432
G-S0.3521050.3656990.3589320.0044900.359631
W-S0.4705790.5488140.5186890.0223870.523113
F-S0.5305400.6453540.6016080.0369700.609567
P-S0.4137630.4447750.4323870.0095870.434286
R-S0.3527280.4300030.3874060.0291390.386396
S-M0.3849740.4351010.4189110.0161390.421449
M-M0.2661080.2801690.2713340.0044860.270401
G-M0.2171390.2261220.2225940.0028570.222506
W-M0.3687400.3896710.3803030.0075960.383586
F-M0.4117730.4498700.4296550.0131730.427855
P-M0.3033820.3211300.3169340.0053860.317517
R-M0.4248380.4572580.4436960.0106550.446955
S-G0.3483430.3662240.3584000.0058210.356913
M-G0.2132620.2265700.2194060.0038330.219113
G-G0.1814530.1887160.1850590.0021460.184841
W-G0.3193510.3415590.3268390.0067400.327044
F-G0.3593680.3942360.3772690.0104380.379260
P-G0.2647410.2796630.2695520.0043840.268724
R-G0.3463450.3815450.3614930.0121670.363774
S-W0.5023180.5495620.5255050.0142560.524375
M-W0.3679050.3889270.3811970.0066260.383724
G-W0.3162870.3348740.3257180.0058880.326836
W-W0.4275300.4938960.4711030.0204320.477770
F-W0.5120290.6086490.5708160.0268790.569356
P-W0.3961450.4447350.4212810.0135360.425358
R-W0.5506200.6223720.5769300.0200010.572483
S-F0.5660200.6334250.5985670.0206040.597711
M-F0.4104380.4353120.4210130.0088020.423239
G-F0.3633970.3845690.3745370.0071990.374886
W-F0.5404110.6088870.5801040.0214110.579676
F-F0.5682530.6611490.6112410.0320920.601826
P-F0.4926480.5175660.5031570.0080780.500926
R-F0.5795980.6661520.6351520.0285850.637841
S-P0.3988650.4646870.4324950.0189250.436649
M-P0.3107130.3299580.3205180.0050540.320163
G-P0.2603790.2772130.2689950.0048130.267869
W-P0.3904620.4329170.4138500.0133500.412794
F-P0.4700180.5272820.5101540.0168180.513468
P-P0.3485700.3695350.3594420.0073400.360789
R-P0.4393850.4938330.4655900.0181790.466838
S-R0.3418710.4405090.4016860.0317610.408341
M-R0.4377480.4645100.4480810.0082250.446609
G-R0.3401270.3640650.3544100.0086620.354724
W-R0.5142000.6088600.5607560.0268710.561765
F-R0.5836610.6534860.6184130.0241800.621081
P-R0.4356990.4940330.4677680.0181110.468713
R-R0.5884030.6729470.6319660.0263500.627329





結果の分析とかは明日書くっす。

2010年4月16日金曜日

失敗を糧にっす

実験には失敗がつきものっす。
でも周囲の安全だけは確保しておかないとっすね。
どうもぺんぎんっす( ◎v◎ )


動摩擦係数の測定、今度は上手く行きそうっす。
プリムを薄くする作戦は大成功っす。
力加減も静止摩擦係数を参考に微調整したっす。
近日結果は公表できそうっす。

「なんか最近同じネタ多くない?」とか言われるんっすけど、
ネタはたくさんあるっすよ。
今日だってviewer2.0.1(beta)のこととかもあるわけっす。
(今日は書かないっすけどね!)
パーティクル作成ツールは60プリムになりそうだーとか、
ちよりんアワーは今日も平和とか、ホントいろいろあるっす。
決してネタ切れしてるわけじゃないっすよ。



ま、まぁ、今日は書くことないので、これ位で良いっすかね?

2010年4月15日木曜日

リンク番号をフローティングテキストに!っす

1.38の新関数を使った小ネタっす。
プリムとプリムが重なってると見難くて使えないっすけど、
それなりに便利っす。
どうもぺんぎんっす( ◎v◎ )


論よりソースということで、さっさと載せるっす。


integer flag;
integer listen_handle;

default
{
  state_entry()
  {
    flag = FALSE;
    listen_handle = llListen(0, "", llGetOwner(), "");
  }
  on_rez(integer start_param)
  {
    llResetScript();
  }
  touch_start(integer total_number)
  {
    flag = !flag;
    if(flag)
    {
      llOwnerSay("TEXT ON");
      integer i = llGetObjectPrimCount(llGetKey());
      for( ; i > 0; i--)
      {
        llSetLinkPrimitiveParamsFast(
          i,
          [PRIM_TEXT, (string)i, <1.0, 1.0, 1.0>, 1.0]
        );
      }
    }
    else
    {
      llOwnerSay("TEXT OFF");
      llSetLinkPrimitiveParamsFast(
        LINK_SET,
        [PRIM_TEXT, "", <1.0, 1.0, 1.0>, 1.0]
      );
    }
  }
  listen(integer channel, string name, key id, string message)
  {
    llListenRemove(listen_handle);
    if(message == "on") // 小文字注意!
    {
      flag = TRUE;
      llOwnerSay("TEXT ON");
      integer i = llGetObjectPrimCount(llGetKey());
      for( ; i > 0; i--)
      {
        llSetLinkPrimitiveParamsFast(
          i,
          [PRIM_TEXT, (string)i, <1.0, 1.0, 1.0>, 1.0]
        );
      }
    }
    else if(message == "off") // 小文字注意!
    {
      flag = FALSE;
      llOwnerSay("TEXT OFF");
      llSetLinkPrimitiveParamsFast(
        LINK_SET,
        [PRIM_TEXT, "", <1.0, 1.0, 1.0>, 1.0]
      );
    }
    else if(message == "ガッ") // 半角カタカナ注意!
    {
      llOwnerSay("TEXT OFF & REMOVE");
      llSetLinkPrimitiveParamsFast(
        LINK_SET,
        [PRIM_TEXT, "", <1.0, 1.0, 1.0>, 1.0]
      );
      llRemoveInventory(llGetScriptName());
    }

    listen_handle = llListen(0, "", llGetOwner(), "");
  }
}




ざっくりと説明すると、
1.スクリプトをプリムに入れる
2A.Touchする → 表示-非表示切り替え
2B.パブリックチャンネル(=0チャンネル)でオーナーが…
 on → テキストON
 off → テキストOFF
 ガッ → テキストOFF & スクリプト削除


1.38で新しく来たところについては太字にしてあるっす。
参考にどうぞっす。

[2010/04/16]
listenイベントも追加したっす。
メッセージはテキトーに変えてくださいっす。

2010年4月14日水曜日

精確さに欠けるっす

サーバーメンテナンスのお知らせが出てたので、
明日までおとなしくしてるっす。
どうもぺんぎんっす( ◎v◎ )


動摩擦係数を調べてるわけなんっすけど、計測しづらいっす。
最初にllSetForceで動かす必要があるんっすけど、
箱の後部が浮いてる状態になることが多々あるっす。
さらに悪くて、箱が転がることもあるっす。
土台の上をスーッと滑ってる状態じゃないとダメっす。

対策として
1.箱の形状を薄く
2.Forceの値を小さく
っていうのを考えてるっす。


ちょっと時間かかるかもっすねぇ・・・

2010年4月13日火曜日

パーティクル作成ツールっす

1.38サーバー用のネタとして作ってみるっす。
売り出すかどうかは未定っす。
どうもぺんぎんっす( ◎v◎ )


「設定すべきパラメータが多いパーティクルの関数を
あれこれオブジェクトをいじるだけで簡単に作ることが可能」
っていうのがパーティクル作成ツールなわけっす。
llLinkParticleSystemを使いまく・・・らないっすよ。
確認するには1つのプリムからパーティクルが出れば良いわけっすから、
メインのスクリプトを入れる場所だけの問題っす。

使いまくる関数はllSetlinkPrimitiveParamsFastのPRIM_TEXTフラグっす。
要はフローティングテキストもメインのスクリプトからいじりたい
ってことっす。
パラメータを変更させるボタンそれぞれにllSetTextを仕組むのは面倒、
かつスクリプトの本数が増えるっす。
ぎゅっと出来るなら、ぎゅっとしちゃった方がベターっす。

こんな風なことを考えてるっす。
・[オーナーだけ操作可能]と[誰でも操作可能]は切り替え出来る
 →砂場で集まって遊べたら良い?っていうので付けてみたっす。
・出力されるのは関数形式
 →llParticleSystem(list rules);のカタチっす。
・細かい数値調整にも対応予定
 →数値*刻み幅として2つのパラメータを入力してもらうっす。
  「スライダー形式」とかも考えたんっすけどね。
  HUDじゃないもんっすから、スライダーはキビシイっす。

細かい数値調整は、どうせ後から数字いじれるっすから不要かもっす。
0.01単位でいじれれば良いかもっすね。


HUDにしなかったのは
1.サイドバーもあるので画面が狭くなる
2.砂場で遊ぶには不向き
っていうところからっす。


だいたい30プリムくらいには抑えたいんっすけど、
どうなるのかは不透明っすねぇ。

2010年4月12日月曜日

静から動へっす

LSL-BBSに静止摩擦係数のことは書いたので、何とかしてくださいっす。
やることを一通りやったら、また測定に戻るかもっす。
どうもぺんぎんっす( ◎v◎ )


「静止」の次は、当然「動」となるわけっす。
作戦はすでに練ってあるっす。

1.llSetForceでとりあえず動かす
2.llSetForce(ZERO_VECTOR, FALSE)を実行
3.現在位置と速度を取得
4.止まるまで待つ
5.止まったら位置を確認

「運動エネルギーが摩擦力による仕事に全て変わった」
とすれば、上の方法で大丈夫なはずっす。

1/2mv2 = μ'mgL
整理して
μ' = v2 / 2gL
(μ':動摩擦係数, v:最初の速度, g:重力加速度(=9.8), L:移動距離)
という計算から求められるはずっすね。

力を加えることをやめた瞬間から現在位置と速度を取得する前までの
わずかな時間の間で、位置も速度もわずかにズレる可能性が大きいっす。
その場合でも大丈夫な方法のはずなので、とりあえずやってみるっす。


しかし、この式、すごく懐かしいっすねぇ。

2010年4月10日土曜日

さらに測定っす

まだまだ数字が精確じゃないので、また実験してみたっす。
Havok7が来る前にケリを付けるっす。
どうもぺんぎんっす( ◎v◎ )


動いたかどうかの判定基準を厳しくしたっす。
0.010m/s → 0.001m/s
として、実験を行ったっす。

結果を載せるっす。
・1セット5回の試行
・5回の試行で最大値をそのセットの結果とする
・これを3セット行い、最頻値(mode)を出す
っていうふうにしたっす。
ここは前回と同じっすね。

[Stone]
S: 0.816001
M: 0.527001
G: 0.460999
W: 0.715001
F: 0.872001
P: 0.594919
R: 0.872170

[Metal]
M: 0.344583
G: 0.287083
W: 0.476500
F: 0.562501
P: 0.410500
R: 0.562001

[Glass]
G: 0.242000
W: 0.410500
F: 0.476500
P: 0.345000
R: 0.476499

[Wood]
W: 0.627501
F: 0.764001
P: 0.527000
R: 0.764001

[Flesh]
F: 0.916001
P: 0.627500
R: 0.931501

[Plastic]
P: 0.461000
R: 0.627501

[Rubber]
R: 0.916001


FleshとRubberはどっちが大きい?っていう大きな問題は、
ここへ来てイコールの可能性が出てきたっす。
全く分からなくなってきたっす。

2010年4月9日金曜日

摩擦の実験で使ってるスクリプトっす

とりあえず出しておくっす。
細かい数字は実験しながら修正していけば良いっすね。
どうもぺんぎんっす( ◎v◎ )


数値はちょっと修正したっす。
結果のメールは1日動かしても5本来るか来ないかの感じっす。
さっき修正したバージョンを動かしたばっかりなもんっすから、
どれくらいの間隔で届くのかは勘っす。
修正前で1日3本のメールが来てたっすから、たぶんそれくらいっすね。

我ながら気持ち悪さ全開のモノを書いたので、
適宜書きなおして使ってくださいっす。
コピペして動かす分には問題ないっすよ。
ライセンスはGPL2でよろしくっす。

順番に使い方を説明するっす。
1.土台となる大き目のプリムをRez
2.そのプリムに以下のスクリプトを入れる



integer base_material;
integer listen_handle;

default
{
  state_entry()
  {
    listen_handle = llListen(-3, "", "", "");
    llSetPrimitiveParams([PRIM_MATERIAL, base_material]);
  }
  on_rez(integer start_params)
  {
    llResetScript();
  }
  listen(integer channel, string name, key id, string message)
  {
    llSetPrimitiveParams([PRIM_MATERIAL, (integer)message]);
  }
}




3.別の箱を土台の上、西端にRez
4.そのプリムに以下のスクリプトを入れる

 ※ただしメールアドレス(llEmailの部分)は書き換えること



vector pos0; // 初期位置
float force; // 加える力
integer box_material; // ボックスの材質
integer base_material; // 底板の材質
integer iterate_count; // 反復回数
list result; // 結果
list temp_result; // 途中経過

list fricture = // 摩擦係数(予測より小さい値を入れるのがポイント)
  [
    0.800, 0.510, 0.430, 0.690, 0.850, 0.550, 0.800, // 台: Stone
    0.510, 0.330, 0.260, 0.450, 0.530, 0.380, 0.550, // 台: Metal
    0.420, 0.250, 0.230, 0.400, 0.450, 0.325, 0.425, // 台: Glass
    0.690, 0.450, 0.400, 0.600, 0.750, 0.515, 0.750, // 台: Wood
    0.850, 0.530, 0.450, 0.750, 0.900, 0.625, 0.910, // 台: Flesh
    0.550, 0.390, 0.325, 0.515, 0.625, 0.430, 0.600, // 台: Plastic
    0.800, 0.550, 0.425, 0.750, 0.900, 0.600, 0.900 // 台: Rubber
  ];

MoveDefPos()
{
  force = llList2Float(fricture, base_material * 7 + box_material);
  llSetForce(ZERO_VECTOR, FALSE);
  llSetStatus(STATUS_PHYSICS, FALSE);
  llSetPos(pos0);
  llSetRot(ZERO_ROTATION);
  llSleep(1.0);
  llSetStatus(STATUS_PHYSICS, TRUE);
  llSleep(1.0);
}

default
{
  state_entry()
  {
    pos0 = llGetPos();
    box_material = iterate_count = 0;
    llSetStatus(PRIM_PHYSICS, TRUE);
    llSay(-3, (string)base_material);
    llSleep(1.0);
    force = llList2Float(fricture, base_material * 7 + box_material);
    llSetPrimitiveParams([PRIM_MATERIAL, box_material]);
    llSetForce(<force, 0.0, 0.0> * llGetMass() * 9.8, FALSE);
    llSetTimerEvent(2.0);
  }
  on_rez(integer start_params)
  {
    llResetScript();
  }
  touch_start(integer total_number)
  {
    if(llGetOwner() == llDetectedKey(0))
    {
      llSetTimerEvent(0.0);
      MoveDefPos();
      force = 0.0;
      llOwnerSay("stop");
    }
  }
  timer()
  {
    llSetTimerEvent(0.0);
    if(llVecMag(llGetVel()) < 0.001)
    {
      force += 0.0005;
      llSetForce(<force, 0.0, 0.0> * llGetMass() * 9.8, FALSE);
      llSetText("box_material: " + (string)box_material + "\n"
        + "force: " + (string)force,
        <1.0, 1.0, 1.0>,
        1.0);
    }
    else
    {
      temp_result += force;
      llOwnerSay((string)force);
      MoveDefPos();
      iterate_count++;
      if(iterate_count > 5)
      {
        iterate_count = 0;
        result += llListStatistics(LIST_STAT_MEAN, temp_result);
        temp_result = [];
        box_material++;
        if(box_material > 6)
        {
          box_material = 0;
          base_material++;
          if(base_material > 6)
          {
            llEmail(アドレス,
              "friction",
              llDumpList2String(result, "\n"));
            result = [];
            base_material = 0;
          }
          llSay(-3, (string)base_material);
          llSleep(1.0);
        }
        force = llList2Float(fricture, base_material * 7 + box_material);
        llSetPrimitiveParams([PRIM_MATERIAL, box_material]);
      }
    }
    llSetTimerEvent(2.0);
  }
}





5回1セットで、一巡したらメールを送ってるっす。
プリムの間で使ってる-3チャンネルに問題あれば変えてくださいっす。
力の向きはX軸の正の向きっすから、西から東っす。
必ず土台の西端に箱は置いてくださいっす。

メールは
(土台:S 箱:S)
(土台:S 箱:M)
(土台:S 箱:G)
  ・
  ・
  ・
(土台:S 箱:R)
(土台:M 箱:S)
(土台:M 箱:M)
  ・
  ・
  ・
(土台:R 箱:R)
の順で本文に49行入ってるっす。
7つずつ区切ると分かりやすいかもっすね。

2010年4月8日木曜日

千羽鶴っす

動摩擦係数も出さないといけないっすねぇ。
アイデアはあるんっすけど、これも面倒な方法っす。
来週ここに書くっすよ。
どうもぺんぎんっす( ◎v◎ )


オブジェクトネタは久しぶりの登場っすね。
10プリムで折り鶴20個を重ねたものを作ったっす。

これまでになく縦長なオブジェクトなもんっすから、
パッケージ用のSSがしっくりこないっす。
昨日も数枚撮影したんっすけど、やり直しっすね。
予定としては日曜日あたりには出したいんっすけど、
どうなるか分かんないっす。


実験結果以外の記事で、文字数が少ないのは気のせいっす。
細かいことは気にしちゃダメっす。

2010年4月7日水曜日

グチというか、先行きの不安というか・・・っす

静止摩擦係数は今週中はお休みっす。
来週から再開するっす。
どうもぺんぎんっす( ◎v◎ )


一足早くC#の勉強を始めたっす。
ベータグリッドへの登場は意外と早いんじゃないっすかね?
あくまで予想っすけど。


こんなのが欲しい
 ↓
教えてください
 ↓
こーすれば出来ますよ?
 ↓
分かりません
 ↓
結局全部書いてもらう
 ↓
手に入ったので満足
 ↓
 完


こんなパターンが多いSLの世界で、これからどうなるんっすかねぇ?

2010年4月5日月曜日

データの見直しっす

データを見直してみたっす。
あやしい所を抜き出してみたので、さらに確かなものになりそうっす。
どうもぺんぎんっす( ◎v◎ )


実験2:llSetForceで静止摩擦係数っす
のデータを、もう一度見てみたっす。
どうやら結果からStone-Metal = Metal-Stoneになってそうなんっすけど、
違うところも結構あるっす。
つまりそこがアヤシイ数値なわけっす。

もう一度結果を載せるっすけど、今度は色を付けてあるっす。
黒:土台と箱の材質を入れ替えてもほぼイコール(信頼度が高い)
緑:差が0.0075以上(やや信頼度が落ちる)
赤:差が0.0200以上(あやしい)
紫:想定より大きい値なのであやしい

[Stone]
S: 0.816501
M: 0.528501
G: 0.460999
W: 0.715001
F: 0.872001
P: 0.600500
R: 0.900500


[Metal]
M: 0.353499
G: 0.294916
W: 0.476500
F: 0.562751
P: 0.403750
R: 0.563502

[Glass]
G: 0.244999
W: 0.403750
F: 0.476500
P: 0.353499
R: 0.476500

[Wood]
W: 0.650500
F: 0.800500

P: 0.528500
R: 0.763917

[Flesh]
F: 0.910834
P: 0.628000 
R: 0.931501 

[Plastic]
P: 0.460999 
R: 0.628001 

[Rubber]
R: 0.918167 



こうやって見ると、Rubber > Flesh ・・・なんっすかね?
分かんなくなってきたっす。

2010年4月3日土曜日

いつでも準備は出来てるっすよ

LSL-BBSデビューしたっす。
登録日が2009年5月5日になってたってことは、11か月放置っすね。
これからぼちぼち書いて行くかもっす。
どうもぺんぎんっす( ◎v◎ )



もう1年経ったんっすねぇ。
15パズル大会、挑戦者は来てないっす。
賞金は出ないっすけど、スキルアップと自慢にはなるっす。

まずは大会で出た問題を、より速く、より少ない手数でクリアしてから
お越しくださいっす。
C#が来てから挑戦しても良いっすね。
どれだけ違いが出るのか見て見たいっす。


自分のスクリプトの改良は、誰かスゴイの持ってきたらやるっす。
アイデアはあるんっすけどね。

2010年4月2日金曜日

静止摩擦係数・考察っす

2種類の実験をした結果をまとめてみるっす。
他に誰も検証してないっすから、結果を鵜呑みするのは早いっす。
その点は注意して見てくださいっす。
どうもぺんぎんっす( ◎v◎ )


実験1:静止摩擦係数一覧っす
実験2:llSetForceで静止摩擦係数っす
実験1は土台を傾けて、その角度から静止摩擦係数を求めていて、
実験2は直接llSetForceを使って静止摩擦係数を求めてるっす。


POINT.1 実験1の結果>実験2の結果の理由
実験1は「動き続けている」ときの値を出してるっす。
なので、本当はもう少し小さい値が出ることが予想されたっす。
自分としては期待通りの結果っす。

POINT.2 Stone-Metal = Metal-Stone
これは実験2の結果を見ると分かりやすいっすね。
予想通りっす。

POINT.3 Flesh > Rubber
実験1でも薄っすら見えてたんっすけど、実験2で決まりっすね。
小さい方から並べると
Glass
Metal
Plastic
Wood
Stone
Rubber
Flesh
となるっす。



精確な数値はまだまだ実験が必要っす。
乗り物への応用も期待されるので、検証お願いしますっす。
Free Avatar