atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
FPSを作ってみる@wiki
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
FPSを作ってみる@wiki
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
FPSを作ってみる@wiki
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • FPSを作ってみる@wiki
  • 進捗状況(2011
  • 11)

FPSを作ってみる@wiki

11)

最終更新:2011年11月26日 18:17

slice

- view
管理者のみ編集可

(2011/11/26)

途中結果

Done
  • 行列,ベクトル演算クラスの修正
  • Luaに平面(Plane)クラスを追加,C++関数との相互変換
  • CatmullRom補間とそれを使用したポリライン実装 <= Tweetの軌跡表示に使用
  • Editボックスの修正方法を検討
  • 基本形状クラス同士の当たり判定,交点計算,めり込み深度計算関数を用意
 ↑これにより簡単な判定なら全部Luaで完結させられる(線分と平面の交点を計算など)

予定に含まれてない物もあったりするが,毎度のことなので.
う~む,このペースじゃ11月中に予定が終わるか五分五分といった所か.
CatmullRom補間はいわゆる3次補間で,与えられた点列を滑らかに繋ぐ線を求めたりなんかに使う.
最初スプラインかと思ったがあちらは入力点列を必ず通過するとは限らない(というかまず通過しない)ので目的が違うかなと.
ポリラインはTweetの軌跡表示の他に「柱」作成時,マウスをドラッグした際やユーザーに関連Tweetを指し示したりと用途が広い(といいな!)
右上,右下,左下,左上,・・・・と順に通過点を増やしていくと図のようになる.両端に細工をして矢印のように見せる事もできる.
しかし曲面の分割数決定方法に問題があり,極端に向きが変わる箇所ではポリゴンがぐちゃぐちゃになる.
角度が急な所のみ動的に分割数を増やすべきだろう.

そしてTodoが1つ増える.
Todo
  • ラジオボタン,チェックボックスの修正(古いクラスで,最近自前HUDの描画やアップデート仕様に変更があった為)

とりあえず上記1つとEditボックスのバグ取りが完了すれば「柱」作成の下地はできるかなと.
#追記1
ラジオボタンとチェックボックスの修正は完了した.
Editボックスはボックス内スクロールを実現するために根本的な仕組みを作り直す必要がありそうで,少し時間かかりそうだ


(2011/11/22)

クライアントの名前を決めた

「Twilve」読みは ついるぶ,トゥイルブか?造語だからどうでもいいが.
特に深い意味はない.
私のアカウントを注意深く見ていた人は(居れば)気づいたかも.

相変わらず表に出ない改良が続く.ええと,何したっけかな?
  • ふわふわ漂ってるツイートの球をクリックするとそのツイートにフォーカス.カメラが寄る.
  • ツイートをフォーカスした時,横にユーザープロフィールアイコン表示
  • 非同期でユーザー詳細情報とプロフィールアイコン取って来て,非同期で間に合わせのLoadingアイコンと差し替え
  • Twitterサーバからの返信でもしユーザー詳細情報が含まれていたらテーブルに蓄える(が,何らかの条件で消していかないと消費メモリが増える一方)
  • ツイートのビルボードを馬鹿正直に処理していたのではちょっと距離が離れると小さくなって読めなくなってしまうので,そのへんの細工
  • ツイート投稿
  • ストリームAPIにひとまず対応.だが切断処理とエラー処理をしてない.
  • Luaにデリゲート的な物を実装.GUIのボタン押し下げ通知等に利用.
  • C++で記述したTwitterAPI通信クラスとLuaのクラスとの連携を書き直し.要はリファクタリング.
  • ビルボードを重ねるとZバッファ由来のちらつきが発生するので,カメラ位置に対し微妙に前後にずらす機能を付加
  • 各所のメモリリークなどバグ修正

こんなとこか.1つ1つ説明する気力がない.
躓いたのは非同期でHTTP通信して画像を取得,更新するところ.
といっても非同期な点を除いて別段なんてことない訳だがクラス間の連携がうまくいかず
ああでもない,こうでもないとやっていた.

ユーザー詳細情報というのはプロフィール画像のURLはどこだとか,プロフィール文,フォロワ数なんかが詰まった物と考えてもらえれば.
TLをクエリする時にその都度一緒に送ってもらう事もできるし,パラメタを指定して省くこともできる.
普通に考えればまずはユーザーInfo無しでツイートを取ってきて,必要ならユーザーIDを通じて別途詳細を取得するのが通信量の観点からしてお得なのだが
知っての通りTwitterAPIには呼び出し回数制限というのがあってレートが確か一時間あたり150回,一分あたり2.5回まで
だったりするからちょっと使い込む人はあっという間にアウト.
従ってPCでは常に詳細アリで行く.一応どっちの方針でも処理できるようにはしたが.

で,今後はどうするかというと
  • リプライの実装
  • ツイートがリプライに対しての物だった場合,横に対象のツイートを並べて表示
  • ツイートのパーティクル制御を座標変換含め全てLuaでやっていたら50個超えたあたりで重くなったのでC++化を検討
  • GUIのEditボックスがたまにカーソル位置がバグるので,その修正
  • ツイートの球に軌跡を追加
  • HUDのウィンドウが増えるとマウスカーソル判定回数が異様に膨れ上がる問題の修正
  • RPGの会話ウィンドウのような枠の各部をパーツに分けて描画する(なんて名前かわからない)ビルボードクラスを作成
  • 行列演算クラスの修正.3x4行列 * 3x3行列の積算がうまくいってない等
  • ユーザーが自由に「柱」を置く機能
  • マウスのホイールでカメラの前進,後退,Alt押しながらでロール(!)
これら11月中の予定.完了できれば一応使えるツールにはなる筈.

カメラにロール?と思うかもしれないが
このプログラムはツイートが浮遊する上も下もない3D空間を自由に動くのがコンセプトとしてあって
ユーザーは前後左右の移動と軸にとらわれない方向転換ができるのでロールがあるのは自然かなと.実装もすぐだろうし.

そして「柱」・・まあなんのこっちゃといった感じだろうか.
自分ではTweetFlowと呼んでいるのだが,文字通りツイートが流れていく川のような「部品」である.
ユーザーが好きな場所に配置し,眺める.飽きたら消す.
ソースはホームTLやパブリックTL,検索結果にストリームAPIなどなんでもいいし
気が向けば混ぜてもOK.<=の予定

部品はこれ以外にも幾つか考えてはあるが,今はこれだけ.
たとえば自分に対する返信を表示するMentionsは流れていっちゃ困るからユーザーがチェックするまで留まるようなのとか.

(2011/11/07)

luaプログラムのドキュメント

今の所C++のプログラムはVisualC++のインテリセンスのお陰でとくにドキュメントを作らずとも把握できているのだが
luaはクラスや変数型といった概念がないせいもあってつい最近書いたプログラムでも
ええと引数の型は,順番は・・nilにしてもいいんだっけか?等といちいち確認する事態が多発している.
これでは開発どころじゃないのでやっとこさ,重い腰を上げluadocというドキュメント生成ツールを探して使ってみた.
予め決められたフォーマットでコメントを書いておけば
(画像が小さいけど)こんな風にHTML形式で出力される.
主にファイル最初の説明文,module定義文,あとはテーブルと関数しか認識されない必要最低限仕様のようだ.
クラスを出力できれば良かったが元々luaにクラスは無く
メタテーブルで細工して各自実装する物だから仕方ないかな?
にしても公式マニュアルが適当な気が・・

他には関数の引数,戻り値の説明文に型を記述する場所がないので
自分でフォーマットを決めて書いている.(luadocのソースを弄るのは面倒)
ちなみに説明文中に一部のHTMLタグが使えるようだ.試したのは改行と水平ラインとフォント関連.

(2011/11/05)

メモリ上のファイル

twitter投稿者のアイコンは無事に取得し,ひとまずファイルに保存できた.
ファイルに保存できたなら後は何も難しい事は無い.普段と同じように読み込めば終わりな筈だが・・
ここに来て「わざわざディスクに書き込むと無駄だし遅くないか?」そんな邪念が.
データを受信できたならメモリ上に置いてそこから読み込む.
専用のオブジェクトを用意するのも悪くはないが
折角だから普通のファイルと同じように読み書きできれば便利だなと.
(”折角だから”毎度毎度こいつのせいで進捗が遅い.少々うんざりである)

具体的にはこうした.
ソケット送受信マネージャの関数getFile()の引数にURLと保存先ファイル名を渡すとHTTPプロトコルでファイルをゲットし,保存してくれる.
この時ファイル名を"C:\ImageFile.png"等とすれば通常のファイルを意味する.
"@ImageFile.png"と,最初に@を入れればメモリ上に疑似ファイルとして保存してくれる仕様.
もちろん"@my_image/ImageFile.png"とやれば階層構造にもできる.

で,画像ファイルを外部からHTTPで取ってきてテクスチャとして読み込ませたいなら
TextureMgr.load("@ImageFile.png") のように疑似ファイル名を指定すれば向こう側で
ディスク上のファイルか,メモリ上のファイルか区別する事無く処理が進められる寸法だ.

最初に書くべきだったかもしれないが
ファイル入出力関連はすべて抽象化してあり,従ってファイルを扱うクラスに特別な改変は要らない.
エンジンの初期化時にベースパス(保存先ディレクトリや読み込みディレクトリ)を指定して
ユーザーは全てその下の階層しか読み書き出来ないので間違えて重要なシステムファイルを消したりとかの心配もなし.
無駄に時間かかったしまだ実装が穴だらけとはいえ,作ってよかったと思っている.

(2011/11/02)

アイコン取得

そもそもHTTPヘッダを自前で処理するなんて選択をしたのが間違いだったような気がしなくもない.(単純だろうと甘く見ていた)
というのも,いちいち面倒くさい.画像取ってくるだけなのにHTTPヘッダの解析に手を加えBODYの読み込みにも細工をし・・
いや,HTTPの仕組みはよくわかるんだけども.
これC#やJavaやその他ネットワーク対応のスクリプト言語だったらget("url")とかで一発だよなぁ
逆に考えればTwitterに特化した速いHTTPヘッダ,JSON解析を書けるかも(携帯端末用)・・なんて野望も湧いて来たり.

それはそれとして.ツイートの発言者のアイコンを取ってくる処理を書いている.
URLを送られてくるデータを見るとどうやらPNGならPNGファイルの内容を直に送ってきているだけのようなのでこれを
一端ファイルに保存するかメモリに置くかして
テクスチャに読み込めば行けそうな感じだ.

「11)」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • catmullrom.jpg
  • luadoc.jpg
FPSを作ってみる@wiki
記事メニュー
  • トップページ
  • 参考資料ブックマーク等
  • Tips

Media

  • 頂き物
Screen shot
  • FPS_page1
  • FPS_page2
  • FPS_page3
  • Other_page1
Drawing
  • Drawing(analog)
  • Drawing(digital)
  • Drawing(digital) 2
  • Drawing(digital) 3
  • Drawing(digital) 4
  • Drawing(digital) 5
  • Drawing(digital) 6
  • Drawing(digital) 7
  • Drawing(digital) 8
  • Drawing(digital) 9
  • Drawing(digital) 10
  • Drawing(digital) 11
  • Drawing(digital) 12
  • Drawing(digital) 13
Movie
  • movies-list

Old Contents

  • トップページ(old)
  • メモ書き
  • 力仕事UP場
  • ゲームシステムとか
  • バグ・動作報告
  • program(twilve)

Progress log

  • (2018/03)
  • (2017/04)
  • (2017/03)
  • (2016/10)
  • (2016/09)
  • (2016/08)
  • (2016/07)
  • (2016/06)
  • (2016/05)
  • (2016/04)
  • (2016/03)
  • (2016/02)
  • (2016/01)
  • (2015/12)
  • (2015/11)
  • (2015/10)
  • (2015/09)
  • (2015/08)
  • (2015/07)
  • (2015/06)
  • (2015/05)
  • (2015/04)
  • (2015/03)
  • (2015/02)
  • (2015/01)
  • (2014/12)
  • (2014/11)
  • (2014/10)
  • (2014/09)
  • (2014/08)
  • (2014/07)
  • (2014/06)
  • (2014/05)
  • (2014/04)
  • (2014/03)
  • (2014/02)
  • (2014/01)
  • (2013/12)
  • (2013/11)
  • (2013/10)
  • (2013/09)
  • (2013/08)
  • (2013/07)
  • (2013/06)
  • (2013/05)
  • (2013/04)
  • (2013/03)
  • (2013/02)
  • (2013/01)
  • (2012/12)
  • (2012/11)
  • (2012/10)
  • (2012/09)
  • (2012/08)
  • (2012/07)
  • (2012/06)
  • (2012/05)
  • (2012/04)
  • (2012/03)
  • (2012/02)
  • (2012/01)
  • (2011/12)
  • (2011/11)
  • (2011/10)
  • (2011/09)
  • (2011/08)
  • (2011/07)
  • (2011/06)
  • (2011/05)
  • (2011/04)
  • (2011/03)
  • (2011/02)
  • (2011/01)
  • (2010/12)
  • (2010/11)
  • (2010/10)
  • (2010/09)
  • (2010/08)
  • (2010/07)
  • (2010/06)
  • (2010/05)
  • (2010/04)
  • (2010/03)
  • (2010/02)
  • (2010/01)
  • (2009/12)
  • (2009/11)
  • (2009/10)
  • (2009/09)
  • (2009/08)
  • (2009/07)
  • (2009/06)
  • (2009/05)
  • (2009/04)
  • (2009/03)
  • (2009/02)
  • (2009/01)
  • (2008/12)
  • (2008/11)
  • (2008/10)
  • (2008/09)
  • (2008/08)
  • (2008/07)
  • (2008/06)
  • (2008/05)
  • (2008/04)



記事メニュー2

Update Log

取得中です。
人気記事ランキング
  1. Drawing_analog
もっと見る
最近更新されたページ
  • 2686日前

    menu_L
  • 2686日前

    進捗状況(2018/03)
  • 2686日前

    Drawing_digital_13
  • 2686日前

    Drawing_digital_12
  • 2686日前

    トップページ
  • 2892日前

    Drawing_digital_11
  • 2973日前

    Drawing_digital_10
  • 3005日前

    進捗状況(2017/04)
  • 3046日前

    進捗状況(2017/03)
  • 3097日前

    頂き物
もっと見る
人気記事ランキング
  1. Drawing_analog
もっと見る
最近更新されたページ
  • 2686日前

    menu_L
  • 2686日前

    進捗状況(2018/03)
  • 2686日前

    Drawing_digital_13
  • 2686日前

    Drawing_digital_12
  • 2686日前

    トップページ
  • 2892日前

    Drawing_digital_11
  • 2973日前

    Drawing_digital_10
  • 3005日前

    進捗状況(2017/04)
  • 3046日前

    進捗状況(2017/03)
  • 3097日前

    頂き物
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. AviUtl2のWiki
  3. R.E.P.O. 日本語解説Wiki
  4. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. シュガードール情報まとめウィキ
  6. ソードランページ @ 非公式wiki
  7. ドラゴンボール Sparking! ZERO 攻略Wiki
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. 星飼いの詩@ ウィキ
  10. Dark War Survival攻略
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 検索してはいけない言葉 @ ウィキ
  6. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  7. 発車メロディーwiki
  8. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. オレカバトル アプリ版 @ ウィキ
  10. SDガンダム ジージェネレーションジェネシス 攻略Wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 過去の行動&発言まとめ - 鹿乃つの氏 周辺注意喚起@ウィキ
  2. マイティーストライクフリーダムガンダム - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  3. 魚拓まとめ - 鹿乃つの氏 周辺注意喚起@ウィキ
  4. 参加者一覧 - ストグラ まとめ @ウィキ
  5. 1103環境(遊戯王) - アニヲタWiki(仮)
  6. 前作からの変更点 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  8. コレクター・ユイ - アニヲタWiki(仮)
  9. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  10. 画像倉庫 - 鹿乃つの氏 周辺注意喚起@ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.