v1.3.3
v1.3.3 - Lua スクリプト for YMM4
これまでネイティブ実行では使用できなかった obj.getobject がネイティブ実行でも
利用可能になったリリースです。ピクセル操作と他オブジェクトの参照を 1 つの
スクリプトで併用できるようになりました。
新機能・改善
1. obj.getobject をネイティブ実行でも利用可能に
ピクセル操作を含むスクリプトはネイティブ実行へ振り分けられますが、これまでは
ネイティブ実行中の obj.getobject が常に nil を返していました。本リリースでは、
ネイティブ実行中に obj.getobject を呼び出すと本体プロセスへ同期的に問い合わせて
シーンオブジェクトを解決するようにしました。従来エンジンと同じ描画情報を返すため、
ピクセル操作と他オブジェクトの参照を 1 つのスクリプトで併用できます。
--!moonsharp を明示してエンジンを切り替える必要はなくなりました。
注意事項
- ネイティブ実行中の
obj.getobjectは、呼び出しごとに本体プロセスへの往復が
発生します。1 フレーム内で多数のオブジェクトを参照する場合は、結果を変数へ
保持して呼び出し回数を抑えることを推奨します。 obj.getobjectを含むスクリプトの実行時間も、従来どおり 5 秒のタイムアウトの
対象です。問い合わせを含めた総実行時間が 5 秒を超えると強制終了されます。
内部実装
- ネイティブ実行の共有メモリプロトコルに同期コールバックを追加しました。ワーカーは
obj.getobjectの呼び出し時にタグとフレームを共有メモリへ書き込み、本体側が
シーンオブジェクトを解決して結果を書き戻します。解決したオブジェクトは
描画キャッシュの検証対象に含めるため、フレーム間のキャッシュ整合性は保たれます。 - コールバックを含む実行全体に対して単一の実行期限を適用し、
obj.getobjectを
繰り返し呼び出すスクリプトでもタイムアウトが必ず機能するようにしました。