Hatena::ブログ(Diary)

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

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


本体サイト

ゴーストダウンロード

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

2012年11月4日(日)

「moveであそぼう!〜デスクトップを動きまわるゴーストを考える〜」 - buynowforsale様

14:54 | 「moveであそぼう!〜デスクトップを動きまわるゴーストを考える〜」 - buynowforsale様 - げっかんにっき を含むブックマーク 「moveであそぼう!〜デスクトップを動きまわるゴーストを考える〜」 - buynowforsale様 - げっかんにっき のブックマークコメント

  • 自己紹介
    • 作品「エイミーとチー兄ィ」「スペースインベーダー
    • デスクトップをインベーダーが動き回るゴースト(写真)
  • デスクトップを動き回るゴーストって?
    • The Hand (moveタグ)
    • ゆっくりさんぽ (moveタグ)
    • (・∀・) (wmove.dll)
    • とことこシリーズ (winpos.dll)
    • ゆかさくら(?)
  • 「スペースインベーダー」ではmoveタグを利用しているが、moveって?
    • デスクトップ座標系は左上が(0,0)で、下・右へ行くと数字が増える。
    • \![move,200,fix]→デスクトップの指定座標へ動かす。(200,元のY座標)
    • \![set,alignmentとdesktop,free]→デスクトップのどの辺に固定するかを指定。
    • 移動完了までの時間を指定することも可能
    • 指示する座標の基準点も指定できる(\![move,200,-400,0,screen,left.bottom])
      • →左下の角から、右に200、下に-400(上に400)移動した点に移動する。ゴーストの\0側を基準にするなども可能。
    • サーフェスのどこを位置の基準点にするかも指定可能。(\![move,50,50,0,1,center.center])
      • 上記の例では、\0のleft.topを\1のcenter.centerにもって来る
      • \![move,50,50,0,1,center.center,center.center] のとうな書き方も可能。
    • 指示する座標の基準点も指定できる。
      • 自分自身(me)、「Sakura名/ID」で他のゴーストも指定できる。
      • キャラクターを利用した基準点指定について、surface.txtのpoint.basepos 指定を用いることができる。(デフォルトではleft.topが基準)
  • 例:ゴーストの演技として
    • \0が\1に近づく
    • マウスポインタがキャラクターに重なったら、適当な場所に逃げる
  • moveとmoveasyncの違い
    • 扱うパラメータに差はない
    • さくらスクリプト実行時に、キャラクターの移動をスクリプトの実行に同期させるかさせないかの違い
    • 要するに、移動しながら喋り続けるかどうかの違い(asyncだと動きながらも喋る)
  • moveとSHIORiイベントを組み合わせてみる
    • スペースインベーダーの例
      • OnDisplayChangeでデスクトップの大きさを取得
      • OnSecondChangeで一秒ごとにmoveasyncで場所を移動
      • 里々での繰り返し命令を使い、\0〜\8を動かしている
  • 動きに変化をつけたい
    • 直線移動だけでなく曲線的な移動もできるとより可愛くなる
    • ふわふわと漂うように動いてみたり、円や渦巻きをぐるぐると動かす
      • 三角関数を使用する(x=t、y=sin t)
      • 円運動させる(x=cos t、y=sin t)
      • サイクロイド(x=(5-2)cos t+2 sin(1.5t)、y=(5-2)sin t+2 cos(1.5t)、
  • まとめ
    • move、moveasyncは単体で使うだけでなく、他のイベントや関数と組み合わせることでより多彩な動きをデスクトップ上で表現することができる
    • 数学や物理の知識を利用すればより豊かな動きを表現できるよ!
  • 質疑応答
    • 文系にもわかる数学の本はないですか
      • ちくま書房から最近出た「数学入門」とかオススメ。
    • 現在のシェルの位置を取得するのは?
      • ゴースト側で実装してください。
    • move中のゴーストを掴みたい
      • moveキャンセルタグをつくります。スタジオ行き。
    • moveasync中にmoveasyncすると?
      • バグります。やんな。
    • キャラクターは動かし、バルーンは動かさないようにしたいが?
      • moveasyncでは現状できない。仕様書提出してください。
631901
この日記のはてなブックマーク数