GAME SIMで

GAME SIMで

by brepon wing -
Number of replies: 23

持ち込みの車をREZしたところ

画面にエラーがでて全く動きませんでした

 

いろんな車を試しましたが、どれも同じです

もしかして、物理エンジンが変わったのでしょうか?

 

エラー内容

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.BadImageFormatException: Could not parse type argument 0 on method signature
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x419433c0 + 0x000a3> in <filename unknown>:0
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x419433c0 + 0x000ff> in <filename unknown>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) <0x41b89d90 + 0x0002a> in <filename unknown>:0
at OpenS
[21:39] Jaguar 60s: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.BadImageFormatException: Could not parse type argument 0 on method signature
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x419433c0 + 0x000a3> in <filename unknown>:0
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x419433c0 + 0x000ff> in <filename unknown>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) <0x41b89d90 + 0x0002a> in <filename unknown>:0
at OpenS

In reply to brepon wing

Re: GAME SIMで

by Iseki Fumikazu -

特に何も変えていません.

エラーメッセージの意味が良く分かりませんね.スクリプトが読めないと言っているような気もしますが.

他のSIMではどうでしょう?

スクリプトを再コンパイルしてみるとか?

念のためGame SIMは再起動します.

In reply to Iseki Fumikazu

Re: GAME SIMで

by brepon wing -

brezza land ではちゃんと動きました

JOG meetsではエラーはでませんでしたが車は動きません

meetsの隣のさsandboxではgame simと同じようにエラーを出して動きません

 

いずれも0.9.0だと思うのですが何が違うのでしょうか?

In reply to brepon wing

Re: GAME SIMで

by Iseki Fumikazu -

今は,一気に全部のOpenSimをバージョンアップしないようにしているので,若干リビジョンが違う可能性があります.

 

In reply to brepon wing

Re: GAME SIMで

by teddy Dragoone -
ぼくの例の白いカートを持ち込んで試してみましたが正常に走らせることができました。
やはり車の中のスクリプトとシムの相性なのでは??
In reply to teddy Dragoone

Re: GAME SIMで

by Iseki Fumikazu -

あの後,OpenSimを最新バージョンにバージョンアップしてみました.

そのせいかも知れません.

 

In reply to teddy Dragoone

Re: GAME SIMで

by brepon wing -

テディさんからいただいたカートとSIMに設置してある車では動きました

なぜジャガーが動かなくなったのか謎ですね

In reply to brepon wing

Re: GAME SIMで

by Shinobar Martinek -

スクリプトが編集不可でなければ、スクリプトを開いて、どこかに空白を1文字入れて編集したふりをして、それを削除し、元に戻す。それを保存すると再コンパイルされます。それで改善する場合があります。

In reply to Shinobar Martinek

Re: GAME SIMで

by brepon wing -

スクリプトの編集やってみました

動かなかったジャガーが動くようになりました。車に入ってたスクリプトが全部で7本ありましたが、それぞれエラーを出してたので

全部編集し直したら動きました^^

 

しかし、全部の車を直すとなると大変な作業です><

In reply to brepon wing

Re: GAME SIMで

by Shinobar Martinek -

同じ問題は GAME 以外のリージョンでも広く存在します。件の Jaguar を 3つある Sandbox すべてでRezと同時にエラーがでます。また、 JOG meets、brezza land ではエラーは出ないものの、動きません。いずれの場合もスクリプトの編集作業をしてリコンパイルすることで、エラーなく正常動作するようになります。

同じ Jaguar は Shinobar Annex (OpenSim 0.8.2.1) では正常動作します。 また、しのぐりに持ち込んでみると、JOG配布のバイナリ 0.9.0Dev を使った、しのぐり Welcome Area でも正常動作。しのぐりサンドボックス(0.8.2.1)でも正常に動きます。

Jaguar 以外にも手持ちのパーティクルを出すスクリプトを仕込んだオブジェクトが Sandboxで runtime error を出します。

In reply to Shinobar Martinek

Re: GAME SIMで(OpenSim.iniの設定)

by Shinobar Martinek -

JOG配布バイナリ 0.9.0Dev にある OpenSim.ini の設定で、気になることがあります。

[XEngine] のセクションで

DeleteScriptsOnStartup = false

が設定されています(デフォルトは true)。SIM再起動でスクリプトを再コンパイルするかどうかです。SIM上にあるスクリプトだけなのか、今回のような持ち込みのスクリプトにも影響するのかどうかは不明です。

ここで話題の問題とは別に、もう一つ気になる設定が同じセクションに(さきのもののちょっと上のほう)

AppDomainLoading = false

デフォルトは true です。SIMが知らぬうちに out of memory で落ちていることがあることと関係あるかも。

In reply to Shinobar Martinek

Re: GAME SIMで(OpenSim.iniの設定)

by teddy Dragoone -
http://opensimulator.org/wiki/Performance

こちらに説明がのっておりました
In reply to Shinobar Martinek

Re: GAME SIMで(OpenSim.iniの設定)

by Iseki Fumikazu -

Game SIM (JOGのセンター地区) では現在

AppDomainLoading = false
DeleteScriptsOnStartup = true

となっています.

In reply to Iseki Fumikazu

Re: GAME SIMで(OpenSim.iniの設定)

by Iseki Fumikazu -

OpenSim 開発者フォーラム にJOGの標準的なOpenSim.ini を投稿しましたので,よろしければご覧ください.

In reply to Iseki Fumikazu

Re: GAME SIMで(OpenSim.iniの設定)

by Shinobar Martinek -
AppDomainLoading = true

にしたら、SIM起動時のメモリ使用量が2倍〜3倍になりました。trueでははなから大きく、falseだと最初小さくて、必要に応じて増える感じです。自前のSIMで実験しました。けっきょく、JOG標準どおり

AppDomainLoading = false

としました。

 

In reply to Shinobar Martinek

Re: GAME SIMで(OpenSim.iniの設定)

by Shinobar Martinek -

車のほかにパーティクルを仕様するスクリプトが軒並みにエラーを出します。

JOGの標準が

DeleteScriptsOnStartup = true

であるとすると不可解ですが、念のため bin/ScriptEngines をディレクトリごと削除してみるというのはいかがでしょう。

いずれかのサンドボックスで試していただけるとありがたいです。

In reply to Shinobar Martinek

Re: GAME SIMで(OpenSim.iniの設定)

by Iseki Fumikazu -

昨日から OAR Converter のバグ取りをしていたので,対応が遅くなりました.すみません.

リージョンサーバが再起動すると,SIMにおいてある該当のスクリプトも正常に動くようになりますので,

DeleteScriptsOnStartup = true

は,SIMが再起動したときに再コンパイルするということではないでしょうか?

 

In reply to Iseki Fumikazu

Re: GAME SIMで(OpenSim.iniの設定)

by Shinobar Martinek -

> リージョンサーバが再起動すると,SIMにおいてある該当のスクリプトも正常に動くようになりますので,

DeleteScriptsOnStartup = true

> は,SIMが再起動したときに再コンパイルするということではないでしょうか?

ですよねえ、だから不可解です。持ち込みのオブジェクトに含まれるスクリプトの場合は別の原因があるのか?

In reply to Shinobar Martinek

Re: GAME SIMで(OpenSim.iniの設定)

by Iseki Fumikazu -

> は,SIMが再起動したときに再コンパイルするということではないでしょうか?

インベントリにあるスクリプトは再コンパイルされないと思います.

 

 

In reply to Iseki Fumikazu

Re: GAME SIMで(OpenSim.iniの設定)

by Iseki Fumikazu -

再コンパイルしないのは,たぶん

TrustBinaries = true

のせいのような気がします.

今,SandBox (8000,7999) で TrustBinaries を false にしたところ,エラーが出ませんでした.

確認してみてください.

 

このパラメータが trueの場合は,スクリプトを持ったオブジェクトがSIM境界を超えるとき,スクリプトを再コンパイルしないで,コンパイル結果のバイナリデータをそのまま転送するものと理解しています(結果スクリプトの継続動作が早くなる).

このせいで,他のSIMから持ってきたスクリプトをRezしたとき,再コンパイルが行われなかったのではないでしょうか?

In reply to Iseki Fumikazu

Re: GAME SIMで(OpenSim.iniの設定)

by Shinobar Martinek -

> SandBox (8000,7999) で TrustBinaries を false にしたところ,エラーが出ませんでした.

花火(パーティクルを使った物)で確認したところ、JOG meets でエラーが出るが、SandboxでOKでした。

Jaguar はどちらのリージョンでもエラーは出ませんが、JOG meets で動かなかったものが、SandBoxでは動きます。

乗物などのリージョン越えに不具合はないかも気になったので、テストしました。SandBoxにJaguarをRezし、乗り込んで JOG meets へリージョン越えできました。Jeepはリージョン越えに引っ掛かりはありますが、変数値などは保持されているようです。装着物や乗物の場合は別扱いなのかな。

AllowScriptCrossing との関係がよく分かりませんが、これらはデフォルトで

AllowScriptCrossing = true
TrustBinaries = false

みたいです。

 Shinobar Annex周辺のSIMは0.8.2.1の上記デフォルト設定で、リージョン越えできています。ときどき失敗はありますが。

In reply to Shinobar Martinek

Re: GAME SIMで(OpenSim.iniの設定)

by Shinobar Martinek -

この問題、その後どうなっているでしょうか?

あるSIMでは動くのに、別のSIMでは動かないことが、最近多発してます。

TrustBinaries = true とするメリットよりも、デメリットのほうが大きく思います。

TrustBinaries = false

でお願いしたい。

以下4つのSIMでそれぞれテストしました。

Shinobar Annex (テストのため opensim-0.8.2.1 に変更)
M&Fcreations01 (opensim-OSgrid 0.9.1.0Dev  4320758: 2017-06-03)
Sandbox (OpenSim 0.9.1.0 Dev 07c3962)
JOG meets (同上)

こちらでコンパイルしたものをあちらへとテストしてみると、 Shinobar Annex と M&F Creations01 では、いずれでコンパイルされたものでも動きます。

Shinobar Annex(0.8.2.1)や Sandbox, JOG meets でコンパイルされたものはどちらでも動きます。

M&Fでコンパイルされたものは Sandbox や JOG meets では動きません。

手持ちのオブジェクトで Sandboxなどでは動くが JOG meetsでのみ動かないものがあります。SandboxとJOG meetsでバージョンあるいは設定が異なるのでしょうか?

 

In reply to Shinobar Martinek

Re: GAME SIMで(OpenSim.iniの設定)

by Iseki Fumikazu -

すみません.

完全に失念していました.

(学生が)夏休みになったらサボっていたアップデートをまとめてやるつもりですので,その時に設定し直します.(8/7以降)

もしその時にまだ直っていなかったら(失念していたら),またクレームをお願いします.(^^;

In reply to Iseki Fumikazu

Re: GAME SIMで(OpenSim.iniの設定)

by Shinobar Martinek -

OSGからの持ち込み品や、むかし開発したスクリプトなどが、JOGのメインランドで動かないという状況は、いまも続いているようです。