Hatena::ブログ(Diary)

げっかんにっき このページをアンテナに追加 RSSフィード

伺かゴースト「レチハルカ」等の更新記録と
鉄道旅行記と、列車コンセント情報がメインの日記です。
伺かゴーストって何? という方は外部解説サイトも御覧下さい。


本体サイト

ゴーストダウンロード

伺か最萌トーナメント終了

2015年5月3日(日) うかべん大阪 #9 テキスト実況

第二部 12:50〜

12:53 | 第二部 12:50〜 - げっかんにっき を含むブックマーク 第二部 12:50〜 - げっかんにっき のブックマークコメント

「3Dで行こう!」 - yasi 様

  • 概要
    • 3Dシェル描画モジュール「Uka3D」について。
  • 2000年以降のゲーム等コンテンツ。
    • 3Dコンテンツが増加。リアルタイムレンダリングによる高品質アニメーションが使われるようになった。
  • もし、3Dシェルが使えたら?
    • 「可愛い仕草」「ゲームのような動き」「めくるのではなく、そっと覗..」
    • →「Uka3D」を使ってみよう!
    • 4年前の「うかべん横浜 #7」にも関連発表あり → http://d.hatena.ne.jp/hinoharu/20111009 「お楽しみ枠」

ーUka3Dの概要

    • 3DモデルをShellとしてリアルタイムレンダリングを行うモジュール。
    • SAORIとしてゴーストに組み込む。本体サーフェスウィンドウと半連動して稼働。
    • テストゴースト「MIKUさんDay's」で公開中。SAORI単体公開を実施。
  • 目的
    • 3D描画による安価なアニメーション表現を実現し、新たなキャラ表現を実現。
    • 一定のプログラミング力が必要であった3Dデスクトップマスコットの作成を安易に。
    • MMD界などからの新たな人材の取り込み。
  • デモンストレーション(MIKUさんDays)
    • 配布版は少し古いバージョン。新バージョン0.2は多ゴースト(多キャラ)立ち上げられるようになっている。
    • きせかえ機能も実装
    • ランダムトークはないが、かわいい仕草をする。新しい表現。
    • https://twitter.com/hinoharu/status/594714373160996864 多キャラモード
  • システム(概要)
    • 描画コア:DirectX9.0C以降(DXライブラリ)
    • 3Dデータ:PMD、モーションデータ:VMD(MMDで利用されているデータ形式
      • MMDの3DデータはPMXに変わりつつある。PMXも読めるが、上位互換部分の機能は動作しない。
    • Surfaces.txtに代わる独自規格の定義ファイル、Character.txt等を使用。
  • システム(構成)
    • 構成図 https://twitter.com/hinoharu/status/594715434496053248
    • Uka3Dでも2D仕様のsurface*.pngなどを保持しているが、ダミーファイル。(黒画像)
      • 旧来のサーフェスウインドウに重ねて3Dモデルを描画している。
    • GhostフォルダにSAORIとしてdllを保存。Ver.2では「Uka3D_Proxy.dll」と「Uka3D.exe」に分けている。
      • キャラクターの数だけ「Uka3D.exeのプロセスが立ち上がり、Proxy経由で本体と通信」
    • Shellフォルダの中に「Uka3D」フォルダを配置し、中にキャラクターデータ・3Dデータ・テクスチャ・アニメ等を保存
      • Uka3DのpmdファイルはDirectXの仕様で「連番」でなければならないが、使いやすさのため、「Character.txt」でエイリアス番号を割り当てしている
    • https://twitter.com/hinoharu/status/594716726517837826
  • システム(通信)
    • 既存のダミーウインドウとUka3Dウインドウの間でデータを通信
    • 起動時:既存ウインドウ→【位置情報】→Uka3Dウインドウ
      • Uka3Dウインドウの作成時に既存ウインドウのWHNDを要求している(?)
      • 前回終了位置をUka3Dレイヤーで保存するのが面倒なので、毎回位置情報を要求
    • 起動後:Uka3Dウインドウ→【マウスイベント、位置情報、Zオーダー】→既存ウインドウ
      • クリック時にバルーンも手前に出てきてもらうためにZオーダーを利用
      • Zオーダーは制御できるときだけしている。「常に手前に表示」には未対応。※SSP本体の「常に手前」と併用のこと
    • Uka3Dウインドウ(Uka3D.exe)だけでなく、Uka3D_Proxy.dll も本体SSPにデータを送っている。(DirectSSTPなど)
      • 複数キャラクターからまとめて本体でデータを受け渡ししないといけないときはproxy経由
  • 定義ファイル
    • 既存のsurfacestxtと同じような書式。
    • アニメイションさせることを前提としたシステム。
      • ループアニメ指定可能(アニメの最初と最後を同じポーズにする)
      • 次に再生されるアニメーションが指定可能
      • モーションA・B間のブレンドアニメーション(モーフィング)設定
    • コリジョン設定ではマテリアルIDを指定する。
      • 3Dの部品のIDみたいなもの
    • 着せ替えのかわりにアクセサリ設定が可能。
    • アニメーションの構成→3つの部分。「動きのある最初の部分」「ポーズ部分」「元に戻る部分」
      • ex.「ビックリして」「固まって」「もとに戻る」→一連の設定を指定することができる
  • 辞書での実装
    • すべての開始イベント(起動、切り替え受け等)でcreateリクエストを実行。
      • createリクエストの引数に「イベント名」を含めることができる→On3DBootのref0で帰ってくる
      • ref0で分岐可能
      • uka3Dウインドウを作る→初期準備を終えたらOn3DBootイベントを返す。
    • すべての終了イベントで明示的アンロード、もしくはallresetリクエストを実行する必要がある。
      • 基本的に、Shioriは終了時にSAORIを自動的にはアンロードしないので、これをしないとUka3Dプロセスが残ってしまう
    • On3DMotionChange (2DでいうOnSurfaceChangeと同じ働き)で通知されるモーションIDをもとに、次に再生するべきモーションIDをリクエストする
  • 課題
    • Character.txtを記述するためにDXライブラリ付属の「DxLibModelViewer」が必要。マテリアルIDを調べるのに使う。
      • 今後、開発ツールに上記ソフト同等の機能を実装する必要がある。誰かやってください。
    • 起動中、ウインドウサイズの変更ができない。(シェルサイズを変更したい、等)
      • 本当は変更できるが、DXライブラリの初期設定を破棄→再読み込みする必要がある。資料を読み込みきれていない。
    • 多キャラ対応したことで更に定義ファイルの企画策定が難航中。一人で決めるのは大変。
      • 実際にゴーストを作ってみるしかない。
      • 仕様公開後に大幅な仕様変更をかける可能性も否定できない
    • SAORIでの実装には限界はある。
      • ex.更新時、SHIORIがSAORIをアンロードするため、更新時はキャラが隠れてしまう
      • できればSAORIの枠の先を目指したいが…SERIKOの切り離しができれば…(ここでぽなさん逃亡)
    • ※2012年当時のやりとり
      • 現在2Dで表示されているゴーストに3Dの追加シェルを作ることはできるか?
      • SERIKOシステムの切り離し仕様に依存するものと思われる。が、おそらく作れるでしょう。それを考えて作っている。(ぽなさん談)
  • 今後の展開
    • 最低限の規格策定後、単体・仕様の公開(専用サイトの開設)
    • テンプレ用サンプルゴーストの作成
    • 3Dシェル支援ツールの作成
    • モデル本体以外の描画(エフェクト等)
  • 企画の策定には皆様の協力が不可欠!今後ともご協力をおねがいします。
  • 質疑
    • 物理演算はリアルタイムなのか、ベイクされているのか?
      • MIKUさんDaysではベイクしていない。(ベイクすることもできる。読み込みが若干遅くなるが、起動後の計算量は減るので軽くなる)
      • 物理演算は入っているが、使うか使わないかデベロッパが決められる。MMD側で定義されているアニメーション(髪の動き方など)はそのまま動く。

「よろしくUKADOC -実写版-」 - もっしょくし 様

  • UKADOCとは?
    • 「Disc2の文章を基盤に、散逸しがちな伺かの仕様文書をできるだけ集めるプロジェクト」
      • いろいろな人が作ったものを集めて一つの作品を作るため、仕様がまとまっていることが大事
    • 伺か関係の仕様文書集約プロジェクト。および、その成果物としてのドキュメントのこと。
    • SSPの公式仕様文書 (※materia、CROWなどの公式文書ではない)
    • サブプロジェクトとして、SSPのヘルプのメンテナンスも実施
      • 現在はヘルプが完全オンライン。オフラインヘルプも整備したい
  • 誰が管理してるの?
    • 「特定」多数共同の管理(コミッタ制)
      • メリット:手がいっぱいある。個人管理のものは情報が古いまま更新が止まってしまったものがある。
      • メリット:Wikiと違い特定管理なので荒らされにくい
    • Ownerは2名(ぽなさん、緋龍華さん)
    • Committer14名(もっしょくしさん、畝某さん など)
  • Disc-2との関係は?
    • Disc-2(緋龍華さん管理)とデザインが似ている→許可を得てデザイン提供いただきました
    • 情報はukadocのほうがup-to-dateなのでぜひご利用ください
  • どう使ったら便利?
    • ページ内容の概要が記載されているので熟読のこと
    • 「記述例」を追加しているので、SSPのSendboxから本体にスクリプトを投げるとサンプル動作させられる(powered by あーるでぃ様)
    • ex:\_bタグの実演。画像をbase64エンコードした文字列を与えてインライン表示するサンプル。かっこいい!
    • ex:ShioriEventのサンプル。OnMouseDoubleClickイベントのリファレンス(引数)の意味を調べてみる。便利!
    • 現状では辞書のような使い方を想定だが、将来的には「教科書」にもしたい。ukadocを見ればゴーストの作り方のツカミを理解できるようにしたい。
      • あまり教科書成分を強くし過ぎるとサイトの軸がぶれるので、「参考書」レベルには濃くしたくない
  • 今後の予定は?
    • 各仕様概説をきちんとまとめる
      • 「駄でべ」にあるSSPの仕様文書を引き上げる(ただしこれはもともとの伺か仕様とSSP仕様の差分でしかない)
      • うさださくら」の根本仕様を補完。ukadocだけ見て全体がわかるようにしたい
    • SHIORI/3.1
      • SSPの仕様をSHIORI/3.1として新しく定義してはどうか?という話
    • もっと根本的な用語定義がほしい(うさださくらにはあるが…)
      • 伺か、GHOST、SHELL など
    • SERIKO描画メソッドなどに図解を追加。
      • Overlay、Replace などをわかりやすく
    • さくらスクリプト以外にも凡例を追加したい
    • 助けてくださるかた募集中!
      • Committerにならなくても良い、画像の編集とか手伝ってくれるだけでok
    • Google Code終了に伴い、GitHubに引っ越し予定
  • 誤字報告や要望はどこへ?
    • サイトのヘッダにある「報告・連絡」ボタンから、SSP Bugtraqの「Todo(SSP以外)」へ!
  • まとめ
    • UKADOCは(SSPの公式)仕様文書集です
    • UKADOCは現在進行形のプロジェクトです
    • UKADOCへのリンクをよろしくお願いします
      • (TIPSを外部記事で書いたときにリファレンスとしてリンクを貼ってもらえると嬉しい)
    • UKADOCはあなたのコミットをお待ちしてます
  • ところで
    • マスコットキャラクターがほしいのですが
      • UKADOG(犬)っていう名前だけ思いついたので、どなたかシェルと辞書書いてください!(安心と信頼の丸投げ)
  • 質疑
    • 「\p[x]タグのサンプルで文中の「\0」がエスケープされてないが?
      • \が抜けています。某あーるでぃーさんを叱っておいてください(byもっしょくしさん)
      • 治りました。(byぽなさん)
    • 万一に備えてうさださくらをバックアップ(保存)しているか?
      • 個人的には念のためしている。
    • Committerになるにはどうしたらいいですか?
      • ぽなさんに言えばもれなくなれます。

「『さとりすと』里々ゴーストの統合開発環境をつくったよ」 - ななっち 様

  • 概要
    • ヤンデレが好き。
    • 「さとりすと」里々ゴーストの統合開発環境。
      • 公開して1年1ヶ月。今も開発・更新中。
  • 統合開発環境とは・
    • ゴーストを作るのに必要なものを色々集めたもの
      • 例:SSP+メモ帳、FFFTP、フォトビューアー、さとりて、れしば、エクスプローラー
      • SSP以外のすべてを「さとりすと」で!
    • 画面例
  • (特長1)辞書のリスト
    • 「同じ名前で」「同じ名前と条件で」トークを追加するようなことが簡単にできる。ランダムトークのリストを作れる。
    • 辞書を直接編集することもできる。
      • 初回起動時にどちらにするか尋ねられる。あとで変更も可能。ファイルごとに変更も可能。
  • (特長2)デバッグ機能
    • 「さとりて」を使わずに、書いたトークをそのままゴーストに喋らせられる。(コピペ不要)
    • 変数の確認と設定、リロード、イベント呼び出しが「さとりすと」から可能。いちいちデバッグ処理をゴーストに組み込む必要がない
    • 「れしば」を内部に持っているので、新たに起動する必要がない
  • (特長3)設定ファイル編集機能
    • satori_conf や developer_options をリスト形式で編集することができる
    • 更新ファイル設定なども可能(削除ファイル等の設定)
  • (特長4)更新アップロード機能
    • FFFTPなどを起動しなくてもOK(自動化システムと同じ機能)
  • (特長5)立ち絵確認機能
    • シェル合成もやってくれるため、別に画像を用意する必要がない
    • 「サーフェスパレット」も作れる
  • (特長6)さわり反応領域表示・編集
  • ヘルプについて
  • やってみたいこと
    • 里々との直接連携
      • 里々本体に「さとりすと」連携専用の機能を搭載して、デバッグをより手軽にしたい。(変数一括取得など)
      • 「さとりすと」専用の機能をつけてもいいのかな…→ぽなさん「いいです」(1秒)
    • リクエスト対応
      • 需要に応じて機能を拡張する、など。いつも使っている人の意見を聞きたい。
      • バグが出てきたら修正します
  • まとめ(一番いいたいこと)
    • ヤンデレゴーストを作ってください!

--

  • おまけ
    • ゴースト配布サイトジェネレータ
      • HTML/CSSを一切書かずに公開サイトを作れます。配布サイト→
  • 実際にやってみた(デモ)
    • スクリプト作成支援機能(サムネイルをダブルクリックでサーフェス番号入力など)
    • 更新ファイルアップロード機能(誰も気づかないくらい一瞬で更新完了→自動ツイート)
    • ukadoc連携、SHIORIイベントリファレンス表示機能
    • 「さとりすと」自動アップデート機能
    • ゴースト新規作成ウィザード
    • その他、痒いところに手が届く機能満載!(めっちゃすごい)
  • 質疑・要望
    • ワンクリックでウエイト挿入できないか?
      • 右クリックメニューをカスタマイズ可能です
    • REPLACE と REPLACE_AFTER の色分け?
      • 設定で可能?
    • 今出来ないけどそのうち実現したいことは?
      • サーフェスプレビューの精度が悪いので、ukadocの拡充してほしい
    • 一部処理で速度が出ない
      • 里々本体との連携ができれば最高
    • 自動でネタを考えてください
      • 恒例なので気にしないでください(ぽなさん)
    • 設定のエクスポート・インポート機能ほしい
      • 全部の設定でよければ設定ファイルを複製してください
    • プラグイン作りたい
      • 入出力まわりの仕様を教えてもらえれば対応したい
    • すでに里々で作っているゴーストを読み込んで編集することもできるか?
      • できる。最初からさとりすとで開発している必要はない。
      • すでに機能をつくりこんだゴーストも読み込めるのか?
      • 可能。さとりすと専用のゴーストになることもない。
    • \eのあとをコメント扱いにしてほしい(\eでトークとしては終了するが、あとにコメントをつけることがある)
      • 「//」と同様の扱いにすればいいのかも。できればやる方向で。

「"ゴーストプレイヤー フロムウエブブラウザア"」 - duxca 様、奈良阪某 様

*奈良阪某さんパート*

  • 如何か(いかがか)とはなにか
    • 新しいベースウェア=SSPみたいなもの
    • SSPはWindows上で動くアプリケーション
    • 如何か=ブラウザ上で動作する。IE/Firefox/Android 等々…
    • Javascriptベースのベースウェアを作り上げるプロジェクト
  • なぜ作ったか?
    • スマートフォン全盛時代にデスクトップの消滅危機
    • ゴーストが立つ場所がなくなる→やばい
    • Windowsデスクトップ依存からの脱却→ブラウザ上で動作させたい
    • 伺かという創作表現の存続を図るために開発
  • なぜ作ったか(2)
    • 先発のSSP等よりもよりよい設計のものが作れるかも?
    • SSPが動かない環境を制覇することがSSPに淘汰されない唯一の道である
  • どう動くのか
    • システム構成図
    • シェル系・イベント処理系・ファイルシステム系・SHIORI系に別れている
    • 存在するファイルからSHIORIを判別する(栞プラグインを利用)
    • シェルとバルーンを起動(duxcaさん担当)
    • 「こういう動作がおこなわれたら」「イベントを発生させる」という処理をプラグイン方式としている
    • 以降、ベースウェアの動きの話を始められる(SSPなどもやっていること)
    • (イベント発火チェーンの開設)→OnBoot発生→さくらスクリプト発生→サーフェス表示!(拍手)
  • 要するにイベント処理のプラグイン大活躍! 自在にカスタマイズ可能
    • さらに、SHIORIもJavascriptで作れる!
  • 課題
    • SAORI対応、美坂栞(クローズドソース)対応 など

*duxca(ダクスカ)さんパート*

  • ゴーストプレイヤー フロムウエブブラウザア
    • 伺か互換環境の人
    • ウェブブラウザで動くシェル描画エンジンを作戦(CATTLEBONE、イカの殻=如何かのシェル)
  • なぜウェブブラウザで動かすの?
    • 最近ゴーストを起動していない理由?
      • ゲイのサディストだから
      • ではなく、Windowsを使っておらず、パソコンを持っておらず、パソコンを使ってないから
      • 最近の若い人はWindows離れが著しい…が、どれも「Webブラウザが動いている」
    • WEBブラウザで動く=移植性が高い!
    • そしてCUTTLEBONEとは…伺かを多様化するコンピュータ環境に潜り込ませるための技術
  • どういうしくみなの?
    • サーフェス描画までの道
      • narダウンロード
      • zip回答jszip
      • Shift-JISのエンコードencoding.js
      • surfaces.txt読んで(sufracesToYaml利用)
      • canvasに描画
  • どう使えばいいの?
    • 描画エンジンを叩く必要がある
    • 再利用も可能
  • まとめ
    • Webブラウザでシェル病がするライブラリを作った
    • IKAGAKA SHELL APIで抽象化
    • 再利用してください!(いろいろなところで活用してね!)
  • 質疑
    • 作った動機は?
      • (duxca)ゴースト配布ページのサンプル画像を(ゴーストのように)動かしたかった!
      • (奈良阪)ブラウザをベースウェアにしたかった!
    • 描画系とベースウェア系に分けてあることでどんな活用ができるか?
      • ユーザが投稿したトークをブラウザで再生したりできるようになる
    • ページをブラウジングしながらゴーストをいじることはできないのか?(専用タブでなく、任意のタブに立たせたい)
      • Chrome Extention などを使えば実現できるかもしれないが、今のところ不明。
      • ぶっちゃけJavascriptが動くならどんな動かし方もできる
    • SAORIの実現のめどは?
      • オープンソースのSAORIがあまりないので、Javascriptで再開発する必要がある。それをするリソースがない。
      • SAORIのインターフェースをどうするかが未定。(Windows上であればdllとして読みこめばいい)
    • (ぽな)いまどきアンマネージドDLLはないよね(と10年前から言っていた)。SSPは過去互換をしながら維持している間に、クリーンな実装が出てくるのを期待していたが、これで実現してしまっている。
    • 開発者側からみてDLLは鬼っ子。できれば脱却したいが…。
      • たとえば「ゴミ箱を空にする」を実現するのに、ブラウザだと各OS用の処理が必要になる。課題。
    • 先の発表のUka3Dとの連結は?
      • Uka3D仕様をCUTTLEBONE上で実現すれば可能では。
    • WebArchiveやウェブ魚拓の中でもゴーストが動くってロマンじゃない?
      • WebArchiveはデータが飛ぶからどこでも動くようにしようよ
    • プラグインカプセル化で実現できそうなこと
      • Ikagaka Shell APIの先に物理ロボットをつなげばリアルシェルも実現可能!?
      • 合成音声バルーンも実現可能!?
    • ぽなさんのコメント
      • すげぇ。
  • おわび
    • 若干まとめきれてない部分があるので、詳しくは発表資料を参照してください(ヒノハル)

2011年5月3日(火) うかべん大阪 #7

第二部 12:50〜

13:00 | 第二部 12:50〜 - げっかんにっき を含むブックマーク 第二部 12:50〜 - げっかんにっき のブックマークコメント

SAORIの紹介〜call_func.dll - しらたま

  • 概要:SAORIの紹介
  • SAORIってなに?
    • SHIORIの機能拡張プラグイン
    • SHIORIによらず共通の処理を外に出して、どのSHIORIからでも使えるようにしよう
      • 壁がみの変更、ゴミ箱の掃除
    • [さおりコレクション]で検索を
  • 簡単なSAORIの仕組み
  • call_func.dllの機能
    • メイン:DLL関数の呼び出し
      • 任意のDLLの関数を呼び出し使用可能
    • サブ:メモリ操作、構造体の作成
      • DLL関数酔いだしに使えるデータ構造を提供
  • DLL関数呼び出し
    • 出来ること
      • DLL関数を呼び出して、めんどうな処理を丸投げ
      • OSの機能(Win32API)の利用
    • 出来ない事
      • コールバック関数が必要な関数呼び出し(何かを列挙するようなこと)
      • ウインドウプロシージャが必要な処理
    • 出来るけど面倒なこと
      • 単純なンウル終端文字列以外が必要な関数の扱い(ファイル選択のダイヤログを出すこと)
  • DLL関数呼び出しの例(詳細は資料を見てください)

  • メモリ操作
    • 出来ること
      • メモリ上に領域を確保、領域の読み書き
    • 出来ないこと
      • 取得したメモリ領域サイズの変更
      • SHIORIの変数自体のアドレスの取得・変更
  • メモリ操作の例(ファイル書き込み)
    • _h=SAORI(cf,'call_func','CreateFileA','aaa.txt',0x40000000,0,0,2,0,0)
    • _p=SAORI(cf,'alloc_mem','str','abc')
    • _p_len=SAORI(cf,'clloc_memo','u32')
    • _=SAORI(cf,'call_fund','WriteFile',_h,_p,3,_p_len,0)
    • _len=SAORI((cf,'get_mem',_p_len,'u32')
    • _=SAORI(cf,'call_func','CloseHandle',_h)
    • _=SAORI(cf,'free_mem',_p,'str')
    • _=SAORI(cf,'free_mem',_p_len,'u32')
      • ※くわしくはしらたまさんの資料で!

  • 構造体作成
    • 出来ること
      • データ型の並びに合わせてメモリ領域確保
      • データ型の並びに合わせて領域の読み書き
    • 出来ないこと
      • 構造体の中に構造体をつくる
      • 共用体のある構造体の表現
  • 構造体作成の例(資料を見てください)

    • 赤枠部分=構造体のメモリ領域の定義
    • 緑枠部分=実際に値を書き込んで、構造体のアドレスを調べる
    • 枠無部分=書き込み関数
    • 青枠部分=メモリ領域の開放
  • 構造体作成のデモ(wavファイルの作成)
  • 応用
    • COM呼び出し(ショートカットの作成など)
    • 圧縮ファイルの解凍(統合アーカイバDLL)
    • 伺かゴーストでファイルインストーラができるぞ!
  • まとめ
    • SAORIは便利!
    • call_func使えばOSの機能使い放題!
    • SAORIを使って/作っておもしろいこと探してみよう!
  • 質疑応答
    • (ぽな)ほかの言語でもできますよね?HSPとかなでしことか
    • (しらたま)できますね。
    • (質問)Win32apiの簡単な索引ができますか?
    • (しらたま)VisualBasic用のWin32apiが平易で良いと思います。HSPのサイトにもあるかも。
    • (質問)この機能を使えば、パソコンを秘書にして「これやっといてくれ」とかできるということ?
    • (しらたま)できます。が、ものすごく大変です。もちろん、このDLLだけでやることもできます。
    • (ぽな)今あるSAORIがないようなことをやりたい時に使うDLLです。
    • (しらたま)SAORIにはなっていないが、OS本体なら簡単にできるようなことに使う。
    • (質問)HSPやなでしこでは、プロシージャやcallback関数はどう扱われているのか?
    • (しらたま)そのプログラム言語独自で持ってるプロシージャで代用している。callbackはあまり実際実装されているのはあまり見たことがない。実現する方法はある。

ワークショップ「デスクトップマスコット30分クッキング(ガチ)」 - 畝傍

  • 概要
    • 新しいゴーストにソロモードをつけてみるデモ
    • シェルの依頼の方法について
  • こんな子の中身をいじります

  • まずは―シェル依頼の方法
    • 今回の子は「○○」と「××」を足して2で割って自信満々にしてよ!とFA-Xさんに言ったらすばらしいものが出てきた!ので、参考になりません
    • 誰々っぽい子っていう指示は人によっては有効。Googleイメージ検索などで探すといいかもしれません。
    • 絵師さんによっては「髪の長い子」とかのラフな指示がいいことも。
    • 完成間際に「ちょっとまってやっぱコレ無し!」は禁じ手!一から作り直しになるのでつるされても知りません
    • 作ってもらったら必ずお礼を!
    • 頼んだら完成まで持っていく! 出来れば、依頼する時点でゴーストはある程度
  • 絵師さんから見たうれしい依頼って?
    • (FA-X)髪が長いか、色、全体的な性格ぐらい言ってもらえれば。服は要相談で。
    • (ぽな)FA-Xさん限定なら、畝傍さんの依頼方法は正しかったってことですね。
    • (とてちてた)チャットでいいから直接話したい。ラグのない方法で。
    • (畝傍)それ出来た方がいいかもしれないねー
    • (ぽな)イメージを詰めていく…。
    • (ぽな)考えれば考えるほど畝傍さんのは悪い方法だったねー。
    • (畝傍)私、FA-Xさんと面識あるのにねー。
    • (畝傍)2次創作のシェル(ゴースト)って、何が楽かって説明がいらないとこですね…。


説明のいらない例
 

    • (畝傍)あと、相手も人間だから、最低限の礼節を守って頼んでください。
    • (ぽな)(畝傍さんの例は)悪い例ですねー。
    • (ぽな)フリーゴーストっていうのを作るといいけど。
    • (畝傍)フランチェスカさんとかがあるんじゃ?
    • (ぽな)あれもそうだけど、もっとこう、トークは出来ててシェル募集、みたいな…
    • (畝傍)キャラの決まったポストみたいな…
    • (畝傍)さっそくグダグダになってますねー
    • (ぽな)済みません!ごめんなさい!じゃあ、本編へ。
  • ゴーストの作りはじめ方
    • (ぽな)作りはじめってどうしてます?
    • (畝傍)別のゴーストをコピーして、新しいゴーストのフォルダに貼り付けて、いらない部分をガーッと消して、ベースを作る。(実際に消しながら)
    • (畝傍)Rポストを大元にしているが、基本的にポストの色は全く出さないように全部消している。きのこや猫どりふは触ってないが…。
    • (ぽな)致命的な問題があって…、SSPと猫どりふを同時に使うとVistaや7では落ちます。原因はわかってるんだけど…
    • (畝傍)猫どりふとか軽く見てるかも。ユーザいなさそうだし…
    • (ぽな)バグ報告が来てるから必ず1人はいるよ!
    • (畝傍)オカクロとか新モードがたくさんあると、どんだけやらなきゃいけないのかーって感じになって…
    • (ぽな)あ、ちなみに、里々にはモード切替機能があって、今回はそれで新モードを作るというデモになります。
  • 辞書ファイルの準備
    • (畝傍)ゴーストには、何かがインストールされたときとか時報とか、いろんな時候のイベントが用意されていて、テンプレの該当部分を書き換えるだけで基本的にできます。
    • (畝傍)里々のゴーストだと、普通のしゃべり(ランダムトーク)、イベントがあったときのしゃべり、などがそれぞれ別のファイルになってます。触り反応の辞書、切替辞書、コミュニケーション辞書。
    • (畝傍)コミュニケーションっていうのは、人様のゴーストと会話したりするっていう。
    • (畝傍)まずは、どこから書き始めるのがいいのか?について話してみます。
    • (畝傍)私はランダムトークありきなので、まずランダムトークを書きます。で、トークが一定数に達したころにキャラが把握できてくるので、そのあとイベント時のトーク(インストール時の反応とか)を書きます。
    • (ぽな)ランダムトークっていうのは、何もしてないときにタラタラしゃべるやつのこと。
    • (畝傍)こういうやつのことですね。(ダブルクリックしてランダムトークさせる) …今気づいたけど、人様の前で自分のランダムトークを書くのって羞恥プレイですね…。
    • (畝傍)基本的に今日もランダムトークでいきたいと思います。前回?のうかべんで、「キーワードを基軸にランダムトークを書く」っていうのをやってみたけど、それを実演してみます。
  • ランダムトーク作成実演
    • (畝傍)そんなわけで、うかべんページのフォームでキーワードを募集してみたんですが、、
    • (畝傍)結局来なかった…。たとえば、「得意科目・苦手科目は何ですか」とか。
    • (とてちてた)保健体育!
    • (ぽな)得意なのか苦手なのか…
    • (追加トーク)「得意科目、ね。体育とか…水泳はちょっと苦手だけど。」
    • (畝傍)トークはオチをつけないといけないんだけど、ソロゴーストは…何が楽かって、オチをいちいちつけないといいって点ですね。ソロゴなら投げっぱなしでOK。
    • (畝傍)トーク中にCボタンを押すとツッコミ選択肢が出るゴーストさんとか…。
    • (畝傍)ツッコミを選ぶことができるようにすると、何通りも書かなきゃいけないから大変だし、ユーザさんのツッコミも「俺こんなこと突っ込まない」ってことになりそうだし…
    • (畝傍)さて苦手な科目はどうしよう?少しは苦手な点をつくっておかないとかわいげがない…。
    • (りすな)ホームルーム!
    • (畝傍)科目じゃないし!
    • (りすな)じゃあ、音楽とか。じつは音痴とか。
    • (畝傍)なるほど、おいしいかも。とりあえず保留!
    • (畝傍)じゃあ、母親の職業は何だろう?
    • (客席)弁護士!
    • (畝傍)ああ、そんな感じ。父親はメーカー勤務で…
    • (ぽな)ちょちょ、そうなの?
    • (畝傍)リードミーに書いてある。大事なのは設定を全部表に書かないこと。後で矛盾がでないように。
    • (ぽな)じゃ、次の質問。言うよ?言っちゃうよ?いい? 「ぱんつの色は何ですか?」
    • (畝傍)質問を募集したら最初に来たのがこれですよ…。黒かしましまですかね…
    • (ぽな)しましま!
    • (畝傍)ユーザさんに質問を募集するのも有効です。で、質問に回答しても、回答しなくてもOK。キャラが正しい答えを知ってるとは限らないし。
    • (追加トーク)「下着の色…? 頭大丈夫?」
    • (ぽな)次の質問…「片栗粉をきゅっきゅともむのは好きですか?」
    • (聴衆)しないよ!
    • (聴衆)するよ!(侃々諤々)
    • (畝傍)今のツッコミの流れ、全部トークにしてしまいましょうか…。あ、大事なこと言うの忘れてたけど、ここで出たアイデアは全部採用されるとは限りませんので。
    • (聴衆)えーー!
    • (聴衆)まあこれ全部採用したらめちゃくちゃに…。
    • (ぽな)次の質問「自転車に乗っているときに、まわりに誰もいないと思ってノリノリで歌を歌って聴かれてしまったことは何ですか?」
    • (畝傍)ないです! っていうか、住んでいる場所にもよるよねこれ。
    • (畝傍)わたしのゴーストはそういう住んでる場所とか絶対決めないです。ユーザの近所に住んでるとかの整合性が…
    • (ぽな)「友達は何人いますか。その中で親友と呼べる人は何人いますか」
    • (畝傍)うーん、友達か…。
    • (聴衆)隣のそれだけが友達とか…
    • (聴衆)(大ウケ)
    • (ぽな)「契約を迫る珍獣をどう思いますか」 これは…
    • (畝傍)これは…、ソロモードじゃない方がいいかも…?
    • (ぽな)むしろ当人がいないところで相方の話をするようなシチュエーションで…
    • (聴衆)ユーザがいないところでは案外優しいとか…
    • (畝傍)むしろアルコールランプで炙ったりしてますね。
    • (ぽな)さてここで、左の生物の中の人の絵ができあがりました!(FA-Xさんずっと描いてた)

    • (一同)(悲鳴と爆笑)
  • まとめ
    • (畝傍)さて、まとめなきゃいけないんですけど、パソコンが固まってしまったので出来ません。
    • (ぽな)マジでダメ?
    • (畝傍)だめです。まあ、とりあえず、前にキーワードを軸にトークを作るって話をしましたが、ユーザさんからの質問から膨らませることもできます。
    • (りすな)どうやったらいっぱい質問が来ますか?
    • (畝傍)私もそれ聞きたいです!
    • (畝傍)とりあえず、ユーザさんから質問が来たらすぐに返す!次の更新に入れる!あとはブログとかに毎回「質問募集中!」って書き続けるのもいいですね。 「え、もう募集終了してるんじゃないの?」って思う人もいるので…。
    • (りすな)ていうか、ニコレット以外に質問が来るようにするにはどうすればいいんですか!
    • (畝傍)………
  • 本当のまとめ
    • (ぽな)じゃ、まとめ! 畝傍さん、公開するときはどんなツール使ってます?
    • (畝傍)ゴースト更新なんとかシステムってやつ…。今配布されてないんですよね…。そだてはうちの環境で動かないので…。
    • (ぽな)えっ。動かないのはバグなのでうちで直します…。じゃ、もう一つ。どう宣伝しました?
    • (畝傍)Disc-2に自分で宣伝しました。あとは自分のブログに上げて、アンテナに引っかかったりとか。あとは…SiReFaSoはうちの環境で動かないので、りすなさんにかわりに登録してもらいました。
    • (ぽな)あれは動かないゴースト多いよねー。
    • (畝傍)craftmanurlでしたっけ?あれがないと登録できないんじゃなかったでしたっけ。
    • (聴衆)ぽなさんに宣伝してもらうとか!
    • (畝傍)うーん、今のエミリのメニュー(註:エミリに切替がついたゴーストを紹介するモードが実装された)、ありがたいんですけど…、ベースウェア作者は中立であった方がいいんじゃないかと…。
    • (ぽな)いいこと考えた!SiReFaSoの新規登録ゴーストデータをSSPで読み込んでおすすめする機能つければ…
    • (畝傍)いいですねそれ。絶対やってください。
    • (りすな)誰か記録しておいて!
    • (フィーネ)ちゃんと録音してますから!
    • (ぽな)や、やります! じゃ、畝傍さんありがとうございました!
    • (畝傍)アドリブでもやってみればけっこうやれるものですね…。
    • (ぽな)っていうか思いっきりオーバーしています……

シェル作成に関して - とてちてた

  • 概要
    • いつもシェル作りの生放送をしているので、それに関しての話をします。
  • デスクトップに綺麗にシェルを表示するには?
    • ?PNG、PNAを使う。
    • PNG自体には透過情報を持ってないので、PNA(モノクロPNG)に透明情報を持たせる。
    • 利点
      • 従来方式のためSSPに限らず使用できる。
      • 背景が緑色だったりして、伺かのsurface画像だおt用意に判断できる。
      • 欠点=PNAの作成が手間(制作ツール「ふちどり」により手間ではなくなった。ファイル数が多くなる。
    • アルファチャンネルつきPNG(APNG)を使う。
    • 利点
      • お絵かきツールから書き出したらすぐ使えるために簡単、便利。
      • PNAというフィルターを通さないのでミスが少なくなると思われる
    • 欠点
      • Materiaやcrow、2010/07/31以前のSSPは対応していない
  • 「ふちどり」について
    • ふちどってくれます。
    • APNGからPNG+PNAの組み合わせを作ってくれる。とても便利。詳しくは「ふちどり」で検索を!(ukiya.sakura.ne.jp)
    • ふちどりを使うには .Net Framework 3.5 SP1 が必要なのでWindowsUpdateをやって入手してね!
  • PNG+PNAとAPNGのサイズ比較実演
    • APNGのみ=1.62KB
    • PNG+PNA=1.16KB
      • ただし毎回結果がかわってよくわからない!
    • 透明度がある(PNAが二値ではない)場合は、ファイルサイズの差が大きくなる傾向があるようだ。
  • ここでぽなさんの補足
    • 基本的にAPNG一枚の方が小さい。画像ヘッダが一枚分で済むので、理想的にいけばそうなるはず。しかし圧縮のアルゴリズムが違うと単純に比較できない。
    • あと、ファイルの読み込みが早くなる。2枚読み込むより1枚読み込む方がオーバーヘッドが少ない。
  • シェルの画像のつくりかた実演(SAI編)
    • 少し透けたエプロンが欲しいというリクエストがあったのでやってみる。

  • 従来のPNAの作り方
    • 全部のレイヤーを合成する。
    • 「不透明度保護」をオンにして、全体を白で塗りつぶす。(元々のαチャンネルレイヤーの濃さで白く塗りつぶされるので、PNAになる。
    • 基本的に背景色は黒にすること!
  • 今のPNAの作り方
    • APNGで書き出して、「ふちどり」に突っ込む。
  • まめちしき
    • 「書き出してから縮小」をすると1ドット・2ドットぐらいずれることがある
    • 「縮小してから書き出し」をする方がよいと思われる。
    • (以前の黒羽龍矢さんの発表に情報があります)
  • で、ゴーストに着せてみた!

  • まとめ
    • みなさんももっと着せ替え作るといいよ!
    • 前、黒羽さんが講演した「バックグラウンドアニメーション」を使うと動くしっぽを実装するのは簡単だが、古いSSPだと悲惨なことになる! ので断念…


こうなる。

  • 質疑応答
    • バックグラウンドアニメーションって何ですか?
      • 普通のアニメーションは全面に全面に書き重ねていくものだが、背面に背面に書いていく記法ががある。身体の後ろにしっぽを振らせたりできる。

実例に見る軽いけど凄い?伺かゴーストの作り方 - C.Ponapalt

  • 自己紹介
    • ベースウェア「SSP」の現開発者
    • 通称「所長」「バグのひと」
      • 配布サイト「ばぐとら研究所」の代表?
      • うかべん大阪主催+統括本部長?
      • SSPのコードを理解するためだけにC++/Win32APIを覚えたド変態(原文ママ)
    • ※重要※ 黄色派。
  • 機能系ゴーストのすすめ
    • デスクトップマスコットの系譜
      • 電子秘書的なものから始まった
      • ちょっと便利なことをやってくれるけど通り一遍の反応しかしない。……ではおもしろくないので、デスクトップ上で生き残れない!さてどうする?
      • →偽春菜の誕生
    • このような経緯があって、「機能系」は衰退傾向…だった。(過去形)
    • Web上でなんでもできる今、デスクトップ上に居残る意味とは何か?
      • JavaSvcriptやHTML5を活用すれば伺的なものは作れる→導入が気軽!(過去資料参照)
      • 「デスクトップ上でないとできない」何かが今だからこそ…
    • Webではできない理由とは?
      • MMDみたいな…
      • R18な…
      • 触り反応…
    • やっぱり秘書さんさせたいよね!
  • 基盤部分の検討
    • いきなりちゃぶ台返し「実は一から作ったほうが早いかも?」
    • 容易にGUIプログラムが組める開発環境の普及→軽くて凄いものが楽にくめる(Javaでくんでる凄いひとがいる)
    • わざわざ独自スクリプト言語や独自規格を学ぶメリットがあるのか?
      • ほかの手段もちょっと考えてみてください。
    • またちゃぶ台返し「『伺か』処理系でいいのか?」
    • 何を作りたいかにっよっては別の実行環境があることに留意。ほかのも見てみよう!
      • キャラリナ(○ルソナウェア)
      • Apricot
      • MMDAgent …など
    • そこそこ安定してそこそこ高機能なら確かにある
  • それでも「伺か」なら…
    • (◕‿‿◕)僕と契約して、開発者になってよ!
    • そもそも私(ぽな)自信が怪しい仕組み超大好物。何かやるんはら相談も受けます!もしかしたら本体にも何か実装します!
    • ここからは、伺かプラットフォーム上で「機能系ゴースト」を作ろうとしている実例紹介と実装の工夫の一部をオレオレ解説!
  • SAMPLE #1 偽りの侠 零次(作者:犬死朗)
    • ずいぶん昔からある、某ATiのチップの名前がついた超多機能ゴースト
    • 大量の.BAT、.EXEファイルの集まり!
      • 見ただけでヤバそう!

    • SHIORiから実行ファイル群・バッチファイル群を呼び出すことで機能積み増し
      • DLL拡張で機能追加(SAORI universal)は全文検索機能など長時間かかる仕事には不向き(フリーズしたように見える)→別プロセスだといいよね!
      • VisualBasicで組んでる、ような…
      • 別プロセス適宜呼び出しなので通常稼働時はそこそこ軽い
    • ここから作者インタビュー!(犬死朗さん)
      • なんか苦労したことは?
      • VBのコンポーネントが必要なことの周知とか…。最近はBATファイルにするようにしている。
  • SAMPLE #2 ざびたん (作者:)
    • 統合サーバ監視ソフトウェア(Zabbix)の擬人化フロントエンドを目指して開発中
      • SHIORI:文/YAYA
      • 声入り!
    • ファイル構成:いたってシンプル。ただ…「zabbi-msg.py」ってナニ??

      • メッセージをゴーストにSSTPで送信。異常メッセージなどもここに入って
      • 直接サーバを監視しているわけではない。zabbi-msg.pyが監視をし、そこからのSSTPを受けて喋るのが役割。


構成図

    • ざびたん動作テスト
  • SAMPLE #3 もへじ男爵(作者:NOB)
    • 月例計算をガチ実装してしまった強者!
    • DLLなし。Pure AYA
      • 月例計算処理は別の言語(たぶんC言語)から移植した→移植可能な程度の機能はある
      • 辞書(スクリプト)ファイルが大変なことになっている。かわりに拡張機能呼び出し無しなので計算のオーバーヘッド極小:軽い!
    • ここから作者インタビュー!(NOBさん)
      • なんか苦労したことは?
      • 基本的には移植可能なソースが公開されてたので、Cライクな文に移植するのはそんなでもなかったが…
      • 旧暦はじつはテーブル参照。100年分のデータが辞書の中に…!


旧暦テーブル!



天体計算!

    • 目医者を呼べ−!
  • 他の例
  • まとめ
    • 本体+SHOIRIの標準機能でもずいぶんできることがある
    • 時間なくなったのでここはあとでまとめます!

unebiunebi 2011/05/03 22:20 実況お疲れ様でした。フリーゴーストの下り、この纏め方だと「フランチェスカさん=フリーゴースト」と読めますね。
「ゴーストがあって、そのシェル作成は自由に」みたいな話だったと思います。件のフリーゴーストは別の方が作っていたかと思うので、出来れば修正をお願い致します。

uu 2011/05/04 09:49 月齢が月例になっています。

ponapaltponapalt 2011/05/08 07:44 zabbi-msg.pyが監視するんじゃなくて、各サーバのzabbix-agentが監視->zabbix-serverでとりまとめ->zabbix-serverからクライアントPCのzabbix-agentにzabbi-msg.pyをリモートコマンドとして実行指示->zabbi-msg.py起動、SSTP送信->ざびたん喋る です。

2010年11月27日(土) うかべん横浜 #6

第一部 13:00〜

12:32 | 第一部 13:00〜 - げっかんにっき を含むブックマーク 第一部 13:00〜 - げっかんにっき のブックマークコメント

前説 - C.Ponapalt

  • みんな昼間っからヒマだね!
  • いつもの通りはじめの人ネタからはじめます。→せんとくん(再)
  • せんとくんのおかげで平城遷都祭は大盛況。せんとくんは県観光マスコットとして再就職
  • めでたいのでせんとくんグッズ争奪じゃんけん大会を開催するよ!
  • というわけで前説終了。(一応いろいろ説明もしたよ)


「キャラクターの作り方」 - りすな

そもそもキャラクターとは何か

    • キャラクターという語の本来の意味は「特徴」「性質」→「個性」
    • キャラクターが個性であるならば、個性を生み出すにはどうすればいいか?
      • すでにある個性を複製・加工すればよい
    • 最も手軽に手に入る個性=作者自身の個性
      • キャラクターは作り手の心・心情・経験・生き方・考え方を複製すれば作れる。
  • (例)「地獄のミサワさん」へのインタビュー(via ascii.jp)
    • 「俺ってハリウッド進出してないよね? てことは今出てるのはジョニーデップか」などというセリフ
    • ミサワさんがかつて「いらっとした」友達を参考にしたキャラクター
    • 「みんなが」ウザイと思うキャラではなく、「作者=ミサワさん」が主観的にウザイと思うキャラを落とし込んでいる
  • シャーロックホームズのキャラクターは、作者コナン・ドイルの恩師ジョーゼフベルの個性を落とし込んで生まれたキャラクターといわれている
  • 既存のキャラクターを丸パクリ
    • 「人の作ったキャラクターへ感じた印象」をキャラクターにする
  • キャラクターを作るときは作者が昔から積み上げてきた印象を大事にすべき

1.キャラを起たせるいくつかの方法 (C)小池和夫

  • 外見とかはどうでもいい
    • じつはゴーストの場合、外見は重要。第一印象は視覚情報が大多数を占める。
    • 小説で「実作に着手する前に、きちんとキャラを決めて下さい」という要望を出すと、登場人物の身長体重から髪型、血液型まで決めてくる人ががいます。ところが、極端なことを言えば、そんなことはどうでも良い。小説において最も重要なのは外見でなく、性格です。」(わかさき・けん)
    • 中身(ゴースト)を作る人が何よりも優先するべき事は性格を考えることだといえる。

2.キャラクターは設定じゃなくてセリフで起たせる

  • 基本は台詞。どれだけ個性に結びつく“遊び”の台詞を入れ込むか。
    • キャラ立ての下手な人は遊びの余裕がなく、キャラがストーリーに関わることしか言わない
    • 台詞をいじって特色を出す「いい男だなあ」→「ウホッ、いい男…」
  • キャラを際だたせるために変わったしゃべり方にする
    • しゃべり方が特徴的「ホロ」「霧雨魔理沙」etc
    • 語尾に何かつける「にょ」「にゅ」「なり」「脳髄グシャー」etc
    • 口癖や決め台詞「ぎゃぼー」「ハハッ」「猫のうんこ踏め!」
    • ゴーストの例「減点○」「シテオク*1」「うるさいよ!」「燃やすゾ」

3.キャラクターの設定は効果的な場所で逆算して使う

  • 黒澤明監督の「椿三十郎」という映画
    • 奥方に名前を尋ねられ→即答せず、庭の椿を見ながら「椿…三十郎。もう少しで四十郎ですが…}
    • 名前と年齢を効果的に利用して演出している
  • 初回起動で全部設定を言ってしまわない方がよいという話

4.キャラクターには願いを持たせる

  • 「願望というのは行動や思考のベースになるため、願い事を設定しておけばキャラクターがぶれなくなる」→行動や発言の矛盾がなくなる
    • 孫悟空「もっと強い奴と戦いたい」
    • ケンシロウ「恋人のユリアと一緒に暮らす」(人助けをしたくてしている訳ではない!)
  • ゴーストにも願いを持たせることで、そのゴーストの行動原理というものを見えてくる

5.キャラクターの強みを一人で出すのは非常に難しい

  • 「キャラクターの強みを出すにはうわさ話を使えばいい」(小池氏}
    • モミアゲ三太夫「俺の名はモミアゲ三太夫!すごいイケメンでモテモテなんだぜ」→うざい
    • モブ「おい、すごいイケメンでモテモテのモミアゲ三太夫がいるぞ」→なんかもてそう
    • モミアゲ三太夫のママ「ウチの息子はとってもイケメンなのよ」→……
  • ある程度距離のあるキャラにうわさ話をさせるといい

6.ユーザもキャラクターである

  • 「ふたりはプリキュア」→ターゲットは4〜9歳の女児と19〜30歳の男性→大きなお友達
    • そういうターゲットが喜ぶようなキャラクター・展開を考えると、プリキュアみたいなお話が出来る
  • 創作物の受け手を想定し、キャラクターにしてしまうことで、そのキャラクターが何を求めているかを考えれば、自分が作るものに何が必要か見えてくる

キャラを起たせるいくつかの方法

1.しぐさを使う

  • クセを出すことで人間味を出す
    • 金田一耕助「考えに夢中になると頭をかき回してフケを飛ばす」
    • 坂本竜馬「話に夢中になると帯のヒモをほどいてかみ始め…」
  • 感情を行動で表現する
    • こちら葛飾区亀有公園前派出所の大原部長「両津のバカはどこだ!」と怒鳴りながら派出所に入ってくる→戦車で派出所に入ってきたりする→尋常じゃなく怒っていることがわかる

2.物を使う

  • キャラクターの凄みや性格、心情や心を表現するために道具を持たせる
    • 緋村剣心「逆刃刀」
    • 藤原拓実「トレノ」
    • ピーナッツのライナス「毛布」
    • アーサー王「誰にも引き抜くことができなかった岩に刺さった剣を抜いた」

3.好奇心をかき立てる要素を外見に入れる

  • 例:黒沢明監督「人物の顔をなかなか映さない」→「どんな顔?」
  • ブラックジャックの主人公「なんで髪の色が一部違うの?なんで顔にキズ?」
  • ゴーストでは…
    • 猫と魔法使い「アンジェラ」なぜかトイレ掃除の…
    • 鉄の夢「栄子」なぜかスコップを…

オマケ:ユーザにこびる方法を考える

1.今流行のキャラクターは変態キャラと萌えキャラ

  • 変態といっても、「特定の分野にものすごい情熱・才能を向けられるキャラクター」をさす
    • のだめカンタービレ「のだめ」→ピアノ
    • 俺の妹が…「高坂桐乃」→萌えアニメ・フィギュア・ギャルゲー
    • 根津愛代理探偵事務所「根津愛」→難事件の解決
    • シャーロックホームズ→難事件の解決
    • 銀河英雄伝説「ヤン・ウェンリー」→歴史・用兵
  • 情熱を持っていて、それをどこかで証明できるキャラクターが人気。作品名よりもキャラクターの名前が先に出てくるようになる。

  • タイムアップにつき「あとは上がってる資料を見てください!」
  • 質疑応答
    • コインいっこいれるって何ですか?
      • むかしゲーセンのゲームで INSERT COIN を訳したらそうなってシテオクー

「いまさらSSTPについて語ってみる」 - Traveler Joe

  • はじめに
    • 自己紹介「Traveler Joe、とじぇ――SSTP-Viewer、NanikaSongPlayerなどを作っています」
    • SSTPって何?「Sakura Script Transfer Protocol」通称毒電波。
    • 外部からゴーストを動かす、プリミティブな機能(2000/12/23実装)
    • なぜ今?→とても古い機能で、他のデスクトップアクセサリに類を見ない。しかしghostやshellに比べて昔の形をそのまま保っているので、それに触れることで昔の思想を理解できるのではないか?
    • SSTPは明日から使える!というものではない。でも知ることで役に立つかも。温故知新!
  • 伺かの基本動作とSSTP
    • ゴーストとは?3つのS
      • 「Shell」…見た目。shellフォルダ。
      • 「Script」…辞書、ネタ。ghostフォルダ。
      • 「Soul」…人格、個性、性格、口調。どこのファイルでも定義されない
    • ghost+shell=named。ゴースト(named)は、ghostとshellの連携によって成り立つ。
    • SSTP(Send)とは…栞を使わず、ベースウェアに直接トークを与える機能。

    • SSTPサーバ&クライアント
      • クライアントは「SSTPを送る側」、サーバは「SSTPを受け取る側」
    • SSTPとHTTPは似ている…が、SSTPとHTTPは「サーバ」「クライアント」のデータのやりとりが逆向き
    • 実際に流れているデータ=プレーンなテキスト(改行やコロンで区切られたもの)
      • ここがHTTPと同じ
  • 通信形態
    • Socket SSTP、Direct SSTP、Owned SSTP…どこから電波が飛んでくるかで分類
      • Socket SSTP=Socket通信(パソコンの外から)飛んでくる
      • Direct SSTP=パソコンの内部で飛んでくる
      • Owned SSTP=自分のプログラムの中で飛び交う
    • Socket SSTP について
      • メリット=
      • デメリット=ポートを明けないといけない、セキュリティリスク、ポートが早い者勝ち
      • ブラックリスティング等でIPをフィルタリングできる(SSPには未実装)、SSTPのさくらスクリプトに使用できるタグは制限されている
    • Direct SSTPについて
      • メリット=ある特定のゴーストを狙い撃ちできる
      • デメリット=(ローカルマシンの中でしか使えない)、Windows限定である!
      • FMO=OSのど真ん中にある「ゴースト住所録」(ベースウェアが管理)
    • Owned SSTPについて
      • 伺かのシステムの中で実行される。shioriやsaoriの間で。
      • パスワード(キー)を持ったDirect SSTPがOwned SSTP。すべてのタグが使える。
    • 今、SSTPと呼ばれているのは Direct SSTP が主流
  • SSTPリクエストメソッド
    • 「SEND SSTP/1.4」ここを差し替えることでいろんな機能を使える
    • 「SEND SSTP/1.4」…しゃべる。
    • 「NOTIFY SSTP/1.0」…Shioriイベントを渡す。「触りイベントだよ」など。
      • 「OnApplicationBoot」などを指定することでスクリプトなしで話をさせることができる。
      • SHIORIイベントはゴースト(デベロパ)が実装していなければならず、使い勝手はあまりよくない
      • デベロパが任意に実装したイベントがベースウェアのイベントに誤爆することも…
    • 「NOTIFY SSTP/1.1」…NOTIFY/1.0 と SSTP/1.4 のいいとこどり
      • SENDイベントで勝手なことを喋らせないこともできるヤツ
    • 「COMMUNICATE SSTP/1.1」…ユーザからゴーストへの「問いかけ」
    • 「COMMUNICATE SSTP/1.2」…1.1に加え、それへの返答も送る。
    • 「EXECUTE SSTP/1.3」…ベースウェアに対してコマンドを実行する。ベースウェアの情報をゲットするのに使われる
      • GetName、GetVersion、Quiet、GetProperty(CROW)、GetCollision(SSP)
      • 「SakuraAPI」という機能もあるよ
  • SSTPから見えること
    • 「この絵を元に会話ネタを考えてみよう」
      • ネタの中にキャラクターの個性がいかほど入ったか?
      • 「個性を問わない」ネタはそんなに出てこない(せいぜい数個)
      • 「個性」を利用すれば一つのネタも何度もおいしくいただける。
    • SSTPは「個性」が軽視されがち(ghost=人格の部分が抜け落ちる)
      • これは欠点というより、汎用性を持っていると考える
      • 一つのネタを、いろんなキャラが利用できる。←→特化性(一つのゴーストでしか使えない。ただしトークは作りやすい)
    • 伺かゴーストは常に「個性」を求められてきて、多様に進化していった→SSTPの意図が薄れてきた
    • しなちく→SEND SSTP/2.0採用。汎用性をのばしたもの
      • さくらスクリプトは使わない
      • 栞も辞書もなく伺かとは互換がない(はずだったが…)
      • デフォルトキャラにも実設定はない
    • どこが汎用的か?
      • サーフェスエイリアスが「angry」「smile」などのエイリアス指定「のみ」が可能
      • テクスチャをフォローするエモーション「fun」「question」などで感情アイコンを表示できる
    • 表現のノウハウが詰まっている…かもしれない
  • 「SSTP Bottle」しなちくと反対の方向に発展したSSTPクライアントシステム
    • しなちくより前から存在。
    • IfGhostを指定して、再生するゴーストを指定することで個性を尊重
      • ただし、IfGhostにより本来共通機能であるSSTP通信にゴーストによるしばりがかかっているのも事実
  • 「特化性」と「汎用性」はトレードオフの関係。
    • 汎用性…いろいろできるがネタを作りづらい
    • 特化性…いろいろしづらいがネタは作りやすい
  • もし「伺的」なソフトウェア」を作るのであれば、このバランスを考慮しておくといいかも
    • どこまでの部分を共通に作って、どこからの部分を特化に作るか?差し替え可能部分をどうする?
    • 1stキャラクターは重要。個性的なものを目指す? それとも非個性的?
      • 個性的にするとインパクトはあるがそのキャラの枠をはみ出られない
      • 非個性的にするとインパクトは薄れるがいろいうろなことができる
  • Named(ゴースト)を作るのであれば、ゴーストは個性を追い続けるのがよい
    • ただし、「ネタ」意外の領域(ニュースや情報)については、まだ持ち味が生きている。プログラムからのDirectSSTPなど
    • 「歌」…歌詞はキャラに依存しない。サーフェスがあればOK。
  • …といった所の可能性は今後も無いわけではない。
    • サーフェスの配置を標準に合わせるとかは無駄ではないかもしれない
  • SSTPから見えるもの(まとめ)
    • SSTPの設計は汎用性を目的としたもの
    • SSTPの歴史は特化性の重要性を示す

待ち受けFlash生成アプリ「まめフラスコ」の紹介 - にわうう

  • まめフラスコってなに?何ができるの?
    • 携帯電話で動くゴーストっぽいのを作るソフトウェア
      • 「まちうけジェニファー」の例
    • まめフラスコ=「まちうけメーカーforフラッシュマスコット」の略
    • ガラケーであなたの作ったゴーストっぽいものが今日いますぐいきなり動く
    • ちょう簡単!立ち絵一枚、トークあれば待ち受けつくれる!

  • まちうけ→携帯電話の待ち受け画面
    • よくある待ち受け画像=恋人・子供・孫・犬猫、芸能人、スポーツ選手、2次元キャラ
    • 静止画=汗顔だけど動かない(´・ω・`)
    • 動く物「マチキャラ」「javaアプリ」=見てて楽しいけど自前で作るのは大変!
    • 簡単だからまめフラスコで作ろうぜ!
  • メーカー→つくるよ!
    • Swfファイルを作るjavaマルチプラットフォーム環境
    • 簡単なGUIgあある。画像1枚、テキスト1行、クリック10回ぐらいからOK!
    • 作成の流れ「素材」→「Java VM」→swf→携帯
  • フラッシュ→ Adobe Flash
    • 動画が得意。Webと相性がいい
    • Flash Lite=携帯端末用Flash Player。国内携帯電話の99%で動作!
    • ソーシャルゲームでも使われている
    • 容量制限がキツイ…100KB!
  • マスコット→マスコットアプリ的な…ちょっと「伺的」なんです
    • 2体のキャラクターが喋る
    • トーク・栞が伺かのサブセット。ミニ華和梨エンジン、さくらスクリプト実行エンジン
    • つつき反応
    • 時刻、電池、電波などを反映可能
  • できること
    • 触り反応対応、物理フィードバック機能つき(携帯バイブ機能)
    • surfaces.txtっぽい基準でcollisionを定義できる
    • 工夫次第でいろいろできるよ!
  • できないこと
    • アニメ―ション(まばたき・みみしっぽ)
    • バルーンのカスタマイズ(今は色のみ)
    • ユーザデータの保存《名前とか誕生日とか)
    • ユーザによる機能拡張(栞とか)
    • ゴースト間コミュニケーション
    • 携帯捜査中でも常に表示したい
  • デモ…の前に…
    • 作りたいけど絵が描けません→なんとか機、Colors、etc
    • 華和梨ってむずかしそう→華和梨「風」なので大丈夫!
    • ゴーストいったい作るのと同じ労力が…→容量制限あるから気軽に!
  • デモ

(左)サトウ Mさんのイラストでやきゅうけん! (右)実際に携帯で動かしてみた(W63SA)

  • まとめ
    • アクセスさえすれば別途インストールなしで「今日いますぐ」「いきなり動く」よ!
      • メール、QRコード、アップロードサイト、ガジェット…
    • これまでとまったく違う層へのアピールができます!
  • 質疑応答
    • 携帯のタッチ機能がないものでもタッチできるのか?
      • 上下キーでカーソルを移動して選択できます(待ち受けにするとさわれないかも…)
    • Flash Light 1.1を使用しているということだが、携帯の機種の違いなどで苦労しませんでしたか
      • 2.0を使うと作りやすいが、あえて普及率の高い1.1を使用した。配列がなかったりしていろいろ大変だったが…。
    • 触り反応のバイブ(振動)を少し遅くすることはできないか?
      • 難しい。ボタンを押したアクションで何かすることしかできないので、遅らせることはできない。ただしAndroid携帯などなら出来るかも?
    • ボタンを押したあとに処理をえんえんとして、その後に振動させれば?
      • できるかも…どうかなあ…
    • (サトウ Mさんより)リンクを通じてサイトを開いたりする機能を実装することは? ウェブサイトのマスコットキャラ的に使える?
      • 技術的にできます。
    • GPSデータを取得することは?
      • 機種依存になるのですぐには難しい。


眼鏡を実装する360,000÷14,000の方法 - C.Ponapalt

  • 自己紹介=SSPのコードを理解するためだけにC++を覚えた変態(本人談)
  • 眼鏡をどう実装したものかは永遠の課題
    • いろんな眼鏡をかけさせよう
    • 非眼鏡派向けに外せるようにしよう
    • みんな眼鏡にしてしまおう

COLORSでメガネをかけさせてみた

  • 初心者向け―一番良い眼鏡を頼む
    • ふつうに合成→左上の抜き色が透明になるのを利用→レンズ入ってないように見える…
    • 半透明演算つき→PNAもしくはAPNGを利用。descript.txtで黒塗り無効にする
      • seriko.paint_transparent?region_black,0 と書けばOK

(左)サーフェス合成 (右)着せ替え定義

  • 外せるようにしたい
    • 着せ替え?→定義が難しい?→そんなことないよ!
      • 着せ替え定義の実例=surfaces.txtとdescript.txtの両方にわたって数字をそろえなければいけないのだけが大変だが、そこを気にすれば簡単
      • 実は menuitemX のXはなんでも良い!(個別判別用のid)
  • 着せ替え定義の新機能
    • 毎回3種類もの定義IDを維持して矛盾なく更新するのは大変
    • [descript.txt] sakura.menu,auto
      • グループ(カテゴリ)定義ごとに階層化してくれる
      • 項目が多い場合は分割表示
      • れいちぇるの(こすぷれ)れすとらん
    • sakura.menu,none というオプションも構想中。さくらスクリプト制御専用
    • このあとの内容全部ふっとばして実装していい?→らめぇ

  • ゴースト概要―上級者的実装
    • 誰にでもメガネ。(もちろん相手のゴーストは一切触らない)
  • 要は「メガネ版 The Hand」
    • Osuwari.dllを使用
    • 当たり判定が外部から取れることを利用して別ウインドウに追従制御
    • Face(顔)当たり判定がわかればあとは適当に位置補正
    • 相手ウインドウの「表情が変わった」ことを示す通知が必要
      • 現状外部から全く取れない
      • ウインドウサイズの変更を検出?→変わらないことも…
      • どうしよう…
    • OnOtherSurfaceChange を実装(本体魔改造)
      • \![set,othersurfacechange.true] もあわせて実装
  • 実装の問題点
    • 当たり判定だけでは顔の向き検出不可
      • 正面向き・わずかに横向き・完全に横向き・首をかしげているetc.
    • ウインドウ追従が遅い
      • 直接合成しているわけではないので「ついていく」様子が見える
      • たまに裏に隠れる…

Osuwari.dllのアーキテクチャ

  • じゃあ認識すれば良いじゃん―超級者向け
    • 画像認識技術(OpenCV)を使用
    • 「画像を解析して目と鼻の位置を解析してしまえばいいじゃない!」
    • ボーナス:当たり判定がなくても、あるいは「伺か」ですらなくてもメガネ装備可能
  • 顔認識…OpenCV
    • 総合画像処理・解析ライブラリ
      • 物体認識はその一機能
    • 横浜#2 大阪#4 横浜#4 の酔狂さんの発表
      • Webカメラで撮った画像(動画)をリアルタイム認識(手やその他の物)
    • リアル物体認識ができるのならアニメ顔も普通に認識できるんじゃ?
  • アニメ顔認識…すでにある!
  • 当たり判定自動定義
    • 顔が取れるならいろんな特徴部位を検出して「当たり判定自動定義」も?
    • 問題点:髪は特徴があるけど
      • Headはいろんな髪型があるだけにうまく特徴を認識できるかどうか
      • Bustに至っては絶望的だ!(そもそも検出できる特徴がない)
  • ま・る・な・げv
    • 大妄想すぎて実装できませんでした!
      • 当初某さとー氏からこれ実装しろと言われてたんですが…
      • 無茶ぶりすぎる。
    • 誰かやってください!
      • 酔狂氏とか。
  • 質疑応答
    • サングラスではだめなんですか?!
      • 別にいいのでは…
    • 黒目線とか…
      • さっき私がやったでしょ!
    • (浮子屋)顔の中で目は丸い形をしているので、○が1つなら横を向いてる、などのヒューリスティックな実装は?
      • やってください!
    • ゴースト側でメガネ領域を定義するという方法は?
      • アニメーション実装した方が楽なんじゃ… というのはおいといてそれもありだと思う。

せんとくん争奪じゃんけん大会

羨望の的の賞品

  • ゲットした方おくやみもう…おめでとうございました!

ディスカッション「限りなくポジティブに自分の作品を宣伝しよう」

  • (例)「フィーネ・ラグサズの場合」
    • Readme.txt作成テンプレートフォーム
      • ゴースト名などの必要項目がフォームになっている
      • 項目はアンケートで募集したもの
      • テキストの修飾も選択できます!
    • Install.txt作成テンプレートフォーム
      • ゴースト、シェル、バルーンを選べます
    • descript.txt作成…
      • 同様
  • (ぽな)実は途中でネガティブなことを言ったら即ツッコミのつもりだったんだけどチャンスがなかった…
  • (フィーネ)がんばったよ!
  • (ぽな)一人やってほしい人がいるんだけど…こいずみ玲衣さん!
  • (こいずみ)えっ…
  • (フィーネ)ちなみにさっきの私ので4分くらいです。けっこう詰め込めます。
  • (ぽな)30秒でもいいです。でもネガティブなこと言ったら即ツッコミます。
  • (こいずみ)こんにちは。こいずみです。自分が最近作ったものです。まめフラスコで作りました。さわり反応いっぱいです! 表情も差分をたくさん作ったのにサイズはスリム! ブログにリンクがあるのでダウンロードしてみて! PHSの人はPCで! よろしく!
  • (ぽな)すごいです。すばらしいです。実は全く仕込んでません。皆さん宣伝しましょうよ。TJさんお願いします。
  • (TJ)は?
  • (拍手)
  • (TJ)えー、何かソングプレーヤーというのを作ってます。ゴーストに片っ端から歌えるようにするアプリにしたいなと思ってます。今仕様を練っていますが、そのうち形になると思いますのでそのときは皆さんもよろしくお願いします。
  • (ぽな)…ツッコミ入れる余地がないんですが。宣伝する時って何に気をつけたらいいと思いますか? せっかく宣伝するんだからネガティブなことは言わないようにしようと。
  • (りすな)プレゼンの人の話を聞いたんですが、ネガティブな話って使える。「この洗濯機はすばらしい」と言い続けられると、聞いている人は「それ本当かな…」とおもってしまう。最初にネガティブな意見を言ってしまうと、その後のポジティブの点を信じる傾向があるらしい。
  • (ぽな)なるほど…
  • (TJ)今の話のネガティブな意見っていうのは、具体的で実のあることのことではないの? ぽなさんが言ってるのは、根拠のない自信のなさみたいなことでは?「たいしたことしてないので…」とか
  • (ぽな)まあそうですが、でもネガティブなことって言ってると自信なくなってくるよね。
  • (ぽな)宣伝するときに、何か気をつけるべき…効果的な方法はないですかね。まあいいや。nobさん。
  • (nob)え? おれ?
  • (ぽな)目があったら最後ですよ。
  • (nob)私、2001年ごろから何かの略歴。というサイトをやっておりまして、しかし最近はSSPぐらいしか更新されてないんじゃない?と思われるかもしれませんが、最近は意図的に新しいソフトを開拓しています。にわううさんのとかColorsべータとか。今後もがんばっていくのでよろしくお願いします。
  • (ぽな)確かにまとめサイトに乗せてもらえると強いよね。なるほど。にせさんまだいます?
  • (にせ)!?
  • (にせ)…にせと申します。ゴーストを作るゴースト、Librisというものを使っています。書式がめちゃくちゃ簡単で、テキストエディタで一行書くと一行がランダムトークになるよ!というだけで出来ます!みんな使ってください!
  • (フィーネ)そろそろしめた方がいいんじゃないかな?時間が…
  • (ぽな)わかりました!じゃ最後にwizさん!
  • (wiz)!?
  • (wiz)宣伝するものがないよ…
  • (フィーネ)うかべんの宣伝をしたら。
  • (wiz)そうか!でももっと投げ銭くださいとか…うーん…
  • (ぽな)ネガティブになってる!
  • (wiz)おお!じゃあ、もっとアンケートに回答してください!回答は後でいろいろ役に立ちます。回答の内容自体も面白いものがそろったのでグラフとかがんばって作りました!みなさんこれからも回答、参加よろしくお願いします!
  • (ぽな)実は今みたいな話もしてほしいと思って企画しました。今後も、宣伝したい!という人はうかべんのメールアドレスにメールください!5分から出来ます!
  • (wiz)2分でも1分でも!
  • (ぽな)さて、そろそろ…3時間半ぐらい長丁場寝ずにがんばっていただきました。いろいろ不手際があっ……あ、ネガティブコメントなしだよね!
  • (ぽな)みんなありがとう!またきてね!
  • (歓声でエンディング)
  • (おまけ)次回開催は?
  • (ぽな)大阪は未定です…。このまままいくと年度末にかかってしまうので。でもやるとしたらやっぱりOCATかな!

*1:嬉しいような嬉しくないような微妙な感情を表す(via マイコンベーシック)

CoHALnCoHALn 2010/11/28 23:48 りすなさんの話に出てくる「小池和夫」は「小池一夫」が正解ね。劇画村塾〜

2010年5月4日(火) うかべん横浜 #5

前半の部

12:00 |  前半の部 - げっかんにっき を含むブックマーク  前半の部 - げっかんにっき のブックマークコメント

「システム開発から見たゴースト開発」 - フィーネ・ラグサズ

  • 前説
    • 今回で横浜も5回目。なんか気分いいですね!
    • 懇親会参加率も9割以上!にぎやかになるといいですね!
  • 概要
    • システム開発とゴースト開発には共通項が多い。→システム開発のノウハウがゴースト開発に役立つのではないか?
  • システム開発の流れ
    1. 要件定義=どんなものが欲しいのか整理すること
    2. 基本設計=どんな形(インタフェース、データ形式)がいいかを大まかに設計すること
    3. 詳細設計=基本設計を元にして細かく画面や機能の設計図を書くこと
    4. 実装=プログラム本体を作る。コーディング、リソース作成
    5. テスト=バグ探しと修正、一番大変とも言われる
    6. リリース=完成。納品。この後契約に応じて修正や機能追加もある
  • ゴーストの開発にあてはめると…?
    • 要件定義=○○なゴーストが欲しい!ということをおおまかに考える段階
      • ツンデレなゴーストが…
      • ミニゲーム…
      • コミュニケート…
      • ベースウェアの限界性能を引き出したゴーストが欲しい…
      • 没にしたアイデアも他に役に立つかもしれないのでとっておきましょう
    • 基本設計・詳細設計=性格は?シェルは?搭載機能は?SHIORIは?ねとわくは?
      • 本来なら設計図を書くのだが、ゴーストではそんなの書かなくてもOK
    • 実装・テスト・リリース=そのまんま。
      • とくにイベント等はテスト必須(しないとどうなるか身を持って知った)
  • 応用できそうなこと
    • 辞書を書くときに役に立ちそうなネタ
      • わかりやすい名前をつける
      • 書き方(コーディング)に規則性を持たせる
      • コメントをつける
    • 関数などにわかりやすい名前をつける
      • 一文字変数はやめよう( a, i, hensu1 )
      • 意味のある単語を使おう( useNm=ユーザー名 )
      • →意味が通る範囲で母音を省略するなどして、短い変数名にするのが通例。
    • 書き方に決まりをつくろう
      • 改行やカッコの使い方を全体で統一する。辞書の書き方はかなり自由度が高い。
    • コメントをつけよう
      • だいたいの栞では辞書にコメントを挿入できる。実行時は無視されるので何を書いてもいい。
      • 「明日の自分は今日の自分とは別の人」といいます! 一年後に見返すとコメントなしでは理解できません
      • 関数の機能、引数の定義、if条件の中身(ここはどんな条件?)
      • コメントに愚痴とか書くとユーザにも読めるので注意!
  • まとめ
    • システム開発の流れとゴースト開発の流れは似ている
      • 段階を追って考えるやり方は流用できる
    • 辞書を書く際はルールを決めると読みやすくなる
      • 名前はわかりやすく
      • 書き方に規則をつける
      • コメントをつける
  • 質疑応答

    • ループに i とか使うのは?
      • その場限りで短い変数を使うのはあり。( for ($i=1;$i<$length;$i++)
      • ただ、たとえば好感度を「$L」などで表すのは好ましくない。後で見て意味がわからない。
  • 感想
    • コメントアウトで使わなくなったコードを隠したりしますが、本当はあまり良くないのですよね…。

「Ghostの設計と進化」 - C.Ponapalt

  • 自己紹介
  • 通称「所長」「バグのひと」もはやエンバグが持ちネタ
  • 概要
    • 現在の伺かの実装とその理由をガチプログラマーレベルまで解説してその傾向と対策をばりばり再考してみようぜ!」シリーズ(難易度4/3)
    • 今回のネタ=「通信」…内部・外部両方の通信実装とその理由について
    • C++を使ったことがあってWin32APIをぶったたいている人向けのおはなし。
    • (次回はアニメーションとかの実装の話をしたい)
    • この講座はベースウェア開発者の愚痴が半分です!(元ネタの本も実はそんなかんじ)
  • 全体構造の外観(おさらい)
    • (全体概要)
    • (外部通信)
      • 見た目(Shell)と中身(Ghost)の分離
      • 互いの制御は「本体」を介さないとできない(制御用はSakuraScript経由)
      •  
    • 昔はShellしかなかった
      • 元々はShellが複数、Ghostは1つだった。(口調語尾変更機能はこのへんがモト)
      •  
  • 「ゆるい結合」の内幕=「ゆるい結合」の仕方と問題点
      • 開発想定言語=C/C++、生のWin32API、実行環境=materia・SSP
  • 内部処理用実装(Shiori、Saori、Makoto、Plugin)…中で何をやっているのか?
    • 中身はただのDLL。(細かいことはスライド参照)
      • インタフェース(戸口)は「load、unload、request」の3つのみ。
      • うち、本当に働いているのはrequestのみ
    • BOOL load(HGLOBAL h. LONG len)
      • hの中身は「データを読み込むパス」へのポインタ、通常DLLの場所と同じ
      • lenはパスの長さ。(hは冒頭の場所だけを示しているため、パスの長さを指定)ゼロ終端ではない
      • ゼロ終端であること前提の処理をするとDLLが原因で落ちることがある。
      • ただしSSPではこっそり最後に\0をつけてるので大丈夫
    • BOOL unload(void)
      • 解放時に呼び出される。
      • 失敗(返値FALSE)でも誰も面倒見ない(あとは野となれ山となれ)
    • HGLOBAL request(HGLOBAL h, LONG *len)
      • *len は、長さの場所を示してる変数へのポインタ
      • 渡されたHGLOBALはDLLがGlobalFree
      • 返値はDLL側で改めてGlobalAllocして、さらにLONGへのポインタの先にそのサイズを代入
        LONG *lenは本体側がAllocしているので、DLL側はそこに長さを書き込むだけでよい。)
        (返ってくるデータが巨大な場合巨大な「長さ」が代入される。例:ゴーストリスト
      • 行き来するメモリの中身はHTTPヘッダもどき(GET SHIORI/3.0)
      • ゼロ終端ではない
  • 利点欠点
    • 利点=とにかく超高速
      • プロセス間通信やソケットやその他複雑な仕組みは一切ないので高速
      • 同じメモリ空間内でデータを行ったりきたりさせるだけ(YAYAの関数呼び出しなんかより全然速い)
      • 実装もずいぶん楽
    • 欠点=子亀こけたら親亀も…
      • DLL内で不具合があればアプリごと落ちる
      • DLLを別プロセスにすれば大丈夫(ex.Google Chrome)だが、互換性が…
      • 別プロセスにすると、たとえばosuwari.dllなどは動作しない。(他のウインドウの情報を得られなくなるため)
        CROWはそういう実装
  • その他終端
    • 続きはウェブで!(流されました)
    • なぜゼロ終端ではなく長さ指定なの?
    • なぜ _cdecl なの?
    • そのた
  • 外部との通信(SSTP = Sakura Script Transfer Protocol)
    • 動作中のプロセスの外から制御用スクリプトを送り込むための仕組み
    • Interprocess Communiation(IPC)=プロセス間通信
    • TCP/IP上にのせる(Socket)SSTPと、OSのIPC機構…
    • 外から通信するか内部通信するかの違いで中身はほとんど同じ。渡されるデータ形式も似てる。
      • SEND SSTP/1.2 ...
  • SocketSSTPとDirectSSTP
    • SocketSSTPは、データをポート9801にたたき込めば動く。(SSPがサーバになっている)
      • TCP/IPは遅い(ヘッダ文字列解析はもっと重い)
      • ポート9801しか窓口がない、ファイアウォールが…)
    • DirectSSTPは?
      • 軽い
      • OS内部でしか使えない
  • DSSTPの仕組み
    • IPC用ウインドウメッセージを打ち込む
      • SendMessage(相手先hwnd, WM_COPYDATA, 自分のhwnd,COPYDATASTRUCTポインタ)
    • hwndって?
      • 特定のウインドウを示すIDのようなもの
      • ID=0番(\0側のウインドウを指す
      • ではそのウインドウハンドルはどうやって得るの?
    • ウインドウハンドルの一覧はFMO(File Mapping Object)に入っている
      • ふぁいるをメモリ空間上に割り付ける(mapping)ためのもの。目次。
        普通は何バイト目から何バイト読めってことしかできない
    • ファイルに関連づけられていないFMOも作れる
      • OS内のプロセス間共有領域が作れる。hwndのカタログにぴったり
    • FMOの実際の中身(写真)
    • 詳細な実装方法(写真)
      • FMOを作ったり書いたりするためのAPIが用意されている
      • FMOをロックするためのMutexがある(書き込み権限を取得するためのもの)→SakuraFMO
  • 現状の問題点
    • セキュリティ問題
      • SakuraScriptの危険なタグ→一応フィルタリングされてる
      • FMOの中身が壊れたら→そもそも実装が危険…、共有オブジェクトはあまり使わない方がいいとまで言われている
    • Windowsべったりの古い方法であること
  • 伺か以外の例は?
    • キャラリナ
    • Apricot
  • キャラリナ
    • 見た目定義部は一応あるが、画像ファイル+アニメーション定義のみ
      • hpg/hp2/hp3、hps(アニメーション定義)
      • 非同期アニメーション可能
      • Shellのようなデータセットはなく、見た目部分を独立して扱えない
    • かなり密結合気味。内部通信なんか必要ないぐらい癒着している
      • 表情変更:綾織スクリプト内部で描画命令、画像をウインドウに直接描ける、加工可能
      • なんでも好きなことができる
      • (スクリプトの例画像)
    • 外部通信機能もそれなりにある
      • プラグインによる拡張もできる
      • 「インフォデリ」「キャラデリ」
    • SSTPのような自由な制御手段はないため、実際やるとなると外部から綾織スクリプトを流し込むという超危険技が必要
  • Apricot
    • XMLファイル+画像によるシンプル定義
      • 1つのでかいXMLファイルに「sequence」というリストをつくり定義している(トーク・アニメーション)
      • イベント定義・条件分岐には制限がある
      • 定義的には超すっきり。今シェル定義を考えるならこうなる、という例
    • シンプルな構造なので通信は必要ない。ただしそれだけ出来ない事も多い
      • RSS的な使われ方を考えている? キャラクターや物語を表現するものじゃない
      • ただし外部の膨大なデータが利用できる(自動生成ランダムトーク)
  • デジタルスプライト(ぐぐれ)
  • まとめ
    • 機能強化
    • ゆるい結合の利点
    • 疎結合の利点を損ねない拡張
  • ゆるい結合の利点とは
    • 柔軟なデータの変更(追加Shellとか)
    • 開発が楽な「まるなげ」構造」
      • 同時に考えなくてはいけないものが少なくてすむ
      • 「イベント駆動」、「Model-View-Controller」→開発を楽にするための一般的構造
        表示部分、データ部分、それらを制御する部分にわけられる
      • 「オブジェクト指向」の根幹にも通じる
  • 機能の強化
    • 表現力強化
      • 「ふきだしアニメーション」「バルーン内のリッチテキスト」「Shellにテキスト入れたい」
      • こういう拡張は「結合がゆるいまま」、する必要がある
      • 動的Shell定義機能、噴出しへの過度な拡張などはちょっと危険
    • そのような点を重視しながら開発をしている。ので、機能要望する側もすこーしだけ考えてね!

「例の検索システムを里々で作ってみた」 - yamagashi

  • 「例の検索システム」とは?
    • うかべん横浜#4でのないんないん氏の発表(http://d.hatena.ne.jp/hinoharu/20091108
    • ゴーストが検索語句を受け取り、googleの検索引数につっこんで、ブラウザのかわりに検索をする
    • 返ってきたHTMLを解析し、ユーザに提示する(もしくはブラウザで結果を表示する)
  1. まずメニューから検索エンジンを選択(google、yahoo、wikipediaなど)
    検索エンジンに対応するURLはゴーストに内蔵されている。
  2. OnUserInputイベントを使用し、検索語句をユーザに入力させる
  3. 検索エンジンのURLとユーザの入力した検索語句を合成し、\![open,brouser,...]タグへ突っ込む
  • エラー処理
    • 入力された検索語句が""(なにもない)場合
      • 例1)トップページURLを用意しておけば、トップページに飛ぶようにする
      • 例2)ランダム用語で検索する(これだからマサオは etc)
  • 恐怖の物質DHMOについて
    • これ、ゴースト「DHMO」開発宣言と受け取ってよろしいですかね?
  • 質疑応答
    • 検索結果表示をブラウザに任せるのではなく、ゴースト内でdigestして表示できないか?
      • がんばればできるかも?やってみる。

「今日から役に立つ(かもしれない)豆知識」 - 神夜みゅん

  • 概要
    • SSPの一部機能をおさらい。
  • 開発パレット=今や必須の機能!
    • 利点
      • サーフェス一覧が簡単にチェックできる
      • エラーログ表示させバグ拾いができる。
      • 当たり判定表示でシェル作成時にも確認可能
    • 欠点?
      • 常に表示させておくとちょっと邪魔!(ぽな「小さくする仕様書書いてください」)
  • 本体設定
    • フォルダ設定(ゴーストフォルダ、バルーンフォルダ他)
    • 利点
      • たくさんゴーストをインストールしている場合、フォルダわけをすることでメニューから選びやすくなる
        (ゴーストメニューが階層化されるのは初耳!)
    • 欠点
      • セーブ読み(Reta)を使っていたり、その対象となるゴーストを別フォルダにするとRetaが読んでくれない?
      • ゴースト間でセーブデータを読み合ったりする場合(FSWなど)
  • 本体設定-開発/その他
    • 開発時に有用な設定が多い
    • 欠点
      • Vanish抑制機能をONにすると、ゴースト上の演出に影響が出る可能性がある(演出上の削除など)
      • 初回起動の選択肢の選び方によっては消えてしまうようなゴーストの場合
    • 神夜さんの場合
      • ディレクトリをドロップした際に更新ファイルやNARを作成
      • Vanish実行を抑制
      • 複数起動ロックを解除(危険)→通常実行環境と開発環境を別SSPにしている
  • (危険)って何?!
    • 同じゴーストを複数起動できる。→セーブデータの書き換えが競合する、ファイル読み込み
    • 同時に複数同じものを起動することは基本的に危険
    • でもぽなさんはチェック入れてる。
  • 使ってるぞグラフ
    • ゴースト名のところで右クリックするとゴーストを呼び出すことができる
    • 「データ削除」が並んでるので注意
  • おまけ「Reta」って何?
    • 配布元「Postic」
    • AYA as SAORI追加モジュール
    • ほかのゴーストのセーブデータを読むことができる(文、里々、華和梨、美坂)
    • 対象ゴーストが同じフォルダにないと読むことができない
    • 続きはwebで!
  • 質疑応答
    • ぽなさん的にもっと使ってほしい機能は?
      • ひとしきり使ってもらってるからあまり言うことないが…言うなればエクスプローラー?
      • カレンダーとメッセンジャーは使わないでほしい☆
      • 「サーフェスが存在しないときに非表示とする」→スクリプトをミスってると消える。(変な素の表情が表示されない)
      • エラー通知レベル変更→「Critical」「Warning」など。シェル定義エラーでも表示できる

「絵の描き方〜とりあえず手を動かしてみよう〜」 - こいずみ玲衣(rera)

  • 概要
    • 絵を描いてみたいけど難しそう、という人に、まずは手の動かし方をレクチャー。
    • 大丈夫!できる!できる!諦めなければ大丈夫!(shuzo風に読んでください)
    • すでに絵を描いてる人はお絵かきでもしていてください。
  • 必要な道具
    • アナログ=白っぽい紙、鉛筆(シャーペン)
    • デジタル=ペンタブレット、絵を描くためのアプリケーション(ドローソフト)
  • とりあえず練習してみる
    • ただひたすらに円を描く。綺麗な円になるように意識しながら描く。
    • 円がめんどうならうにゅうを描く。良いうにゅうになるように意識しながら描く。
    • だけどうにゅうは難しい。
    • 疲れたり飽きたらやめる。またやりたくなったらやる。
  • こいずみさんの絵の描き方
    • 描き始める前にどんな絵にするかぼんやり考える。
    • 自分の中でなんとなく決まったら描き始める。ずっと考えててもダメ。
    • (書き方の例画像)
    • 塗り方とかはpixivで調べる
    • イメージ通りにならないことの方が多い。気にしないようにしよう
  • 描くのがつらくなることもある。そんなときは…
    • 寝る。夜更かしや徹夜をしてたら休む。
    • 別のことをする。好きなことをしながらまた描きたくなるまで待つ
      • こいずみさんは空や建物の写真を撮ったりしてるそうです。気分転換に、絵の資料に。
    • うまくいかない理由を考えるのはほどほどに。
      • いろいろ考えるのはいいこと。でも、考えすぎてただの言い訳にならないように。
  • まとめ
    • 絵を描いてみたいと思ったら、その気持ちが消えないうちに何か描いてみる。円でもうにゅうでもOK。
    • 年単位で放置しても大丈夫。完全に投げ出さなければ大丈夫。
    • 最初は思い通りにならないかもしれないけど、描きたくなったときにまた手を動かそう!
  • 質疑応答
    • なんで○なんですか?
      • 丸の方がなんとなくいいような気がするから?
      • 丸は描くのがむずかしいし、ゆがむとすぐわかるから?
    • 描いたものはすぐ人に見せるのがいいの?それとも自分の中でつきつめた方がいいの?
      • うまくなりたいのか、楽しくやりたいのかによる。ほめられたい人はうまく出来たと思うのを見せていくといい。
    • 32bitPNGには対応しないの?
      • してます。ただし互換性の関係でデフォルトではPNAのみ読み込む。

    • (以下、明日香さんとぽなさんのやりとり)
      • PNAファイルってなんのためにあるんですか?なんか容量食ってるんですが→PNGの中にアルファチャンネルを埋め込める環境が少なかった。
      • PNAファイルがあるとどう違うの?→エッジがなめらかになる。透明度も変えられる。
      • 消したらまずいの?→まずいです!!!!

2009年11月8日(日)

午後の部(2)

14:11 | 午後の部(2) - げっかんにっき を含むブックマーク 午後の部(2) - げっかんにっき のブックマークコメント

伺かじゃなくても出来るけど伺かでも出来るアレとか』 - かるた様

  • アニメーション、ゴーストの演出などを基本からおさらい、提案する。
  • アニメーションってどうできているの?
    • アニメーションは基本的にパラパラ漫画。

アニメーションのコマ割りの例

    • コマ数(画像の枚数、中割の数)が増えるほど滑らかな動きになる。だけど枚数が多いと煩雑になるので、多くもなく少なくもなくバランスのよい枚数にするのがよい
  • 自分が作ったアニメーションやアクションに、ユーザの視線を釘付けにするには?
    • 一度見たことのあるトークがたくさん出てくると、ユーザにスルーされやすい
  • レアトークの出現時、レアイベント発生時など、「ここだけは見てほしい!」というときに、使えるかも知れない小技
    • 某PlayStati○nのCMを目立たせている手法を見習ってみる
      • SonyのCM特有のOPに独特の音をつける(ボン、というサウンド)→つい見てしまう
      • とくに普段から音が出ているゴーストには有効な手段(例:握江トクなど)
    • ゴーストの間合いを拡大する(後述)
    • もういっそCD/DVDドライブを開閉してアピールする。(これも一手法としてはありだけど…自己責任で!)
  • 「間合いを広げる」とは? → 動きの少ないゴーストに使えるかもしれない注目手段

ゴーストの「間合い」

  • 手段1:アイコン(いわゆる漫符)
    • 普段はないものが突然出現するとき、人目が集まることが多い
    • アイコンを使うと表情差分が少ないシェルでも感情表現を補足できる利点もある
    • アイコンクリックすると何か(フラグが立つとか)が起きる、ということを事前に周知しておくことで、ユーザによるイベント発生の認識を確実にさせることができる(ユーザに能動的にイベントを起こさせることができる)
  • 手段2:「音喩」(ざわ…ざわ…、ゴシカァン! etc.)
    • アイコンと違って雰囲気や勢いが表現しやすい
    • 元ネタが有名であればあるほどユーザに伝わりやすい
    • 使いすぎるとウザいので注意!


(上)アイコン(漫符)、(下)音喩 の例

  • 手段3:ユーザビリティとか無視して、デスクトップ全域を支配
    • ユーザにとって、ゴーストはデスクトップ内の一部領域に居るものである。ユーザはその領域の外でほかの作業をしている。
    • その画面を全てゴーストがジャックすることで、大きなインパクトをユーザに与えることができる。
    • 画面をキャプチャして取り込み保存、そのスクリーンショット画像に対し「分割」「割れ」などの処理をおこない、デスクトップ全面に表示する(saoriを使えば可能)。

画面全体を支配する演出の例

  • デスクトップ全域を使った演出の利点
    • ユーザに対して強力にアピールすることができる。ていうかここまでやっても気づかない人はそもそも画面見ていない。あきらめよう
    • 広い画面にイベントを表示できるので、派手な演出ができる。
  • 欠点
    • 邪魔!
    • 負荷が大きい!
    • ウザい!(これが原因で削除されても責任は負えません)
  • デスクトップ全域を使用した演出の例
    • 「画面を切る」を超える演出「画面を割る」→ユーザは困る
    • 80ピースくらいのパズルにする→ユーザは面倒くさくなる
    • 浮遊型のゴーストだったら、好き勝手に画面を飛ばす→ユーザは困る
    • 上下に分割して中で影絵の猫を踊らせる→ユーザは困惑する
  • まとめ
    • 画面全体の演出は非常にリスクを伴うので注意! でも効果的に使うと効果は絶大なのでよく考えて使うといいです!
  • (発表にあたってサンプルシェル画像としてうぃん様の「尭風舜雨」を使用されており、その画面を引用させていただいております)

休憩(14:40〜15:00)

  • シェル急募
    • 朝のSVNのセッションから出てきたネタ「TortoiseSVNたん」
    • 「知的な秘書さん」「スーツ姿」「めがね」
    • しかし背中に亀の甲羅
    • これはひどい
    • “訓練された”シェル作者さん募集(※ネタ的意味で)
  • 興味のある方は ぽな@ばぐとら 様へコンタクト!

『ゴーストと暮らすワンルーム』 - 酔狂様

  • 現実世界に存在する物体を触ったり眺めたりするのと同じように、ユーザと伺かのゴースト・シェルに対して、もっとリアルなインタラクション(相互作用)をできるようになったら嬉しい!
  • 具体的にゴーストと何ができたら楽しい? → 「ゴーストがそこに立ってる感」が欲しい
  • 「立ってる感」ってなに? どうやって演出すればいいの?
    • ゴーストの足下に奥行きのついた床や影を表示。まさに「床に立っている」ように見える

「床に立ってる感」の例


キャラクターを床に立たせてみた。キャラの足もとに床板が見える。

    • 画面を見ているユーザの視線方向を検出できれば、ユーザが見ている方向に応じた角度で床を表示することも可能
    • PCにウェブカメラを接続してユーザを撮影し、ユーザの画面に対する相対的な位置を検出することで実現
  • 「立ってる感」を実現するためのPlugin 「床」年内にリリース予定?
  • では、床が見えない(=足下が見切れている)ゴーストの場合はどうするの?
    • 背景の「壁」を立体的に表示してやる
    • これも、ユーザの視点にあわせて壁の角度を適切に表示してやることで、ワンルームの部屋に立っているキャラクターを外から覗き込んでいるような感覚を表現できる。
    • 「ゴーストと暮らすワンルーム」の実現!

キャラクターの後ろに「壁」を表示してみた例(ゴースト「あくのそしき」)

  • この「ワンルーム」を作成するために必要な技術は?
    • OpenCV(3Dライブラリ)で、ウェブカメラの映像の中のユーザの顔を認識し、視点位置を計算する
    • .Net 3.0 で立体的な床や壁を表示する
  • 実際に顔認識アルゴリズムをやってみた。その際の裏話。
    • 今回は、ユーザの顔と手を認識できるようにした。
    • 実は、人間の顔を認識させる関数はOpenCVにもとから実装されているので、顔認識はそれを使用。
    • 手を認識させるために、実際の画像を使って「手」を学習させるアルゴリズムを試してみた。そのためには画像を10000枚くらい学習させる必要があるが、発表まで時間が足りない
    • Amazon EC2 というレンタルコンピュータを借りて計算した。超モンスターマシン。61円/時間程度で借りられる。
    • ある画像に映っているのが「手」であるか、「手以外のもの」であるかを判別できるようにしたい。自分の手や指を撮った動画をキャプチャして、OpenCVでいろいろ加工したものを「正解画像」、手が映っていない風景画像などを「不正解画像」として大量生産。
    • 可能な限りローカルのコンピュータで準備したあと、レンタルコンピュータに投入して計算実行!
    • 7時間9分で計算完了! めでたく手の認識ができるようになった。
  • 質疑応答
    • OpenCV講座やって!→横浜#5でよろしく!
    • Googleストリートビューと顔・指認識を組み合わせたら、画面の前で顔の位置や角度を変えるだけで、ストリートビューの視点を動かせるようになるのでは?→ストリートビューのAPIが限定的で難しいが、やってみたい
    • ゴーストを自由移動したら下の床はどうなるの?→ゴーストの動きをトラッキングしたいが、SSPの内部仕様がわからない。ゴーストが動かされたことを外部プロセスで知りたい。どうすればいいんだろう?→「グローバルフック」で可能
    • PSの「パラッパラッパー」のようなことはできるか?→SSP側の協力が必要!(背景にゆらゆらするものを置いたりはできる)
    • ゴーストを下から見上げられるようにできないのか?→もちろんできる。(今回のデモでは封印した)
    • もしこれが汎用になったら、学習のプロセスで何をしないとだめなの?→ユーザにはさせないで済むようにしたい。「オンライン学習」という違うアプローチもあるがまだ研究レベル。できるだけ多くの人に対応できるような識別キーを作ったうえで配布する。
  • しばらく後、公式の動作デモムービーがうかべんのサーバにアップロードされるようです。

休憩 (15:30〜15:45)


ディスカッション『うかべんだけど何か質問ある?』 - (司会進行)ぽな@ばぐとら 様

(ペーパーで質問を応募し、その中から抽選で採用される形式です)

  • 絵の描き方を知りたいな(イラストつき)
    • (ぽな)あんた絵描いてるやん!
    • (質問者)絵を描けない、とあきらめてる人が多いんではないか? まずはとっかかりの「描けるようになったきっかけ」を発表できないか?
    • (さとー)絵師さんを招聘して「その人の」流儀を説明してもらうことは可能?
    • (ぽな)結論!絵師さんに丸投げ!
  • 無断の二次創作ってどうよ?
    • (さとー)女性系だと「二次創作するなら一言」っていうスタンスが多いような気がするんだけど、その立場からってどうよ?
    • 無断というか、二次創作自由だけど、後で自分にも見せてほしい!
    • 何かを作ってもらえるということはそれだけで幸せなことだと思う。そして、作ったものはいつまでも残してほしい。消してしまうのはもったいない。
    • (さとー)「残しましょう」に賛成。一方で、自分の作品を出すのは自分でコントロールしたいという人もいる。そこんところを踏まえる必要はある。
  • (TJ)今の汎用サーフェス番号振り(0が素、1が照れ、2が驚き…)についてどう思う?
    • サーフェス番組の分類
      • 1.汎用サーフェスが基本
      • 2.汎用サーフェスはお約束として実装するが、メインは他のサーフェス
      • 3.汎用サーフェスは使用しないが、空欄にしている
      • 4.汎用サーフェス?何それ?(無視しているか、知らない)
    • (さとー)汎用サーフェスは「さくら」時代のもので、今は独自のものを普及させようとしている(COLORS)
    • 作り込みたい人は汎用サーフェスとか動きとかあった方がいい。一方で技術的な人はサーフェスではない他の部分を重視するのでは?
    • (TJ)フリーシェルを作る人はどう考えているのか? フリーシェルを作る人が参考するような汎用サーフェス案があれば、ゴーストベンダとシェルベンダのやりとりが楽になるのでは?
    • (ぽな)それは、単なる参考としてだよね?
    • (TJ)へたれデベロパWikiでアンケートをやってみたいので、ご協力をお願いします
  • Sendboxの位置初期化がわかりません
    • (ぽな)仕様書いて投げてください(=今はできない
  • surface.txtを日本語で扱えるようになりませんか?アニメーションの定義などを日本語で文章的に書きたい
    • (ぽな)「画像3」とか書くのか!?
    • animationを「アニメーション」とかと書けるようにしたいのか?
    • (さとー)プリプロセッサ実装は?
    • (ぽな)それは今考えてた!
    • (さとー)プリプロセッサは、最初に単純に文字列を置換する機能。C言語ではおなじみ。
    • (ぽな)仕様提出!以上!
    • サーフェス番号ではなく、「怒り」とか「笑い」で指定できないか?
    • (さとー)すでに仕様はある。「エイリアス」機能。ぽなさんに仕様投げます。
  • Linuxのninix-ayaとkawari8でどこまでできる?
    • (さとー)saori以外は動く。
  • デベはどのくらいの期間でゴーストを作ってますか?
    • (さとー)これは作り込み具合でだいぶ変わってくるのか?
    • どれぐらいの規模のゴーストを作っているのかという質問にすれば?
    • 質問が「ゴーストを作る」であって、「完成する」でないのが気になる。
    • ゴーストに完成はないです。
    • (フィーネ)ゴーストを公開するまでの時間を発表すれば?
    • (Wiz)ゴースト名と、公開までの時間を聞いてみたら? どれもピンキリだと思うし。
    • (ぽな)MobileMaster は 2週間。3年ぐらい練っているものもある。
  • ねたが全く浮かばないときはどうしますか?
    • (複数)寝る!
  • ランダムトーク中心のゴーストを作成中ですが、公開のめどとなるトーク数・さわり反応はいくつくらい・どの程度あればよいですか?
    • (ぽな)10!
    • アンケートの結果では、トーク数30、さわりは各3ぐらいでは?
    • 「(仮)」をつける前提なら、10前後くらいで出し、各人の反応を見てもらう。
    • (ぽな)ユーザとデベロパそれぞれに分けると数字が違う! デベロパの立場だと最低30、ユーザの立場では最低100
    • (TJ)聞いた話では、トーク数が30を超えたあたりからキツい。そのあたりでキャラクターの性格を確立する必要があるため。ちなみに、30までは最初から言わせたいことのストックがあるため比較的に楽。
  • 今後SSPは旧OSを切り捨てる方向ですか?新OSの新機能を導入していく方向ですか?
    • (ぽな)旧環境を切り捨てるつもりはない。新しいOSへの対応は出来る範囲でやる。本当なら半透明(レイヤードウインドウ)を必ず使うようにしたいが、古い環境を使ってる人もいるので今後もしばらくは旧互換を維持する。
  • マウス表記のX・Y座標が拡大表示に維持されなくなっていませんか?
    • (ぽな)シェル拡大と連動して当たり判定の座標値も変化するのが正しい。違うならバグだ!報告求む!
  • 着せ替えパーツを着せている間のみ、特定の当たり判定を表示できませんか?
    • (ぽな)仕様に悩む!仕様求む!
    • (Wiz.)足が見えるシェルのときだけ足の部分に当たり反応を作りたいことがあった。(ゴースト:Unknown)「つねに足である部分」「足だったり服だったりする部分」「つねに服である部分」に分けてリージョンをつけた。
    • (質問者)不定形多角形のリージョンをさわれるようにしたいが…
    • (ぽな)実装の下準備はできているが、仕様がない!仕様書かいて!
  • AYA→YAYAへの移行のいい点は?
    • 速い!機能が多い!バグが多い!以上!
  • descript.txtにするバージョン表記はどこで使われているのですか?
    • surface.txtじゃない?
    • (ぽな)たぶんそうだね、SSPの内部実装でよければ説明します。使ってません!
    • バージョン1.0と2.0の表記をチャンポンしたら動かなくなった!
    • (ぽな)内部で自動判別してるはずなんだけれど…
    • フリーシェルのsurface.txtを混ぜたらだめでした。
    • (ぽな)統一してください。
  • ユーザの大半がわからなさそうなネタを話すゴーストには解説があったほうがいいですか/あるならどんな形式の物がいいですか
    • (ぽな)わかりやすいものとわからないものを混ぜるといいかも。わからないものばかりだと興味がうすれるのでは?アンカー機能を使うのが標準的?
    • (さとー)最近実装されたツールチップもいいんじゃない?トークをぶったぎらなくてすむ。
  • 酔狂氏の講演に関連して、バックグラウンド画像の色を、SSP側で、サーフェスか好感度に応じて上書き・調節することはできませんか?
    • バックグラウンド画像の色とは、先の発表(=酔狂さんの「ゴーストと暮らすワンルーム」)における壁の色のこと。要するに、あのアプリをゴーストから制御できないか?
    • 起動中に画像を変えたりというのは可能。色を変えたり、というのはどういう機能にすればいいか迷うので、仕様書いてください。
  • どうしたらうかべんのネタが増えますか?
    • (ぽな)がんばるしかないやろ!
  • トークが10から増えません。どんなトークを増やせばいいでしょうか?
    • (ぽな)がんばれ!精進が足りん!
    • (フィーネ)気の合う友達にネタを振って、妄想を増幅するといいのでは。
    • トークを長くしてみたり、アンカー追加したり
    • (ヒノハル)100質とか引っ張ってきてゴーストに答えさせるとか
    • 10個になった時点で公開して、トークを公募してみる?使ってる人に考えさせる?
  • 歌っておどらせたい!
    • (ぽな)スクリプト書いてください!
    • (駅長)書いた本人ですが、
    • (ぽな)はい次!
    • (駅長)ちょま、歌って踊るデータを書いたとして、どこに発表すればいいのか?
    • ニコ動!(ほか多数)
    • (駅長)できればスクリプトこみで投稿したい。通常の手段ではJASRACの壁が…、それをうまく抜ける方法はないのか?そういうコミュニティあったら教えて欲しい
    • JASRACにお金払うか、JASRACにもお金を払っているニコ動にうpするのがいいのでは?
    • (駅長)ニコ動のオリジナルデータはどうやって流通しているの?
    • (ぽな)あぷろだとか…zipでくれってやつ。
    • (TJ)歌詞データはやはり流通するのはまずい。
    • (駅長)踊らせるだけならOKなのかな。
    • ニコ動にも「踊ってみた」カテゴリがあるのでいいのでは。
  • 所長さんのLet's Noteを机の上から落としたい。
    • (ぽな)(落とそうとする)
    • (会場)まてまてまて!
  • 最萌トーナメントでヴィイが勝つ方法。どうすればいいでしょうか?(面白い感じで)
    • 一票入るごとに脱ぐ!
    • (ぽな)200とか300とか行くんだから!
    • (実況)あの、放送できる内容でお願いします……
    • (ぽな)結論、勝ったら脱ぎます!
    • (実況)私実況するんですが、一枚一枚脱いでいくのを実況するんですか?
    • (ぽな)そうです!
    • (実況)じゃあ、そういうことになったら、実況します。おっぱいおっぱいばかり言ってて大家さんに追い出されないといいな…
  • (ぽな)時間がなくなってしまった。残りは私が責任を持ってお蔵入りします。
  • (会場)おつか…ちょっと待て!

  • Tortoiseたんのシェル募集結果
    • (ぽな)さっき募集したら、Tortoiseたんのシェルが来てしまった。大発表!
    • (画像ちょっと待ってね!b(・ω<)d)
    • (ぽな)これは甲羅ではない!!!
    • (さとー)すっげー、華和梨(しおりーず)をベースにして作ってる…
    • (ぽな)全員に依頼するよ!いいね!
    • (会場)(拍手)
  • バグ報告のやり方を教えて!
    • (ぽな)エラーで落ちたときはテキストが出来るから送って!

これにて散会!

(感想等は後日追記します)

638293
この日記のはてなブックマーク数