C.Ponapalt(ぽな@ばぐとら) Rev.10

Slides:



Advertisements
Similar presentations
位置情報と私 木村岳文 / 位置情報と私 / はじめに GPS 付き携帯、ハンディ GPS などを使っ て、お手軽に自分が地球上のどこにいる かを調べられるようになってきました。 このデータをつかって何かおもしろいこ とができそうな予感。 具体的にどうしたらおもしろいかはよく.
Advertisements

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 Windows メッセージを使いこな す -Windows 流オブジェクト指向 - とっちゃん 高萩 俊行 Microsoft MVP for Windows SDK 2005/ /09.
1 なんとなく Ajax ~新しくて古い XMLHttp 川合孝典 (Kansai.pm) 2005/5/22.
Flash SWF ファイル書き換え PHP extension 2008 年 7 月 21 日 よや.
SSP in a Nutshell #1.5 最近の新機能よせあつめ
PHP AV(Audio Visual) 拡張 クライアントサイド PHP アプリケーションPHP
如何かは 如何にして 動くか ソフトマター物理の佐藤と申します。私は末端に水酸基を持つ液晶がしめすフラストレート液晶相の発現条件に迫る研究を行いました。
プログラマのレベルアップ.
PHP AV(Audio Visual) 拡張 PHP asアプリケーション
第1回.
Webアプリケーション開発の 基本的なポイント
技術トピックス 2014/10.
C.Ponapalt(ぽな@ばぐとら) Rev.1
東京工科大学 コンピュータサイエンス学部 亀田弘之
実例に見る 軽いけど凄い? 伺かゴーストの作り方
REST型Webサービスによる 楽曲検索システムの開発
CW からクラウド を考える 喋る人:しばやん.
いもうとデスクトップが出来るまで 話すひと: 646.
しらたま みんなもっとツール作ろうよ! しらたま 08/08/10 うかべん 横浜#2.
伺か with なでしこ 発表者:しらたま /05/05 うかべん大阪#3.
山田 由貴子 (北大理・地球惑星科学専攻) 2004年10月29日
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
早坂千尋( ゴーストは雰囲気をどう表現するか 早坂千尋( うかべん大阪#5 早坂千尋 2009/7/20.
ASP.NET開発標準化を考えてみよう! わんくま同盟 東京勉強会# /03/15 mxb & 片桐継.
ASP.NET開発標準化を考えてみよう! わんくま同盟 東京勉強会# /03/15 mxb & 片桐継.
JavaServlet&JSP入門 01K0018 中村太一.
うかべん3分 ないちちゴーストデバッキング - パパの知り合いがデベロッパーでね、infoseek用の検索ゴーストを 作ってくれたんだ 篇 /11/08 ないんないん(NineNine)
しらたま 自作saoriの紹介 しらたま 2009/03/15 伺的ソフトウェア勉強会 横浜#3.
Vulnerability of Cross-Site Scripting
Moveであそぼう! 〜デスクトップを動きまわるゴーストを考える〜
さとりすと Satori Ghost Editor 里々ゴーストの統合開発環境を作ったよ page: 1/25
MSBuild 色々出来るよ 2011/04/02 お だ.
SWAT I18N 概要 付け足した機能(実行時に言語の切り替え-i18nの範囲で) 問題点(細かい技術的問題、根本的問題) 今後
Perlを用いた 学内専用アップローダの作成
HTTPプロトコルとJSP (1) データベース論 第3回.
JQueryでAjax 藤田@ジャストプレイヤー ※参考しまくり文献 jQuery日本語リファレンス.
HTTPプロトコル J2EE I 第7回 /
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第11回 プロセス間通信4 仮想FTPの実現 担当:青木義満
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
初心者のためのセキュリティ/プライバシー講座
早坂千尋( 伺かをフロントエンドに使ってみたら 早坂千尋( うかべん大阪#4 早坂千尋 2008/11/03.
Flyingware : バイトコード変換による 安全なエージェントの実行
第8章 Web技術とセキュリティ   岡本 好未.
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
ラズパイ・オーディオの製作 中間報告1 14EC004 飯田 頌平.
Microsoft MVP for Development Tools – Visual C++
Windows PowerShell Cmdlet
Microsoft MVP for Development Tools – Visual C++
はぐれたメルでプログラムを 担当した一人の仁藤が 授業開始前の2時間くらいで作成
実行時情報に基づく OSカーネルのコンフィグ最小化
WEBアプリケーションの開発 2002年度春学期 大岩研究会2.
平成19年10月19日 図書系のための アプリケーション開発講習会
長崎大学工学部 情報システム工学科 「パターン認識」って・・・ 何? 宮原・喜安研究室.
JAVAについて 高橋 雅哉.
うかべん大阪#9 よろしくUKADOC  ―実写版― ※  もっしょくし ※伺かアドベントカレンダー2014参照.
Microsoft MVP for Development Tools – Visual C++
プロジェクト演習Ⅱ インタラクティブゲーム制作
一歩進んだ Views の使い方 スタジオ・ウミ 山中.
最低限インターネット ネットワークにつなぎましょ!
第1章 いよいよプログラミング!! ~文章の表示 printf~
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
プログラミング入門 電卓を作ろう・パートI!!.
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
本当は消去できていない!? ~データを完全消去する方法~
本当は消去できていない!? ~データを完全消去する方法~
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第11回 プロセス間通信4 仮想FTPの実現 担当:青木義満
情報処理Ⅱ 2007年12月3日(月) その1.
ASP.NET 2.0による Webサービスの構築 2008年10月18日 こくぶんまさひろ.
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
うかべん 大阪#9 Uka3D資料.
Presentation transcript:

C.Ponapalt(ぽな@ばぐとら) Rev.10 THE OLD NEW UKAGAKA C.Ponapalt(ぽな@ばぐとら) Rev.10 わんくま同盟 大阪勉強会 #23

本日のめにゅう 自己紹介 伺かって何よ? 裏方の構造概観 これからの展望(別名:大風呂敷) 思いついたら即質問! わかりやすいように手をあげてね! わんくま同盟 大阪勉強会 #23

まず…あんた誰? C.Ponapalt(ぽな)と申します 今のところ、SSPという 伺か用データ実行プラットフォームの メンテナーをしています。 たまに山に登ります。 マウンテンや巨大パフェ的意味でも。 虫取りは好きです。 スパゲティは大好きです。 わんくま同盟 大阪勉強会 #23

「伺か」って何? 言葉で説明しようがないので… とりあえず見ていただきます! わんくま同盟 大阪勉強会 #23

「伺か」って何? 基本的に、よくあるデスクトップ キャラクター実行環境です。 何も難しい 話はあり ません…? 基本的に、よくあるデスクトップ キャラクター実行環境です。 何も難しい 話はあり ません…? わんくま同盟 大阪勉強会 #23

「伺か」って何? 狭義:実行エンジン(「ベースウェア」) の“Materia”のこと 広義:実行エンジン自体と、その上で 動くデータ一式、さらにそれをとりまく コミュニティ群全体を指す言葉。 わんくま同盟 大阪勉強会 #23

ベースウェアって何? ガジェットエンジンみたいなもの。 Winodows:Materia / SSP / CROW等 Mac OS X:偽林檎 UNIX系:ninix-aya 他:JavaScriptで組んでWeb上で動く等 わんくま同盟 大阪勉強会 #23

「伺か」の名前の変遷 2000年:「偽春菜」 「あれ以外の何かwithさくらとも呼ばれるひと」 名前を変えられるので「任意」 「何か」 2002年:「伺か」 わんくま同盟 大阪勉強会 #23

特徴:本当に「よくあるソフト?」 キーワードは「多様性」 1000組を超えるデータ(「ゴースト」) 「キャラクター」とは限らない ガジェット的なものや 中にはゴーストやバルーンを作る 開発環境の役割をするゴーストまで。 専用の検索エンジンが要るほど 山ほどある。 わんくま同盟 大阪勉強会 #23

開発者さんもプログラマさんじゃない 場合が多い 特徴:本当に「よくあるソフト?」 ユーザさんはプログラマさんじゃない場合 が多い(これは普通) 開発者さんもプログラマさんじゃない 場合が多い 近い位置にいるのはノベルゲーム関係 の開発環境。吉里吉里とか? 技術をどうやって使ってもらうかの説明 がポイント。けっこう苦労する。 わんくま同盟 大阪勉強会 #23

そろそろ本題:裏方を垣間見る 能書きはこのくらいにして、 伺かって何だろうという疑問に 答えるための中身のおおまかな説明。 能書きはこのくらいにして、 伺かって何だろうという疑問に 答えるための中身のおおまかな説明。 とりあえずざっと紹介するだけなので 気になる人は近くの伺か関係の 開発者さんに聞いてみよう! わんくま同盟 大阪勉強会 #23

概念的な構成図 ゴースト一体 Shell(見た目の定義) 画像 アニメの定義 バルーン Ghost(中身の定義) 台詞集 撫で・つつき反応 その他複雑な動作 Shell(見た目の定義) 画像 アニメの定義 バルーン てか、「ゴースト」に二つ意味があるのが分かりにくいですよね!!1 わんくま同盟 大阪勉強会 #23 ベースウェア OS 12

ゴーストとシェル シェル(Shell)‏ Document-ViewのView部分 画像一式 アニメーション仕様(SERIKO)‏ 当たり判定の定義 要は見た目。 イラストとかはちょっと…という人向けに できあいのものも:「フリーシェル」 わんくま同盟 大阪勉強会 #23

ゴーストとシェル ゴースト(Ghost)‏ 狭義:イベントに反応して 本体への制御命令等を出力する部分 Document-ViewのDocument部分 広義:キャラクターデータ一式 正しくは“Named”と言うけれど… 中核となるのは、その中でも特に “SHIORI”と呼ばれる部分 わんくま同盟 大阪勉強会 #23

ゴーストとシェル 「ゴースト」と「シェル」をあわせて ひとつのキャラクターデータが完成。 「ゴースト」と「シェル」をあわせて ひとつのキャラクターデータが完成。 一つの「ゴースト」に対し複数の 「シェル」を持つことができる。 攻殻機動隊ネタ? “Ghost in the Shell” わんくま同盟 大阪勉強会 #23

ソフトウェア的な構成図 わんくま同盟 大阪勉強会 #23 ←Ghost Shell→ 辞書 (SHIORIごとに 書式は異なる) 透明度付き画像 アニメーション 定義 SHIORI (DLL) バルーン定義 SAORI(DLL) MAKOTO(DLL) 詳細図は「ゴーストとシェル」の後に入れるのがいいと思います。 これは適当に書いてます。 MAKOTO(DLL) SakuraScript SERIKO 実行エンジン ベースウェア(SSP) PLUGIN(DLL) わんくま同盟 大阪勉強会 #23 16

SakuraScript スクリプトというよりHTMLタグに 近いもの。喋りの地の文に埋め込む。 例: \1\s[13]\0\s[5]とりこびっちのおかげで みんなソフト開発のとりこになりました! \_w[1000]\u\s[14]バグのとりこにもね。 \_w[1000]\h\s[65]\n\nそんなこと言わない で… バックスラッシュ+アルファベット+ 大括弧で囲んだパラメータ わんくま同盟 大阪勉強会 #23

SakuraScript 通常、ゴースト作者さんが書くための 一連の仕様、テキストデータ。 台詞+ト書き(スクリプト) 通常、ゴースト作者さんが書くための 一連の仕様、テキストデータ。 台詞+ト書き(スクリプト) ベースウェアから見ればゴーストから ベースウェアへの制御命令群。 XMLとか書くよりちょっと簡単? それでも難しいと思う人向けに SakuraScriptを隠蔽してしまう 環境もある。 わんくま同盟 大阪勉強会 #23

SERIKO [Shell] 画像をアニメーションするための仕様 シェル部分の中核技術の名前。 画像をアニメーションするための仕様 シェル部分の中核技術の名前。 実体はsurfaces.txtというファイル名の テキストファイル(と画像)。 ベースウェアがこれらを読み取り、 アニメーションを実行する。 ゴースト側とは非同期で動く。 わんくま同盟 大阪勉強会 #23

DLL群:SHIORI [Ghost] ゴースト部分の中核技術 通常DLLとして実装される… というより他の方法はまだない 独自の簡易なスクリプト言語エンジン。 里々・華和梨・文… 汎用言語ではつらいので独自に発展 ゴースト作者さんが書くのはSHIORIが 読み込んで実行するスクリプトのみ。 SHIORI自体を作る人は稀。 わんくま同盟 大阪勉強会 #23

DLL群:SHIORI [Ghost] もちろん独自以外のも使える Perl、Ruby、PHP… 中にはLispで組んだ猛者も ただの(Unmanaged)DLLなので C/C++などで処理を直書きOK (あまりやらない) Managedな環境への橋渡しも… わんくま同盟 大阪勉強会 #23

DLL群:SAORI [Ghost] SHIORIの内部実装だけでは足りない 人向けのライブラリみたいなもの。 requireだのuseだのする代わりに、 DLLを読み込む。 ゴースト作者さんは、SAORIを SHIORIに組み込む作業のみ。 「はじめてのおるすばん」なるものが 名前の元ネタらしい…。しおり&さおり? わんくま同盟 大阪勉強会 #23

DLL群:MAKOTO [Ghost/Shell] SHIORIから出力されたSakuraScriptを 単純変換・フィルタ等加工するための モジュール。 実はつい最近まで忘れられた 旧仕様だった。 ゴースト作者さんは変換内容や 辞書等を書くのみ。 シェル側にも入れられる。 わんくま同盟 大阪勉強会 #23

DLL群: PLUGIN 名前の通り、実行エンジンの 機能拡張用モジュール ブラウザなどのプラグインと一緒 ゴーストから制御することも可能 名前の通り、実行エンジンの 機能拡張用モジュール ブラウザなどのプラグインと一緒 ゴーストから制御することも可能 わんくま同盟 大阪勉強会 #23

DLL群共通の話 _declspec(dllexport) __cdecl で エクスポートした関数3つ load・unload・request それらにGMEM_FIXEDをつけた GlobalAllocで確保したメモリを渡す。 やりとりしてる書式は HTTPもどき。 わんくま同盟 大阪勉強会 #23

DLL群共通の話 REQUEST RESPONSE わんくま同盟 大阪勉強会 #23 GET SHIORI/3.0 Sender: SSP Charset: UTF-8 SecurityLevel: local ID: OnMouseDoubleClick Reference0: 238 Reference1: 329 Reference2: 0 Reference3: 0 Reference4: Reference5: 0 RESPONSE SHIORI/3.0 200 OK Sender: AYA Charset: UTF-8 Value: \0\s[5]ここで SakuraScriptを返してバルー ン内で喋ったり表情を変えた りします。\_w[1000]\1\s[10] 自動改行されてるが実は一行 だ。 わんくま同盟 大阪勉強会 #23

SSTP WAN/LAN 対応アプリ TCP/IP 9801 localhost/9801 DirectSSTP FW ベースウェア(SSP) DirectSSTP ゴースト ゴースト わんくま同盟 大阪勉強会 #23

SSTPとは Sakura Script Transfer Protocol TCP/IP ポート9801 HTTPのようなプロトコル 特定のウインドウにWM_COPYDATA することでも通信可能。 DirectSSTPという。 Secure Socket Tunneling Protocolではありません! マイクロソフトの人ごめんなさい。でもうちが先なの… わんくま同盟 大阪勉強会 #23

SSTPの特徴/問題 実行エンジン内で閉じるのではなく、 外部から情報を受け取ったりできる。 別のアプリケーションがゴーストに 何か喋らせる 実行エンジン内で閉じるのではなく、 外部から情報を受け取ったりできる。 別のアプリケーションがゴーストに 何か喋らせる イベント発生処理や「学習」まで… セキュリティ問題… 外部から制御=外部からいたずら サニタイジングやコードとして評価しない など、一般的な対策方法は健在。 わんくま同盟 大阪勉強会 #23

SSTPの種類 SENDとNOTIFY SENDはSakuraScriptを外部から送信する ためだけの仕様 COMMUNICATE ゴースト同士で会話をするための仕様 EXECUTE 外部からの情報取得(バルーン出力なし) GIVE 外部からの学習情報(バルーン出力なし) わんくま同盟 大阪勉強会 #23

SSTP REQUEST RESPONSE SEND SSTP/1.1 Sender: wankuma Script: \h\s[0]ここにSakuraScriptが入るんだね。\u\s[10]改行 表示されてるが実際は1行だ。 Option: notranslate Charset: Shift_JIS RESPONSE SSTP/1.1 204 No Content Charset: Shift_JIS わんくま同盟 大阪勉強会 #23

これからの展望 またの名を「大風呂敷」 といってもどうしても無理って 話ではないです。 といってもどうしても無理って 話ではないです。 ここからスーパーフリーダムタイム。 思いついたら即ツッコミ! わんくま同盟 大阪勉強会 #23

テーマ:実世界との対話 デスクトップに閉じこもってるだけじゃ つまらないよね!もったいないよね! デスクトップに閉じこもってるだけじゃ つまらないよね!もったいないよね! 特に一部の分野は 「フィジカルコンピューティング」 というらしい。 わんくま同盟 大阪勉強会 #23

例1:音声認識 とりあえずよくある話から。 Vistaに標準搭載とかなんとか…? 伺かでは「MicCom」と呼ばれる PLUGINで実現されてます。 実装:umeici氏 / Juliusエンジン 初出:2004/8/29 わんくま同盟 大阪勉強会 #23

例2:音声合成 聞けたら話せないとね。 AquesTalkSAORI 名前の通りAquesTalkエンジン 実装:浮子屋氏 初出:2008/2/2 「葉梨」MAKOTO 人力VOCALOID “UTAU” のようなもの 実装:umeici氏 / 独自合成エンジン 初出:2001/11/27 わんくま同盟 大阪勉強会 #23

例3:加速度センサー わんくま大阪#20/酢酸さん参照。 ノートパソコンが傾いたら ずり落ちるとか… 実はプロトタイプができてます。 ノートパソコンが傾いたら ずり落ちるとか… 実はプロトタイプができてます。 実装:早坂氏 初出:N:TM/ニコ技高槻ミーティング 新規開発はSAORIのみ、SHIORIや シェルは既存のものを利用 わんくま同盟 大阪勉強会 #23

例4:Webカメラで外を知る OpenCVとか使ってデスクトップの 外にあるものを認識してみよう! ワイングラス持ち出してゴーストと 乾杯するとかできたらいいな… 実はプロトタイプ作りかけてます。 実装:酔狂氏 初出:うかべん横浜#2 わんくま同盟 大阪勉強会 #23

他にいいネタ募集! 伺か技術部は あなたのヘンなネタを いつも募集しています。 何か思いついたら知らせてね! 伺か技術部は あなたのヘンなネタを いつも募集しています。 何か思いついたら知らせてね! わんくま同盟 大阪勉強会 #23

まとめ:伺かって何だろう? 人によって疑問の答えは異なります。 「ただのデスクトップアクセサリ」 でもいいんですけれど。 「ただのデスクトップアクセサリ」 でもいいんですけれど。 私は「おもしろそうなことを手軽に 実現するための一連の仕様群」と 思ってます。 わんくま同盟 大阪勉強会 #23

おわりに ただのデスクトップアクセサリには興味あり ません。この中に、おもしろい技術、ヘンな 技術、無駄技術持ちがいたら、あたしのと ころに来なさい。以上! 一風変わったおもしろい「何か」を実現する ために、日夜努力しております。 ぜひ覗いてみてね! 勉強会「うかべん」:次回11/3 OCAT http://study.nanican.net/ わんくま同盟 大阪勉強会 #23