「電波とどいた?」
2010/07版 その2

2010/07/14 (水)

体験版チェック (えろげ)

_ 毎度恒例。

_ 俺のタマノコシに乗ってくれ(パティスリー)体験版。 システムは独自で、なんと python ベース。フォルダ覗くと pyd やら pyc やらがずらり。 起動時ランチャーにネットワーク情報・更新機能内蔵。ボイスカット指定あり。CTRLバインド変更が拾えてない不具合あり。 目ぱち口ぱく(音声同期)あり。表情変更は同期。

_ 空を仰ぎて雲たかく(でぼの巣製作所)体験版。960×600のワイド作品。 システムは独自で lua ベース。起動時ランチャーにネットワーク情報機能内蔵。 コンフィグ系はシステムダイアログ。ボイスカット指定あり。キャラ別音量あり。 メッセージ表示は一瞬。

_ Vistige(Alcotハニカム)体験版。 システムは椎名里緒。あれ、QLIE じゃないのね。 ボイスカット指定あり。OFF時に別キャラのボイスとも重なってしまって違和感。 キャラ別音量指定あり、表情変更は同期、キャラアクションあり。 Alcot系の特徴のメッセージ窓移動をちゃんと実装してる、んだけど、 表情変更は同期で変更してから移動が始まるけどアクションだけだと非同期で同時に動くので タイミングがばらばらで違和感。フェード表示処理がスキップ中にキャンセルかからず 非同期で動き続けてるので表示がやや変なことに。

_ 遠望のフェルシス(ninetail)体験版。 システムは吉里吉里だけどここのいつもの常でわりと独自のものに。3Dダンジョンとか実装。 キー入力待ちの実装がなんというかムリヤリすぎる。KAGベースなら待ち処理を絡めたタグを増やす形が妥当。 コンフィグ系はボイス音量とウインドウ透過指定以外はシステムメニューのみ。 キャラ別音量指定あり。表情変更は同期、キャラアクションあり。 CTRLが単なるスキップ開始に割り当てられてて不便。

_ 秋空に舞うコンフェティ(etude)体験版。1024×640 のワイド作品。 システムはQLIE。タイトルうにうに。このシステムは(ブランドにもよるけど)画面を いろいろモーション的に動かすのを信条にしてて好感がもてます。 ボイスカット指定あり、システム音量あり。表情変更は非同期、キャラアクションあり。 なんというか長い(顔が)

_ 魔王の淫具(ALL-Time)体験版。 システムは .NET Framework ベースの Igs。 IronPython はやめて Booに変えた模様。 あとシェーダーモデル2.0 以上必須では無くなってる。 解像度可変で「最大化」あり。Win7の左右配置にも正常に対応。音系の再生がときどきつっかかってる。 コンフィグ系はシステムダイアログ。ボイスカット指定あり、キャラ別音量あり、BGMダウン指定あり。 表情変更は非同期。

_ PARA-SOL(root)体験版。 システムは独自。メニューが上にも下にもあるのは混乱しないかしら。お、鮎川ひなたさんだ。 ボイスカット指定あり。「音声の再生終了を待つ」がなんじゃらほいとおもったら待ちが一つ余分に入るのね。 目ぱちあり。表情変更は同期。表情窓ありで話者表示。未読強制スキップがない。



2010/07/16 (金)

吉里吉里/Javascript (吉里吉里, javascript)

_ 気が向いたので V8 Javascript Engine吉里吉里に組み込んでみた。 バイナリとデバッガは bin をあさってください。サンプルコードは test にあります。 本格的なコードは組んでみてないのでバグがかくれんぼしてるかもしれません。

_

  • TJSとオブジェクト相互参照可能。プリミティブは値渡しでオブジェクトはラッピング処理
  • ネイティブクラスを含むTJSクラスを JSプロトタイプファンクションとして取得可能(継承可能)
  • デバッガ利用可能

_ yield はまだ無いようなので、TJS と同様の同期実行処理のみの対応です。 将来的に機能追加されたら squirrel と同種のインターフェースが足されることになると思われます。

_ ドキュメントが全然解説たりねーよと文句いいつつ、ヘッダみてエラーみてちょっと考えればだいたいわかったので良しとする。 C++ のバインド用に InternalField ってのがあるんだけど、これの数がオブジェクト生成時に指定されるようで Javascript 側で生成したオブジェクトは 0 になっていて、継承時にオブジェクト再設定しようとすると例外になる罠。 むきー。で、適当なメンバに値もたせようかと思ったんだけど、オブジェクトにしかけてるインターセプターが、 ローカルプロパティを完全に隠しちゃう謎仕様があってうまく値を保持させることができなくてはまる。 結局 HiddenValue という機構を発見してそれにつっこむことに。微妙に設計練り込みできてない予感。 ネイティブオブジェクトが指定通りつくるとプロトタイプ継承がどう書いても出来ないとか絶対困ると 思うんだけどなぁ。ぐぐるとどないすんねんって記事はあるけどきちんとした結論はでてなかった^^;

_ まあ、なんにせよ、なんでも組み込めてしまう吉里吉里の基礎設計の柔軟さは偉大だ。

_ TJSと比べてどうかなー。 イベントコールバック処理でちょっと追加の手動操作が必要なくらいで、機能的にはほぼ同等に使えるはずです。 V8は超速いって噂なので、性能はたぶん上でしょう。計測してないけど。 ネイティブオブジェクト操作はラッピング入る分ラグはあるでしょうが誤差の範囲だと思われ。 あ、dll がやたらでかいです^^;

_ クラス関係処理はTJSのが絶対わかりやすいと思います、プロトタイプ継承はトリッキーすぎると思う。 真のレキシカルクロージャが使えるのは嬉しい人には嬉しいかも。逆に環境バインド機構が 無いですがそのあたりはどうにでもなるでしょう。なおTJS側に関数を渡す場合は自動的に その時点でのコンテキストがバインドされる仕様になってます。 あとWEB 系とコード系を完全共有できるってメリットがあるかな。

_ デバッガが普通に使えるというのは大きなポイントかも。 TJSで複雑なコードを組んだ場合にタイミングが難しいバグを追うのは地獄。 コマンドラインデバッガの d8.exe のバイナリもあわせてレポジトリにつっこんであります。 GUIなやつって存在したりするのかな。

_ まあ適材適所で使い分けしてくださいってことで。機能クラスをネイティブ+TJSで書いて 制御系は WEB系とコード共有できるようにJavascript でってのもありでしょう




メールはこちらへ...[わたなべごう (go @(at) denpa .(dot) org)]

この日記は、GNSを使用して作成されています。