08/02/26 17:12:15
お!やっと死んでたスレがまともな流れに!というわけで回答
>>190
普通に使う感じではオブジェクト指向は無理。
イメージ、PerlなどのCGIやローカル環境で動作するタイプのVBやC言語ではなく
制約、仕様、特徴すべてブラウザ上で動くJavaScriptに極めて近いと思ってくれたほうが良い。
まあそうじゃないと悪用される。
あと基本1ソース16KB(コード+変数の予約空間)までの制限があるので
1ソースに全部詰め込んだり
多言語のようには他ファイルにライブラリー構築してインクルードなりヘッダー式で
メインソースに関連づけて使うような方法は基本できない。
ちなみにマニュアルにのってるような普通の使い方ではなく
凄くトリッキーな使い方やまわりくどい方法を駆使したり工夫したりすると
オブジェクト指向っぽくやライブラリーっぽい事もできなくもないが
すごく面倒で生産性は悪い。
つーか触りだけでもいいから実際にやってみれ。その方が早いぞ。
196:デフォルトの名無しさん
08/02/26 17:29:24
具体的にどう回りくどいか一例だけあげとく。
例えば1ソース16KBまでの壁を乗り越える方法だが
ソース書く時16KB以上にならないように各機能別にソースファイルを分けて作る
「Aソース、Bソース、Cソース=一つのソース」みたいにね。
他言語ならここでAソース内部で
------------
require MyFunc.h
MyFunc(a,b);
------------
こんな感じで直接呼び出せるけどLSLはそれができない仕様なので
AソースとBソース間でブラウザとサーバー間の通信処理みたいなことをやって
各ソースが連携とって動作していくように無駄に分散通信を行うハメになる。
丁度HTMLの<Form>タグとCGIのやり取りのようにね。
こんな感じに絶対無理というわけではないが実現させるには
無駄な処理を強いられプログラムがどんどん複雑化していく感じ。
197:デフォルトの名無しさん
08/03/06 02:47:38
高度300以上に行けるアイテムって、スクリプト禁止のところでもちゃんと機能するのってなんでだろう・・・
198:デフォルトの名無しさん
08/05/19 05:41:36
そうだねぇ
ポイントだけ書くと
・スクリプト禁止エリアではスクリプトは開始されない。
・すでに動作中のスクリプトはスクリプト禁止エリアでアバターが着地すると停止する。
・すでに動作してるスクリプトが禁止エリアに入ると、あるイベントのベクタを「フックしてない状態」
だとアバターが着地してなくてもスクリプトが停止する。
199:デフォルトの名無しさん
08/05/21 18:20:52
Makapuなくなったの?
200:デフォルトの名無しさん
08/06/01 02:49:57
××××××××××××××××××××××××××××××××××××××
ここより下、このスレを落とす目的のチラシ裏的に再利用なため【sage進行】でよろしくお願いします。
正式なLSLの質問は今はここより
Second Life セカンドライフ 質問スレ Part16
スレリンク(mmoqa板)
で聞いた方が早く有効な回答をえられると思います。
××××××××××××××××××××××××××××××××××××××
201:デフォルトの名無しさん
08/06/01 02:51:00
765 名前:名も無き冒険者[sage] 投稿日:2008/06/01(日) 01:37:30 ID:U5ZtaLor
>>738
何で>>717で「平均行数 433行 1ファイルでの最長行数 10027行」って書いたか分からない?
見積もりで桁のオーダー間違えるのも論外だけど、
「最低でも1ソースファイル何十~何百万」なんて開発経験疑われて当然じゃないの?
>>739
同上。例えば「アイテム整理整頓機能」はどれくらいのステップで作れると見積もってるの?
>>740, >>741
IT用語のボトルネックって何?
「PC性能+通信の2要素がからみ余計障害発生率があがる」ってさ、ものすごく一般論になってない?
こんなの他の3Dのオンラインゲームにもすり替えられる主張でしょ。
これではSLが重い理由にはならない。
ちなみにLSLのコンパイラはクライアントに入ってるぞ。
202: ◆nYI7cPbDK2
08/06/01 03:12:30
>>201
ソースまだ見てないからわからん。別に疑ってくれていいよ。実際俺は別に優秀じゃないし単なるお気楽な奴なので。
ただ単に「こうすりゃうまくいきそうだが?」という案がいくつかあって時間できたら実際試したいだけなので。
結果そこで壁にぶち当たり「SLやっぱスゲー」ってなるかもしれないし
化けるかもしれないし何もやらないよりはマシさ
ちなみにまだ案はいくつか足りない部分があるからそこどうにかしてからじゃないとまだダメね
>>例えば「アイテム整理整頓機能」はどれくらいのステップで作れると見積もってるの?
これはどれに対してのことだい?
・一般的なRPGゲームなどでよくみるアイテム機能
・SLに実装されてるアイテム機能
・俺が考えてるらしい独自のアイテム機能
>>IT用語のボトルネックって何?
>>「PC性能+通信の2要素がからみ余計障害発生率があがる」ってさ、ものすごく一般論になってない?
>>こんなの他の3Dのオンラインゲームにもすり替えられる主張でしょ。
>>これではSLが重い理由にはならない。
一般論だけどそこがうまくいってないものSLは。
この通信部分が無理すぎるやり方で国内(アメリカ)プレイヤー以外には
そこが重い理由にしっかりなってるって。
現状のネットだと海外のWebサイトにアクセスするだけでも重いのに
世界の全てのプレイヤーをわざわざアメリカの一箇所に集めようとするこの仕様が
無理があるんだって。
世界展開するならせめて各国に支店的サーバーくらい置いてくれないと…
そしてひょっとしたらリンデンもそうしたいけどやれない状態
基礎段階の問題で既にそれができない状況になってるんだと俺は思ってるのよ。
これは単なる憶測にすぎないけどさ俺はボトルネックの1つだと思ってるよ
>>ちなみにLSLのコンパイラはクライアントに入ってるぞ。
ほほぅ~これは知らなかったよ。
203: ◆nYI7cPbDK2
08/06/01 03:14:24
ここIDでないから使いづらいな…
204:デフォルトの名無しさん
08/06/01 03:33:38
もう俺これ以上レスする気ないから良いよw
今まで挙げてきた事が、本当にリファクタリングで実現出来ないのか考えてみ。
リファクタリングではダメだと思ったり、単純に再開発楽しみたい、と言うなら頑張れとしか言いようがない。
205:デフォルトの名無しさん
08/06/01 04:45:57
さぁ、何のLSL的な話題で使い切ろうか・・・・
とりあえずあれば便利なスクリプトとか、このスクリプトが凄い!とか、
なんかないかな~?
206:デフォルトの名無しさん
08/06/11 14:08:16
LSLの罠
1.&&より||が優先度が高い
2.attachされたオブジェクトの子PrimでllSetPrimitiveParamsのPRIM_POSITIONが使いものにならない
以下勝手に続けてくれ
207:デフォルトの名無しさん
08/06/11 14:23:39
訂正。問題のあるのはPRIM_ROTATIONだた。
208:デフォルトの名無しさん
08/06/14 11:16:47
>>206
へー優先順違うんだ、今までAndとOr組み合わせたこと無かったらしいw
2は困るけど単純にllGetRootRotation()で割ってますね。
JIRAでもなんか言ってるからそのうちに妥当な解決案がでるんじゃないかな?
それよりも私としてはGetLinkPrimitiveParams()の実装をしてほしい。
調整で補える部分はなんとかなるけど機能足りない部分はいかんともし難いので。
209:デフォルトの名無しさん
08/06/29 17:13:19
URLリンク(mrtopf.de)
↑のブログでSecond Lifeのプロトコルについて調べたのですが、いまいち動作が分からないので教えてください。
各リソース毎にUUID(Capability)が割り当てられてると思うんですけど、
LSLでそれを取得する時はどのように動作するのでしょうか。
・ローカルにリソース名とUUIDを記述したXMLファイルみたいなのがあってそれにアクセスして得る
・リソース名を含んだリクエストをサーバに送信して、サーバからUUIDを得る
どっちなんでしょう?
210:デフォルトの名無しさん
08/06/30 20:32:40
何コピるの?
211:デフォルトの名無しさん
08/06/30 23:17:12
わからん。
それってLSLの話題なの?
212:デフォルトの名無しさん
08/07/01 13:10:59
もしかして : SLのサーバーがLSLで動いてると思ってるとか。
あくまでもLSLはPrimに仮想機械を入れるっていう目的のための言語。
Listen、Sensorなどのイベント発生元としてイベントパラメータとしてKey=UUIDが渡される。あとは座ってるアバターのKeyを取得できる組み込み関数なんかはある。
逆にいえば本来は仮想機械から見えない範囲のUUIDは取得のしようがない。
Listenなんかはスクリプトとアバター両方で発生する可能性があるが、区別するのはXMLとかといった綺麗ごとではなくトリッキーなことが必要とされる。
213:209
08/07/01 18:23:03
つまりseed capabilityをサーバに送ると視界に入る範囲の
UUIDが全てリストで返ってくるとかそういうことですか。
214:デフォルトの名無しさん
08/07/02 10:22:43
LSLというかSIMの内部構造の話か?
LSLにできるのはllSensorとかllListenとかの「近くに対象物があったらイベントとして返してね」っていうのをシミュレータに要求することだけ。
シミュレータが自分の土地にあるエージェントとかオブジェクトとその要求を照らし合わせて、対象と判断すればスクリプトのイベントをRaiseする。それがlistenとかsensorイベント。
>seed capability
なんてのはLSLの話では出てこないし、触りようがない。
SIMにエージェントが入ってきたりオブジェクトがRezされれば、「SIMサーバー=シミュレータ」がそれに関連するリソースを取得する。
この時点ではスクリプトはなーんも関係がないのよ。
215:デフォルトの名無しさん
08/07/05 22:47:34
う~ん、もしかしてlibSecondlifeを用いた開発のことかな?
ちょっと触ってみたがこれって簡単実装ってわけじゃないのね。
動きわからないとこあると慣れないのでデバッグ大変、これは覚えるしかないね
んでこれがLSLになんの関係があるかというと、
LSLを一括でPCにバックアップするプログラムを作りたいから。
今、インベントリ一覧までできたとこ。