14/12/27(土)
06:44

また風邪かインフルかうつされた。 年末年始に熱出す率の高さは異常。

09:44

インフルじゃなかったあああああああ! まだ戦える。


14/12/22(月)
21:27

仕様変更と、その作業が期間内に終わる事前提で話を切り出してくるT。 3月のスケジュールを俺が居ること前提で話すK。 仕様変更をせき止められないY。 伝え漏れとテーブル設計の元凶N。 休日出て平日休むS。 ハンニバルでもこいつらのリーダーは務まらん! 俺? 俺は1末で契約切れるんで、この中に含まれません。 あー、それと、仕様変更する前に仕様決定してない所詰めて貰えませんかねぇ。 自分、引継ぎ視野に入れて動いてるんで、巻きでお願いします。


14/12/20(土)
17:18

ナチュラルに具合悪い。


14/12/19(金)
22:54

ヒャッハー! サーバ復活! っていうかplanexのhubが死んでた。 LANケーブルをWLANルータに刺せば即復活だったわけだが、 気付いたのが0時半だし、風邪引いてるし、仕事なぜか休めないし、土曜出社だし、 仕様変更多すぎてアタマがヘンになりそうだし、もぅマジ無理。 NETGEARの8ポートのなんたらいうのを今日買って来て今解決。 あー、仕事の方は解決しそうにねーな。 明日会話上手く誘導してプロジェクト抜けられねーかなぁ、と夢見る乙女モードでーす。 とある一言言わせられれば、それ切り口にして抜けられんじゃねーかなああああああああ!!!!! そんな甘くねーかなぁ・・・。


14/12/16(火)
00:09

喉が痛い、風邪気味。 カタロムを数年振りに買って見たら、今回からデータ暗号化だと!? 画像データはCCZの中にzip形式でフツーに入ってるので、絵だけ確認するなら難しくない。 ccatalog87.dbは17byte周期になってるので、簡単な暗号化っぽいけどバイナリ眺めただけじゃわからんか。 逆汗ってちょいちょい追っかけてみたけど、ファイル名参照(恐らく直後にOpen)~ReadFile()まで ざっくり人力で追っかけられる程度のコード量っぽいので、 インラインアセンブラでそのまま再実装するか、Cに置き換えるかして読めそうな雰囲気。 最終的には泥端末で見たいんだけど、糞プロジェクトのせいでそういう事してる余裕ねぇなぁ。


14/12/10(水)
21:58

今日は定時より30分近くも早く上がれたぜえええええええ! ※定時=21時換算 ・・・そんな馬鹿な話があるかああああああああああ!!!!!! まぁそんな話がいっぱいあるIT業界の中ではマシな部類ですが。 汚い手使いまくってゴッソリ作業減らしたけど、 なんか全部ムダになってキレて爆発する予感が・・・。 ・・・この話もIT業界じゃテンプレだぁね。


14/12/09(火)
21:21

ネックになりそうなとこが片付いた。 明日から多少遅れ取り戻せそう。 焼け石に水だけどね。 仕様変更の影響範囲舐め過ぎ。 coderと管理erの溝は深い。


14/12/05(金)
20:21

ほぼスマホって通話機能無いんだぜ?(通話アプリを手動終了 危うく暴力に訴えそうになるレベルの事件発生したので、今週末は休むわー。


14/11/29(土)
21:10

30分早く帰宅程度のインスタントじゃその場しのぎすな。 ターンエンドしたら俺のターン来ねー。 辞表系のアーティファクトちらつかせるとかしないと。 ま、契約の俺は手札にないんだけどねー!!


14/11/28(金)
21:00

明日の休みをburyして、30分早く帰宅ッ!! …なんか釣り合ってなくね? このカードもちっと上方修正されるべき。


14/11/25(火)
00:05

ヤベェ! ヤベェよアニキィー!!!! っていう感情が上に伝わってないヤバさ再び。 余裕なんてどこにもないよー、絶賛炎上中ダヨー。 なんてのは毎度の事だけど、今回はヤバさ共有出来る人が現場にいるだけマシ。 仕様決まってない部分や他社ライブラリがバグって動いてない所の進捗聞かれてもなぁ、 聞く相手間違ってね? まぁ、仕様からしておかしいアレが完動する日は来ないだろうから、永遠にTBDじゃね。 ここに書いたら、あまりにも頭おかしい仕様過ぎて、 下手したらぐぐられて見つかるレベルのユニーク仕様。 あと作業俺に振りすぎ。 ほっとくと無限に振ってくる。宇宙ヤバイ。 手止まると死んじゃう生き物の俺が、あまりにも絶望的過ぎて時々素で手止まってるくらいヤバイ。 最低でもあと一ヶ月チョイ続くわけだが、爆発オチしか想像出来ない。


14/11/22(土)
11:04

メルスト裏ステージメモ。 単色パ編成の場合。 盾:ラストのボス戦以外使用しない、ライズ(ボス属性のガード) 後衛1:メイン火力、なるべく相性のいい武器種別、ソウル 後衛2:サブ火力、100%以上が望ましい、パライズ 後衛3:同上、ビクロア 回復:同時二体以上が望ましい、ヒールドーテ ※ルーンは可能な限りスピード、それ以外は一般的な物を装備 1クエ: 盾以外出撃、中ボス対策にメイン火力のGutsを上げつつ癒力&ソウルも上げる。 中ボスは間に合うならBCのみで殲滅、ダメなら麻痺、SPに余裕あれば倒す寸前にビクロア。 ボス以外SPドロップ期待出来ないのでそれ以外ではビクロアを控える。 タッチダウン用に足の速い早熟前衛を盾の変わりに入れておくのもアリか? 2クエ: 同上 3クエ: 後衛3を外し、あとは同上。 4クエ: 全キャラ出して、盾はバック放置しボスまでにGuts30。 ボスは長射程な事が多いので射程短い後衛は注意、 ボス火力よりザコの方がDPS高いので盾のバック回避対象はザコ。 --- 全編通して、後衛1が魔法なら同時2体以上、弓なら高火力、銃ならモーション短いキャラでBCが望ましい。 WAVE後半になるにつれ後衛火力が上がり、敵を一瞬で殲滅してしまい回復が追いつかなくなる事があるので注意。 前衛バックで回復するまで少し待つ、ザコ出た瞬間にヒールドーテ撃って回復、等。 タッチダウン時に壊滅する可能性があるので倍速しない、パライズの準備、後衛2を先行させる等で回避。 時間制限があるので全滅させるというのはあまり現実的では無い気がする? --- すぐ忘れるので俺用メモ。


14/11/18(火)
21:30

コーディングフェーズ末期のこの時期に勝手にDB設計変えられた。 そんなことしていいの? つか、「そんなことしていいの?」の連続過ぎて萎えた。


14/11/13(木)
00:06

今日もしんどかったけど、昨日よりはマシだなぁ。 と思ったんだけど、昨日湧いた問題は一つも解決されてないんだよねぇ。 てか、今月入ってから山積しだした問題何一つ解決してないけど。 炎上するだろうなという予想はしてたので、そこだけ予定通りのオンスケ!www 笑えねーよ。 誰が最初に壊れるか、チキンレーススタートです。


14/11/10(月)
21:46

フツーにやればフツーに終わるお仕事なのに、縛りが厳しい。 アレとアレとアレ片付ければ終わるなー、みたいな見通しが全く立たない。 それどころか、大丈夫だと思ってた所が次々死んでいく。 MHに例えるなら、 村上位レウスの狩猟、ただし武器はハンターナイフ縛り、他自由。 クエスト出発したら全エリアでゲネポ無限湧き状態でレウスどころではない。 リタイアするかな?<いまここ 俺まだ0乙状態だし、リタしたら消耗品戻ってくるはずなんだよね。 マジでええええええええええ!


14/11/01(土)
22:53

自動応援祈りツールを作った。 例のアレのコードコピペって行動予定を放り込んで、ブルスタと一緒に起動しとけば パケット盗聴してBP残量と自分のギルド位置取得して、勝手に行動してくれる! メルストのUI糞重くて画面移動すんのもモタモタしやがって、 こちとらギルバトの時間一杯ダイヤ砕きたいのにBP溢れ気にして集中出来ねーよ! というイライラを解消。 とくに低スペスマホだと挫けそうになる程重いけど、 これからはそんな悩みともおさらば! UI作るのダルくてハリボテ状態のままだけど、内部の実装は一発完動したのでヨシ。


14/10/21(火)
07:41

最近、気付くと「大丈夫」という言葉が脳内や口から漏れてるんですが、全然大丈夫じゃねーよ! ネガティブ思考にならないように、歯止め的に漏れてるみたいなんですが、 過去、大丈夫を口にしてる奴等を思い返してみるとほぼ末期(いろんなモノが)だったわけで、 気をつけないといけないな、と。 実際、まだ慌てる時間じゃないし。 今後は昔に立ち返って 死ね か fuck か 殺すぞ! あたりを代用する方向で。


14/10/20(月)
20:01

俺が丁寧に吐いたソースコードにクソ汚いゴミをマージされてブチギレ。 ソースは俺がやり直すから、貴様は精子と卵子からやり直せ! と、思いました。

21:20

気分はNTR! かなりピキピキきてましたが、全部消して書き直せばいいか。 いつも通り。 ってかマジで奴等居なきゃ定時で上がってもデスマ乗り切れんじゃね!? この怒りをどこにぶつければいいんだああああああああ! つ 黒グラビ


14/10/17(金)
20:48

メイン業務:小僧共の面倒 それを調べるのがお前らの仕事なんだぜー!? と思いました。 面倒見る側が説明不足って部分もあるから、可哀想な部分もあるんだけど。 もうちょっとフォローしてやれよ、とも思うけど。 ただ一つ言える事は、面倒見たりフォローしたり心配したりするのは俺の仕事ではない。 絶対にノゥ! それ無ければ定時で上がれるよなぁ・・・。


14/10/14(火)
23:55

ヤバい! 現場の程度の低さがヤバい! ジミーライトニングさんのAA貼りそうなレベルでヤバい! 進捗報告まで面倒見無いといけないとかもはやコント。 あいつらのお守りしながら炎上プロジェクトを戦い抜くのは無理。


14/10/09(木)
23:22

タメ口をやめろ。 お前らと馴れ合う気はねぇ。 全員で質問してくるのをやめろ。 俺の作業が進まん。 ggrks。 質問する時は、解らない点を説明出来る程度には考えからこい。 解らない部分の聞き取りから始めなきゃいけない俺がかわいそう。 あと俺に聞いても仕事は捗るだろうけど、自分の為にはならないよ? 答えだけしか教えないから。


14/10/05(日)
00:12

メモ。 flex & bison(ver2.5) で構文解釈してTABの入力補完を作れないか、考察。 YYERROR_VERBOSE使って、出力した構文解析器ソース内 yysyntax_error() 辺りを改造すればいけそう? ただし、使えそうなdefine切られてないので、bisonで構文解析器生成後にsed辺りで ソース書き換えてやらないとダメっぽいけど。 yyargが文字列型でyytname受け取ってる所を整数型yytoknumに変えれば値でtoken取れるっぽい。 そこまで取れれば後はどうとでもなる。

17:26

へぇ、SQLパーサ転がってるんだー。 早速昨日の入力補完の実験開始。 まずbisonが吐いたparserをどう改変するか? だけど、 bash上で動けばいいのでgrepとsedで処理。 普段sedあんまり使わないので文字のエスケープ関連で少々てこずるも、 最終的にはgrepで該当行数特定(N=`grep -Fn '~' $SRC | egrep -o '^[0-9]+'`)して、 sed側は極力行数指定でまとめて処理するシェルスクリプトを作る。 SELECTとINSERTの簡単な構文だけ処理する実験用parserで動作確認出来たので、いざ本番! ・・・SELECT a FROM b; が通らない。 lex側のソース見たら頭にEXEC SQLが無いとスタート状態がSQLに変化しないようになってるー。 EXEC SQL SELECT a FROM b; にしてみたら、FROMじゃなくてINTO入れろって怒られるー。 ってこれPro*c用のパーサじゃねーーーーーーか! 死ねぇえええええええええええ! 各DBで構文微妙に違ったり勝手に拡張してたりするし、そんな都合よくはいかないかぁ。 つっても自前でパーサ書ける程SQL構文詳しくねぇしなぁ。 fml.


14/10/03(金)
20:53

質問攻め。 質問の調査中に質問をされて、自分が何の作業してたのか忘れる体験を久々に味わう。 開発経験者と聞いてたけどnoooooooooooooooooooooobじゃねーーーーーーーーか! 問い詰め説教始まったりして軽くギスギスしてるし、お台場が脳裏をよぎってヤバイ。 みんなおとななのに、なぜ普通にしてられないのか? っていつも思ってるけど、実はアレが普通で楽しくコーディングしてる俺が異常なのかもしれない。


14/09/27(土)
19:03

開発に数社関わってるのに、全体の設計誰もしてないのはなんでなんだぜ? 作業分担もどこがやるのか不明瞭な点が多くて、質問しても「さぁ?」という回答。 分量的にはたいした事無いけど、結合試験までのマイルストーンがゴッソリ足りてない感じ。 土壇場でリスケの予感もするけど、 むりくりスケジュール内に収める可能性もそう低くないのが怖い。


14/09/23(火)
13:34

MSVCでfmemopen()。 VS2013&Win7環境だとfread()でブロッキングしてしまう。 ずーっと悩んでたんだけど、書き込みのパイプが開いたままなので、 fread()は後続のデータ受け取り待ちでブロッキングしてるのか! って事に今さっき気付いた。 そして、書き込みのパイプを関数内で閉じてしまうなら、fclose()で片付け完了するので、 完全にgcc互換に出来る! ---------------------------- FILE * fmemopen( void *buf, size_t size, const char *mode ) { if( strcmp( mode, "r" ) != 0 ) return NULL; int rc, p[2]; rc = _pipe( p, (unsigned int)size, _O_BINARY ); if( rc ) return NULL; int r = _write( p[WRITE], buf, (unsigned int)size ); _close( p[WRITE] ); return _fdopen( p[READ], "r" ); } ---------------------------- lexの入力に使いたいだけなのでread専用にしちゃったけど、できた。 _fdopen()の挙動がちょいと不安だったので確認したら、 FILE構造体の fd が p[READ] と同値になってたので、閉じるときは fclose() でおk。 懸念点はパイプのバッファサイズなんですが、どの程度書き込んでいいの? 上記環境で実験した限りだと1G書けたので実用上は問題なさそう。 書き込み部分だけワーカースレッドにして数M単位で書き込んだ方が安全な気もするけど、 1G超えるようなデータをメモリ上に確保して、 ファイルポインタ経由で処理するって用途がちょいと思いつかないので不要かなぁ。


14/09/20(土)
00:25

CREATE出来ないテーブル設計書にイライラ。 設計書からDDL変換するコード組んで走らせて見たらこのザマ。 フィールド名も頭のおかしなローマ字だらけ。 もういっそフィールド名日本語にしたら?


14/09/16(火)
19:34

今日は疲れた・・・と帰ってきたら盛大に雪崩っている現実。 ハッハァ! どうしたらいいんだぜ!?

20:13

覆水盆に返らず。 雪崩った傲慢の塔は元には戻らない。 積み直してはみたけど、震度0で再度雪崩れそうなレベル。

20:49

『マインクラフト』生みの親ノッチの声明全文 ― MS買収のMojangを去る理由とは M$ゴラアアアアアアアアアア! と思ったら違った。 意訳:金に群がってくるクソ共も信者のクソボケ共もウザイので会社売却して引退するわ って事みたい。 あるある。 買収というタイトルはよろしくないなぁ、少なくとも国内では。


14/09/15(月)
00:31

squeeze→wheezyへアップグレード。 楽勝! と思ってたらmysqlの文字コード周りの動作が変わって色々と困る。 まずはコレ>http://d.hatena.ne.jp/littlebuddha/20110524/1306208820 嫌がらせかよ! ってくらい地味な変更。 でも文字化けが止まらない! Winの元々ゲームサーバ用途だったのでDBがsjisでcreateされてた。 散々悩んだ結果、dumpしてダンプファイルの文字コード指定をsjis→utf8に変えて、 DB作り直したら上手く行ったっぽい。 ムダに手間取った・・・寝よう。

08:55

kernelバージョンアップの再起動忘れてること思い出して、先ほど再起動。 しかし、なかなかping通らない・・・。 ここで俺の考えた可能性は、 ・更新かかったGRUB関連 ・ハード古過ぎてkernelのサポートからなんらかのデバイスが外された ・DHCP設定が死んで適当なIPで起動 ルータ側のDHCPも考えたけど、DHCP割り振りのログ見てたので可能性としては薄い。 困ったのは、リモート運用前提でサーバ設置してたのでLANと電源以外なんも刺さってない。 それどころか段ボールの山の奥にサーバ本体埋もれてて、電源タップも見当たらない。 とりあえずモニターで状況確認したいけど、延長ケーブルも無く電源確保出来ず。 どーしたもんかしらー、とブラウザ起動したらウンコサイト生き返ってた。 早速ログ確認したら、 [ 9.539062] Adding 2650688k swap on /dev/sda5. Priority:-1 extents:1 across:2650688k [ 550.211613] EXT3-fs (sda1): using internal journal ここで10分弱止まってたっぽい・・・HDD絡みなの? 大丈夫? 怖いんすけど・・・。 ジャンク同然で購入した時から死んでるドライブベイあったし、なんかあるんかなぁ。 kernelのバージョンが 2.6 → 3.2 になってる事を確認したのでアップグレード作業完了。

12:59

ついでにバックアップ中。 次やるときは、なんか全部上手いことバックアップ取れるようなシェルスクリプトを組もう。 ってか、バックアップを考慮したディレクトリ構成で普段から運用すりゃいいんだろうけど、 そんなことまでいちいち考えながら作業してられっかあああああ! というのが本音。


14/09/06(土)
08:49

今知ったけど、ファフナー続編が来年頭から始まるのか! 震えが走った。 怖気で。 地上波アニメ枠の無駄遣いじゃないかなぁ? そもそも誰得なの?


14/09/04(木)
20:38

ヤベェ・・・ヤベェよ兄貴・・・弱い考えしか浮かばねェーーー!!! ・スケジュールを決めるのに必要な仕様が決まってない ・なぜかスケジュールだけは決まってる ・打ち合わせもgdgd ・段取りもgdgd 何一つ上手く回ってないというF系標準仕様。 この状況に言うほどヤバさを感じてない俺の感性が一番ヤバイ。 お台場んときと違って、何一つ責任無い立場ってのもあるけどne。 そのかわり自分の裁量で好き勝手出来る部分がゴッソリ減ってるけど。


14/08/24(日)
15:45

ミニパイ12巻読了。 締め切りに追われて伏線回収もしないまま最後適当にまとめた感バリバリ。 全巻通してそんな感じだし、面白かったけども。 なんとなくシリーズ最終っぽい臭いがするなぁと思ったら、そんな感じなのかな? 劇場版二作目があればもう一冊、第二期シリーズが始まったらラッキーくらいな感じか。


14/08/19(火)
20:38

現場入ったらFだったでござるの巻。 客と詰めるべきところが完全放置、非常に実装困難な所を安請け合い、 Fの現場共通の頭のおかしい不愉快な仲間たち。 早くもストレスがマッハ。 せめてもう少し詳細なスケジュール組もうぜ?


14/08/14(木)
20:12

電気外ちろっと行ったら、e・go! のスタジャン着てるスタッフを見かけたので、 あれっ!? と思ったんだけど、こういうことかぁ。


14/08/09(土)
13:46

久々に今週頭くらいからBO2を再開。 あんまりFPSから離れすぎるとカン取り戻すの大変かなぁ、 という程度の動機なので2~3戦、長くても小一時間で飽きて落ちるけど。 そして久々にファンメも届いた。 だいぶカン鈍ってるのでファンメ貰うほど酷い事出来てないんだけどね。 そんな俺にカモられる糞ザコ養分マジうぜー、というお話。


14/08/08(金)
10:51

影部分を暗くするのをやめて、対象光源の演算をしないように修正。 なんかソレっぽいまぁまぁソレっぽい? 自分の光源の影響で手前側ほど影が薄くなる。 奥の壁は自分の光源が届かない&アンビエントOFFなので影部分は真っ黒。 拡散しないので不自然なのは否めませんが。


14/08/06(水)
23:18

俺休みぼちぼち終了のお知らせ。 この半年は結構コード書いたった。 球LOD、DX9→DX11、OculusRift対応、pmd&pmxローダー、 voxel関連、BulletPhysics関連、WinPcap関連、点光源影。 結局ローグライク3Dは形にならんかったけど。


14/08/05(火)
09:13

実験。 吊り下げ光源球当てて千切れ落ちた光源。 予想通りの結果なんだけど、なんかちょっと楽しいぞ。 戦闘中に光源落ちてきたらウザくてしょうがないだろうけど。


14/08/02(土)
02:12

ラスト2万年くらいオンの天罰で消化して、ついに刑期終えた。 ついでにモジュラーも全種類コンプリート。 武器強化のマゾ作業が残ってるけど、配信クエ素材集める気にならないので終了。 発売時点でインフラモードあれば、調整失敗のクソ難度に関しては逃げ道になったし、 ここまで評価下がらんかったかもね。 シナリオ未完とかアブダクターの種類少ないとかはいいけど、 インフラモードに関してだけは延期してでも発売時点で実装しとくべきだったと思います。 クソゲークリアっ!

10:37

点光源影出来た。 フリーダムウォーズに時間割いてたとはいえ、えらい時間かかったなぁ。 くだらない実装ミスから糞バグのオンパレードで、久々に夢デバッグまでした・・・。

16:55

37℃ワールド。 重要な光源は、明るい部屋の光源、自分の装備品の光源の2つ。 装備品の光源はほぼ見えないので今回無視。 エフェクト発生時はエフェクト優先、もしくは近い光源優先、最悪グローでごまかす。 点光源のためシャドウマップに2枚テクスチャ使ってるけど、 横長か縦長1枚で処理した方がレンダリング軽くなるはず、涼しくなったら考える。


14/07/26(土)
22:00

復刻イベしてやるけどタダじゃ遊ばせねーよ! 報酬もナシな! ぼく、こんな渋い運営はじめて見ました。 手に入れる手段がものすごく限られてるメダルを、新規から巻き上げようってどういうことなんだぜ?  200万DLありがとう! 新規のみんなに復刻イベでサービスしちゃうぜ!  新モンスターor新アイテムドロップするようにしたから古参のみんなも参加してくれよな! とかじゃないの? 普通は。 新規は当然ピキピキきてるわけですが、あまりのセコさに古参もピキピキでわろえない。 新規と古参の一部くらいは楽しめるはずだったのが、誰も得しないクソイベに・・・どうしてこうなった? あ、お祈りしなきゃ。


14/07/22(火)
12:04

昨夜フリーダムウォーズ全クエ終了。 10万年くらい減刑しても8-3出なくて、おかしいなぁ!? と思ってたら、 8-2の報酬サイモンから貰い忘れてた。 8-2報酬受け取り後、ペルタ23匹狩った所で8-3出現。 ボランティアブースト付けて1750年*23回=40250年、なので8-3出現条件の一つは4万年減刑? もしかしたら他にも条件あるかも。 8-3、8-4、8-5はガチると相当面倒そうだけど、開始地点背後の小屋アンチから、 イバラを敵弱点に繋げてオートエイム状態からバーバラPx2ぶっぱでハメ殺し。 念のためAMMO2種持ち込んだけど、小屋そばに弾薬BOXあるからそんなに困らない? 赤点爆破といくつかの飛びひっかき系だけ結構届くので注意。 後半クソゲーだったなぁ・・・。 ・敵アブ硬すぎ&大量湧きでタイムオーバー ・対人優先でも敵咎人&天兵に反応せず一方的に殺される糞AI ・マゾ素材(エンジン付いてないアブダクターだらけ、配信クエで低確率採取素材など) ・味方装備LV上げるのに、なぜか俺の恩赦Pが大量消費される糞仕様 特に硬すぎ&大量湧きは酷い。 このままインフラパッチきてもバーバラオンラインじゃないかなぁ。 メン募「バーバラ1500↑2丁の方限定」


14/07/11(金)
13:54

メモ。 俺の使ってる光源の距離による減衰式。 len:光源と面の距離 range:光源の強さ dust:減衰 saturate( 2.0f / ( 1.0f + pow( ( len / range ), dust ) ) - .1f ) どこまで光が届くのかlenを求める式に変換。 len = pow( ( 2.0f / .1f - 1.0f ), (1.0f/dust) ) * range これで光源パラメータから光源の届く最大距離が求まった。 ってか、rangeとlen入れ替えて、パラの設定を最大距離に変えたほうがいい気がしてきた。 暑くて朦朧としてる。


14/07/09(水)
17:30

球&正立方体&直方体。 既知の最後のバグが潰せた。 時々衝突演算後の座標値がNaNになるからおかしいなぁと思ってたら、 俺が渡してた法線が0ベクトルになってた。 更に追っかけたら、MarchingCubesで生成した面の中に点とか線になってるポリがー! voxelをfloatからcharに変えた弊害で、演算結果がきっかり0.0や1.0になる事があり、 そんときに点や線ポリになってた。 アンリミテッドなんとかワークス、もしくは氏直。 互いに干渉してる状態だと流石にチト重いけど、 バラに床置き、もしくは多少重なる程度なら1000オブジェクト程度は問題なさそう。


14/07/06(日)
00:02

Bullet Physics のカスタム形状のコリジョンメモ。 btCollisionShapeか適当な派生を継承して、自前Shapeクラスを作る。 注意点は、btCollisionShape::m_shapeTypeに、 拡張用と思われる CUSTOM_???_SHAPE_TYPE の何れかをコンストラクタ内で代入しとく。 btActivatingCollisionAlgorithm継承して、自前コリジョンを作る。 これは自前Shapeとコリジョンが必要な形状のコリジョンの実装になる。 注意点は、 ・processCollision()が判定処理。 ・resultOut->addContactPoint(衝突面の法線、衝突位置、めり込み量) かな? ・2つの引数 btCollisionObjectWrapper は registerCollisionCreateFunc の登録に従う registerCollisionCreateFuncで自前Shapeとコリジョンが必要な形状の登録を行う。 注意点は、 ・A形状:B形状 と B形状:A形状 は別扱い Bulletの実装が、 > m_doubleDispatch[body0Wrap->getCollisionShape()->getShapeType()][body1Wrap->getCollisionShape()->getShapeType()]->CreateCollisionAlgorithm(ci,body0Wrap,body1Wrap); という至極単純な実装なので、必要なマトリクスをregisterCollisionCreateFuncで埋めてやる必要がある。 このとき、 dispatcher->registerCollisionCreateFunc( CUSTOM_CONCAVE_SHAPE_TYPE, SPHERE_SHAPE_PROXYTYPE, new xxx::CreateFunc ); dispatcher->registerCollisionCreateFunc( SPHERE_SHAPE_PROXYTYPE, CUSTOM_CONCAVE_SHAPE_TYPE, new xxx::CreateFunc ); としてしまうと、processCollision()の2形状が判別出来なくなるので、一工夫必要。 Bulletの実装だと、registerCollisionCreateFuncで生成するCreateFunc部分を分けて、 アルゴリズムクラスにスワップフラグを持たせ、processCollision()に渡ってきた時にフラグで処理してるみたい。 数値上で球が転がるところまで実装。 続きは明日。

13:22

addContactPoint() の法線の引数が、 > const btVector3 & normalOnBInWorld となっており、'B'とは何ぞ!? と昨日思ってたわけですが、 btCollisionObjectWrapper の一つ目をA、二つ目をBと呼んでるみたい? ラッパーの引数は col0Wrap, col1Wrap ってなってるし、ABか01どっちかで統一しろよ! ドキュメントも自動生成したクラス図しかねーし、わかるか! なので、col0Wrapが静的オブジェクトだった場合、 取得出来る衝突面の法線もcol0Wrap(A側)になってしまうので、 addContactPoint()に渡す際逆(*-1)にする。

16:44

動いた! 重なるとあっさり処理落ちする、予想してたより重い・・・? と思ったらデバッグモードでござった。 疲れた・・・。


14/07/04(金)
09:48

今日も耳の検査でお出かけ。 腹の具合が悪くてトイレ駆け込みTAI!

11:45

「悪くなったらまた来て下さい」 って言われた。 なんだこれ?


14/07/02(水)
21:10

sqliteぉおおおおお! 内部でprintf()関数持ってて、フォーマット指定してselect出来ます。 内部UTF-8前提なので日本語コードだと幅狂うけど。 使えねええええええええええええええええ!!!!!!!!!! っつーわけでソース弄って使えるようにした。 公式 sqlite-amalgamation-3080500.zip 内の sqlite3.c のみ修正。 ・文字列の長さをasciiコードなら1、それ以外は何バイトでも2固定で換算する関数追加 ・%10s のような幅指定時に上記関数でスペース幅換算用に別途表示幅を算出 ただしASCIIコードと日本語以外を全く考慮してないのであしからず。 他の解決策としては内部コード無視してSJISで格納してしまうという手もある。 この場合SJISはバイト数と表示幅がほぼ一致するのでそのまま使えます。 メルストはandroidなだけあって内部コードUTF-8で、SJIS変換すると一部記号が文字化けるし、 UTF-8だとフォーマット崩れるしで、一瞬詰んだかと思った。 ソースコンパイルしてるの思い出してよかった。

23:09

あー、なんか全然ダメだということが判明。 UNICODEの記号はシステムによっては半角で出力される場合もある。 あとsqlite3.cはエンバグしてた。 どうせ再現出来ないならSJISで文字化けたままでいいじゃない。


14/06/29(日)
17:22

祈りカウンター。 なんかパケット取りこぼしてんなぁ、とデバッグしてたら、 TCPパケットが分割されてる時の処理内で、GlobalReAlloc()が失敗してた。 むかぁしに組んだメモリブロッククラスだけど、当時は動いてたんだけどなぁ? Heap系に変えたら動いたので要注意箇所ではあるけどとりあえず良しとする。 それと動作させるのにSQLサーバ必須じゃ面倒なのでsqlite3を組み込んでみた。 流石にCライクな演算子のmysqlクエリはそのまま動かず、一部修正。 でも実際そんくらいの修正で全部動くし、APIもODBCより使いやすいし、困った話です。 今日はあと2回試験のチャンスあるし、問題なければ完成。


14/06/27(金)
10:45

メルスト、応援祈りロガーがだいたい完成。 概要: ・ブルスタでメルスト起動 ・WinPcap経由でパケット盗聴 ・TCPパケットを再構成し、ローカルからリクエストのPOSTの送信を待つ ・送信時のローカルポートへの返却が該当電文 ・gzipでエンコードされてるので解凍 ・少々構造化されてるのでツリー状に展開 ・「xxさんが応援」「xxさんが祈り」のメッセージ単位で抜く ・前後の電文で重複してる事があるので、idを主キーにしてDBに登録 ・集計SQL走らせて表示 ------------------- -- 登録先のテーブル定義 > show create table merc\G *************************** 1. row *************************** Table: merc Create Table: CREATE TABLE `merc` ( `id` varchar(40) NOT NULL, `gname` varchar(32) DEFAULT NULL, `uname` varchar(32) DEFAULT NULL, `dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `pray` tinyint(1) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=sjis ------------------- -- ギルド集計SQL(祈りは有効期間のみ) SELECT gname, SUM(pray && (dt >= CURRENT_TIMESTAMP - INTERVAL 31 MINUTE)), SUM(!pray) FROM merc WHERE LEFT(dt,10) = CURRENT_DATE GROUP BY gname ; ------------------- -- ユーザ集計SQL SELECT concat('[',gname,'] ',uname), SUM(pray), SUM(!pray) FROM merc WHERE LEFT(dt,10) = CURRENT_DATE GROUP BY uname ; -------------------

11:02

仕様だけ見るとたいした事してないんだけど、結構な量のコード書いては捨てを繰り返してる。 winsockへのhookDLLを組んでみるもののなぜか上手く動かずWinPcapへ乗り換えたり、 ログ解析用にflex使おうと思ったらcygwin入ってなくて64bit版入れたらflex動かなかったり、 重複メッセージに気付いてログカウント方法をDBに切り替え、 ODBC経由での接続に難儀(ドライバの32/64bit問題、mysqlのbind系、ODBC API諸々)し、 実際のデバッグが出来るのは1日4回のギルバトタイム30分間のみ。 ってか64bit環境は百害あって一利なし、とまでは言わないけど分かり辛いし酷いねぇ。


14/06/24(火)
14:56

いろいろ組んでる。 物理エンジンbulletで自前 marching cubes とのコリジョンを実装したい! 現在bullet内部でどんな処理してるのかがおぼろげに見え始めた、そんなレベル。遠い。 64bit版winsockのhookも実装中。 __declspec(naked) が廃止されてるのがキツイ。 asmで組んでC側の関数ポインタへジャンプしてー、とか面倒過ぎて死ぬ。 DLLから関数一覧抜いて、シェルスクリプトでジャンプ命令に展開するだけなんだけどね。 それよりなにより、MASM側の今の仕様全然知らないし、カスタムビルド系でトラぶるし、 ようやっとコンパイル通った頃にはヘロヘロですよ。 dllみたらアセンブラ部もリンクされてるようなので、試験試験試験。


14/06/23(月)
18:35

スパ4ランクマ10連勝実績ようやっと解除おおおおおお! ランクマの戦績、21戦18勝3敗。 「10連勝実績に苦労したことなんてないはず。そう、ブランカならね。」 リュウケン率高いので、スライディングでこかして、起き上がりにめくり欽ちゃんキックからのコンボ、 飛び込んできたらビリビリ。バーチカルじゃなくあえてビリビリ。 そして YOU WIN の嵐。 「アケステ不要のお手軽キルが楽しめます。そう、ブランカならね。」 ただ、ビリビリの為にボタン連打しすぎて腕だるい。 というわけでスパ4クリアです。


14/06/22(日)
12:37

メルスト。 今月上旬にギルマスを辞退して銀兄にギルマスの座を押し付けるという非道を行う。 その直後くらいにギルメンがMAXの20人に到達し、長期放置は除名する方針に。 ぶっちゃけ、放置多すぎでサクサク除名されるわけですが、 数分から1時間くらいで埋まる。 1人だけ新規の方がギルチャに挨拶してましたが、レスが付くことも無くみんな無言。 ギルチャは通知のみで今日もクリーンです。 ・・・こんな統率の取れてるギルド始めて見た。 そう考えると、空気の読めるエリート集団なわけで、 言葉でのコミュニケーションなんて些細な事にも思えます。 文字で空気感作ってるギルドは、そこに入れない人が疎外感を受けて抜けたり、 揉めたり喧嘩したり分裂したり大変みたいなので、そういうの無いのはいいよね。 ギルバトも勝ったり負けたりしながら1300台を漂ってたんですが、 ここ数日入れ替わりで入って来た方々のギルバト参加率が上がり、 昨日ついに1450台に! Sリーグ内ならどこでも報酬一緒だし、 下の方で勝ったり負けたりってのが楽なのは解ってるんだけど 気付いた時にはみなぎった後で取り返しの付かない事に。 流石に今日は床ペロだろうなぁ。


14/06/21(土)
19:18

何も無い壁岩石溶解の魔法棒発射。(ワイヤーフレーム) 魔法棒のビーム効果でなぎ払ってみた。 視界ギリギリの60mくらいまで掘ってもフレーム落ちほとんどなしで動いた。 マルチスレッド化してるとはいえ、そこそこ重いの覚悟してたんだけどなぁ。 半径小さいから再構築必要な領域少なく済んでんのかなぁ? 斬撃痕もvoxelで表現しようとして失敗voxel間隔が荒いのでこれ以上小さい表現が出来ない! もうちょいイケるかなぁと思ってたんだけど、ビックリするほどどうにもなりませんでしたとさ。 メモリ使用量抑えるためにvoxel値をfloatからchar型に変えたいんだけど、 ・コード修正量 ・浮動小数点のみだった部分に整数型が入る事での負荷増 等々、想像出来ない事が多くて躊躇中。


14/06/20(金)
13:43

ミニマップvoxelから生成した全体MAP画像生成時のラフ情報動作するサンプル。 モンスターの追跡考察。 壁をすり抜けて直進(G)と壁を壊して直進(X)は、まぁよし。 @を追跡するタイプについて考える。 ・@に視線が通った場合、直進or攻撃する ・それ以外は@の居る部屋までの最短を算出   >ダンジョン生成クラスに実装する ・@が穴掘って既存の部屋or通路から離れた場合、定期的に@の位置を最短算出用ノードに加える どうだろう? 最後んとこだけチト甘いかなぁ。 @の歩いた足跡のqueueを持っといて、最短経路算出の中に組み込めれば、それが一番確実かなぁ。 queueが枯渇したら敵追ってこなくなるけど、そこまで逃げれば逃げ切った事にしてもいいか。

18:20

先週から蝸牛型メニエールと思われる耳鳴りが再発したので耳鼻科。 先週はイソバイドシロップとかいう喉が焼ける水薬を飲んで効かず。 今週行ったらステロイドの飲み薬と近所のデカイ病院でMRIを撮って来いとな。 行ってきましたよMRI。 帰りにデータ入ってるCD-ROMを渡されたので、早速遊ぶ。 簡易閲覧ツールが入ってたけどCD上からしか起動出来ないようになってた。 今はHDD上から起動できるようになった。(謎 GetDriveType()の関数コールと直前のpushを消し飛ばして nop と mov eax, 5 に置換でおk。 MRIのデータバイナリエディタで観察中。 医療関係で流行ってるDICOMフォーマットらしいぜ! 酷く汚いデータで失笑。 映像系コンテナの方がマシという酷さ。 このレベルならプレーンテキストにしてzip圧縮で縮めた方がマシなんじゃねーの。 先頭の128byteの00HはMacバイナリだろコレ、いるかぁこんなゴミ!! チャンクタグは大文字英字2バイト、その後に16bitのデータ長。 でも時々0000H・・・ハァ!? 良く見たら、0000Hの後に32bitで改めてデータ長が入ってる。 タグもデータ長も最初から4byteずつ取っとけYO。 OWタグがvoxelデータっぽい感じ。 1voxel 16bit整数型、ただし下位8bitのみ使用・・・ムダァ! 1断面毎なのか、ファイルわかれてるし。 データ部のサイズからして512x512x2byteのファイルと640x640x2byteの2種類ある。 造影剤前後とあと何種類かのデータがあるっぽいなあ。 あとでちょっとツール作ってみるかぁ。


14/06/19(木)
15:37

ミニマップ実験。 farclipの黒フェードと同じ要領でシェーダー側で簡単に処理出来るなぁと気付いたので実験。 テクスチャのUV座標の変換に手間取った。 meshの座標は固定でUVだけ回す、という部分を飲み込むのに時間食った。 MAP画像自体も手抜き実装。


14/06/17(火)
00:56

ピンポン10話、肯定的な感想多くて驚いた。 一番盛り上がるペコvsドラゴン戦なのに、 酷いBGMに台詞改悪とクソミソに叩かれてもおかしくない出来なんですよー、何事!? 制作スタッフはこのBGM流しながら原作ドラゴン戦読んでみろと。 そもそも原作が圧倒的にスゲーんだけど、実写映画もとんでもない確率の壁を越えて名作だったし、 いまさらアニメやる必要性がどこにあったのか謎。 萌え豚がブヒれるラノベは食い荒らしつくしたの? せっかくやるなら15~20年前の名作ラノベを発掘してアニメ化して台無しにしてくれよー。

01:30

スパ4ゴールドメンバー無料配信だったのでチョイプレイ。 うわあああ!!!! 俺より格上しかいない! というPP0スタート。 ホントに格上だったケンと汚いユンに1敗ずつ。 ユンはなぜか2連戦だったのでブランカでリベンジ。 5連勝実績があっさり解除出来たので、養分増えてる今なら10連実績も余裕! ソースは昇竜拳失敗小パン空振り余裕でおなじみ養分組みの俺。 対戦中に昇竜拳コマンド練習しだす勢い。 ぶっちゃけ今のPP0帯ならリュウ中強Kだけで勝てる。 というか勝てた。 昇竜拳どころか波動拳も出るかあやしいとかそういう事ではない。 断じてノゥ。 ブランカならほぼコマンド不要でリーチ長くてユーザに優しい。 緑だから目にも優しい(嘘

02:26

メルスト。 泥版はgoogleアカウントに直紐付けなので、 ・端末クリアor乗り換えてもアカウント同一ならデータ移行作業不要 ・別アカ作る以外初期化方法なし ・別端末から同一垢にアクセス可能 という噂は耳にしていたので、BlueStacks入れて実験したらそのまま動いた。 一部パラの同期は、一定時間置きなのか、 そのパラが変動する処理通らないと鯖と同期しないっぽいけど、それ以外は不都合無し。 ・メリットは戦闘一時停止せずにチャットが可能 ・スクリーンショットをPCで撮れる 無言ギルドなのでチャットしないけどね☆ ワイバーンに蹴られつつギルバトの戦況確認可能なのは便利かも? あとログも取れます、WireSharkとかで。 メッセージはhttpで鯖にリクエストかけて、gzipのプレーンテキストで返ってくるみたい。 救援ログgunzipしたら末尾ちょい壊れてたけど、アイコンIDとかそれっぽい情報が入ってた。 チャットログは取れない、無言ギルド&たまに投下される勧誘以外無言の過疎ルーム在住なので。 応援、祈りのログ取れれば、相手の状況がおおよそで判別出来るなぁ・・・!


14/06/10(火)
17:44

angbandの視界は、 #define MAX_SIGHT 20 /* Maximum view distance */ 単位はグリッドなので、20*10feet≒61m。 狭いな! 視線ベクトルの先の光源もそこそこ優先度上げたので、 通路の先の部屋が視界内に収まったとき、farclipで突き当たりの壁が酷いことになる。 farclip付近を黒でフェードアウトさせてみた。 ---- texture.rgb *= saturate( 1.05f - pow( i.pos.z, 16384.0f ) ); ---- 奥に対して急峻にかかるfogみたいなもんだけど、pixel shaderに1行挿入するだけというお手軽さ。


14/06/09(月)
16:25

bumpとparallaxのDX11での実装。 マルチ点光源でのテスト。 HSBで色相ずらして8個円状に並べた。 空間内に複数光源があり、視界内で優先度の高い光源を採用する実装案。 ・カメラに近い光源から優先 ・視線ベクトルに近い光源から優先 カメラからの距離のみだと背後遠くと視線の先遠くが同優先度になってしまう。 これは視界内を優先すべき。 視界内優先にすると、すぐ背後にある光源が反映されない。 光源を追い越した瞬間に真っ暗になるのはおかしい。 上記を考慮して、各光源に点数をつける。 点数 = カメラからの距離 + カメラ位置からFarClip点の線分と光源の距離 点数の低いものから優先して採用。 んでその結果1結果2。 光源数は8、レンダリングに採用される最大は4に設定。 複雑な状況下で期待しない結果になっても、点数式ちょこっと弄ればいけそうな雰囲気。


14/06/07(土)
02:19

昨日Sランク底辺入り達成。 もうトップは取れずギリ2位がようやっと。 でもこっから上は無理。 ※1ダイヤ ≒ 63円 とお考えください Sランク中位でこの修羅っぷりて、SSランクとかどんな世界になってんだ? Aランクで軽く手抜いて遊ぶくらいがちょうど良いな。


14/06/05(木)
16:36

voxelの盛り削りメモ。 基本的にはコリジョンと同じ処理で可能なはず。 ・多面体の場合 多面体を内包する最小の立方体をforで回す。 任意voxelが全面の内側の場合のみ多面体内。 内側なら各面との距離を比較して、面に極近い場合距離に応じてvoxel値をセット、それ以外は1。 ・円筒の場合 円筒の定義を、線分abにたいして垂直な半径rの円、とする。 円筒を内包する最小の立方体をforで回す。 1.直線abと任意voxelの距離 2.もっとも近い直線ab上の点pが線分ab上にあるか の2条件。 円筒の終端を半球にする場合は、 3.線分ab上に無い場合、点a, bとの距離がr以内であるか を追加。 ・・・実装したら見落としだらけで動かなかったりするんだぜ? 嫌になる。

18:00

時々曲線の通路。 通路の交差部分。 通路が部屋壁ブチ破る問題。 でもangband世界には壁を掘り進むmobもいるし、そいつらが壊した設定で。 現在壁は一律perlin noise壁。 掘った荒さをごまかせるのがいい。 多面体掘削は実装まで終えた。 テスト怖い。

23:51

メルストしててあんま作業進んでねぇ。 多面体の削りテスト。 長方形を1本は90度、もう一本は45度回転して削った。 ただキリの悪い63度みたいな値だと壁が多少波打つ。 円筒はまた明日。


14/06/04(水)
12:11

球・楕円体部屋+荒れた壁面壁面荒れ率アップ。 × 部屋を作る→通路作る→通路上書きで部屋の内装壊れる ○ 部屋の配置だけ決める→通路作る→内装作る ちょっと考えればわかる事だけど、昨日は頭寝てた。


14/06/03(火)
17:25

洞窟っぽい感じ。 矩形部屋だと違和感バリバリ。 通路作るコードも起こしてみたけど、グリッド単位の考え方捨てないとダメだ。 部屋壁のおかしなとこに穴あいたりする。


14/06/02(月)
00:07

x日前で書き出したので、今日中に纏めないとわけわからなくなる! ってさっき気付いた。 ギルドの全権掌握したので、今日からは防衛配置出来るし、 ギルバト楽勝過ぎるううううう! っていう夢を見たんだー。 過去3戦圧勝だったため大幅にレートが上がったようで、 組織的に動いてるギルドとエンカウントした。 この先はガチ勢領域かよ。3~4日前まで過疎領域だったのに。 レート加減算式おかしくね!? もうしばらく過疎~ソロ領域でチュートさせろよ! ギリギリで勝ったけど、ひょっとして勝っちゃダメだったんじゃね?

02:01

ボス泥状況。 ユニルス:バックキャンセル覚えて経験値稼ぎ中に30周前後で泥(フィーバー中だったような気もする) ジャバウォック:今日の昼間、BP回復に周回してたら20周前後フィーバー10で泥(当然クエスト夜) アースドラゴン:たった今、寝る前にLVアップ分のAP消費してたら4~5周で泥(クエスト夕方) 死亡フラグ立ち過ぎてて、どう折ったらいいのかわからない。 ちなうんです ちなうんです!

13:57

メルスト属性関連メモ。 いろいろ混同してるので一回整理。 情報ソースは検証サイトや2chのログ等。 ---- [属性]:キャラの属性、何かされるときに適用 [属性補正]:属性チャート上の数値、何かするときに適用 ---- ・殴り合い時に適用されるのは、殴り側[属性補正] → 殴られ側[属性] 敵から殴られる場合も同様で、殴られ側の[属性補正]関係ない。 属性ルーンは[属性補正]を上昇させる。 例えば、ダークルーンを付けると闇の[属性補正]が上昇するので、 闇[属性]の敵に対して火力が上がる。 「闇のアクセつけたら逆属性の光[属性]敵への火力上がる!」 「闇のアクセつけたら同属性の闇[属性]敵からの被ダメ下がる!」 と思ってる俺は大間違い。そうじゃない。 ・シードモンスターのソウル系は対象[属性]ユニットの攻撃力を上げる 例えば、ダークソウルで恩恵を得られるのは闇[属性]ユニットのみ。 単純に攻撃力が上がる。[属性補正]は変わらない。解れ。 重ねがけ5回までで、積算で効果が得られる。倍率表。 ・シードモンスターのブレイク系は味方全ユニットの[属性補正]値を上げる ブレイクという名前から連想する、 「敵の防御系パラメータを下げる!」 と思ってる俺は大間違い。そうじゃない! 味方の[属性補正]を上げる事で、敵属性耐性値を下げてるように見せている。 と解釈すると解り易いか。 重ねがけ5回までで、加算で効果が得られる。 ・回復時に適用されるのは、かける側[属性補正] → かけられる側[属性] 殴りと同じ式で 味方 → 敵 が 味方 → 味方 に置き換わっただけ。 例えば、  闇[属性]盾に回復するユニットは闇[属性補正]の影響を受ける。高ければ回復量が上がる。  ダークソウルで闇[属性]ヒール職の回復力(=攻撃力)が上がる。相手の[属性]に依存しない。  ダークブレイクでヒール職の闇[属性補正]が上がる。闇[属性]ユニットへの回復量が上がる。 ・まとめ ユニットが行動する場合、[属性補正]の中から相手の[属性]の値を採用して計算される。 属性ルーンで火力増強の恩恵を得るには、ルーンと敵の[属性]を揃える。 ソウル系で火力増強の恩恵を得るには、単[属性]で編成し、編成とソウルの[属性]を揃える。 ソウル系で回復増強の恩恵を得るには、盾と回復の[属性]を揃える。 ブレイク系は敵[属性]に左右される。 ブレイク系で回復増強の恩恵を得るには、盾とブレイクの[属性]を揃える。 ---- 説明文に書いてはあるんだけど、 単純にわかり辛かったり、スキル名と効果がちぐはぐだったり、 独特な属性文化で頭に入ってこなくて困る。


14/06/01(日)
12:09

-- 4日前 -- 銀兄が始めたのを見て、追っかけでメルストを始める。 課金したくないけど戦力は増強したい! っちゅーわけで、雑誌付属のDLコード2種をヤフオクで落札。(¥145) 自称効率厨の俺は、序盤のノウハウ集めにも余念がない。 「あれ捨てちゃダメだったんだ!」とか「最初にアレしとけば後々楽出来たのか・・・」とかよくある。 ・・・よくあったら効率厨としてダメだろ? そんな中の一つに、 「ギルド所属してるとボーナス貰えるから、どっか所属しとけ」(¥0) というものがありました。 早速ギルド検索してみましたが、 「x日ログインしないと除名」「無言はご遠慮ください」その他アニメネタ等々ばっかり。 そりゃ常識人の振りくらい出来ますけど、ゲーム上でまで猫被るのしんどいジャナーイ! 普段はファックファック言いながら人撃ってるのにサ。 馴れ合いたくないけど、ギルドシステムの恩恵は受けたいんじゃい! そんな俺みたいなクズ人間の寄り合い所的なギルドはねぇのか!? ・・・ありました。 「無言」でギルド名検索したらケッコーあります。 その中でも突き抜けてた、ギルド紹介文も白紙&加入自由のとこに所属してみた。

15:25

-- 3日前 -- システムからしてわからんので、追加で調べる。 ギルドバトルなるものがあるそうで、 初心者でも貢献出来る「祈り」と「応援」コマンドで参加。 全4ギルド中で参加したのが俺だけだったので、 ・自ギルド勝利 ・俺、貢献トップでカネとメダルGET あれ・・・このギルドバトルってシステム、過疎ってんの? ギルマスはギルド設立後から一切ログインしておらず、 他のメンバーも無言、俺も無言。

22:36

-- 2日前 -- ギルバトと経験値効率の良いクエ回し。 その日、突如他ギルドから先制パンチされる。 ・・・このシステム生きてたんだ! それにキレたのか、自ギルドのアクティブの2~3人が猛反撃。 あっちのギルドはソロギルドという事もあり、手数で勝るこちらが有利。 最終的に20万対6万まで追い込んで、死体蹴りレベルでボコり続ける我々。 「 タ イ ム ア ッ プ ま で 殴 る の を や め な い ッ ! 」 この間、全員無言。もちろん俺も無言。ギルマス不在。

22:40

-- 1日前 -- ギルバト&なんかイベント始まったので進める。 今日も今日とて先制パンチを貰う。 それもまた別のソロギルドに。ソロのオナニスト多いなこの世界。 このあたりで本来ギルマスが設定すべき防衛モンスターと言うものの存在を知る。 当方のギルマスは一切設定せず放置されたようで、5匹全部未設定。 最終的には無言3人vsソロになり、 手数勝負で結局今日もラストは死体蹴りで勝利収めましたが、 防衛mob設定出来る人居ないのは致命的。 LV20到達したし、資材ある程度溜まったら銀兄とギルド起こすかなー。 と思ってた矢先に、なんということでしょう。 匠「ギルドマスターが一週間ログインしなかったため、xxさんから[俺]さんに変わりました」 そんなシステム聞いてないぞ! 初心者FAQにちゃんと書いとけ!! ・・・俺のギルドになったので出て行くメリットがなくなった。


14/05/27(火)
01:35

フォントまわりに着手。 CPUからGPUへの転送手段がかなり限られているので厄介。 マルチサンプリングOFFなら、 1.CPU側メモリ上にビットマップ状態で作成 2.バックバッファにUpdateSubresource()で必要な矩形だけ転送 出来る。 マルチサンプリングONだと無理なので、 1.CPU側メモリ上にビットマップ状態で作成 2.マルチサンプリングOFFのテクスチャにUpdateSubresource() 3.ポリゴンにテクスチャ貼り付けてDraw() ・・・こう書くと全然厄介じゃねーな。 汎用的に使えてなるべく高速動作を考慮しだすと、 もっとマシな実装方法あるんじゃないかと試行錯誤しだして先に進まないパターン。 うーん、このクラス内ではテクスチャへのテキスト描画機能のみに絞って、 マルチサンプリングテクスチャへの対応は外部に出す、というのも手かもなぁ。 その方が実装スッキリするし、使いまわしやすいか。


14/05/25(日)
06:43

メモ。 平滑化フィルタの係数かけ忘れてる事に、寝入りばなに突然気付いた。 3次のガウシアン係数探してみたけど、式だけ見つけたコレの係数求めるためのσの値はなんぞ? G(0,0,s) / G(1,0,s) = 2.0 になる s を探査したら 0.849321800 辺りに収束した。 ぐぐるとヒットするが、求める式は見当たらず、 defineきってあったり、ダイバージェンス角とやらの定数として使われてる。 解らん・・・解らんのでそういうものだと諦めてそのまま使う。 求まった係数は、 1 2 1 2 4 2 1 2 1 2 4 2 4 8 4 2 4 2 1 2 1 2 4 2 1 2 1 ・・・マンマっすな、当たり前な話だけども。 んで、加算結果を係数の合計値 64 で割ってやる、と。 MC の ISOLEVEL を 0.2 にしてる関係でそのままの値だと少々ダルくなる。 なので平滑化後に voxel = pow( voxel, .5 ) としてみた結果。 一個前の32³voxelのウサギとかわんないように見えるけど、エッジがだいぶマシになってる。 ・・・でも、矩形vaultなら平滑化いらんよね、どう考えても。

21:47

ロードして配置。 小さい方は面積平均法の応用で体積平均方。 ちと荒いけど、破壊可能オブジェクトはこれで置ける。 MAPモデリング→コンバートして配置するにはいくつかルール決めないとダメかもなぁ。 どうせいくつかのプリセット配置するだけだから、最悪手打ちでもいいか。


14/05/24(土)
01:00

ヘッダとフォーマットを決め、IOクラスを作成した。 // little endian typedef struct { char magic[4]; // "VOXL" float version; // 1.0f int x_size; int y_size; int z_size; int data_size; // Data area byte size after a header char compress; // 0:no compress, 1:zip(zlib) char dummy[7]; } VOXL_HEADER; データ部は float[z][y][x] の単純な配列。 データ削減手段は色々考えたけど、 頭使わんで実装出来るzlib使えば良かろう! という結論に。 1/150くらいに縮んだのでよしとする。 ネックになりそうだった問題がようやっとひとつ解決。

13:57

耳の形状がどうにもカクついてるし、縞状の段差出てるし、精度悪ぃなぁ! っつーわけで修正。 形状のカクつきは元データによるものなのである意味正しい。 とはいえこのままだとサンプルとして参考にならんので、メタセコで元データを曲面補間。 縞状の段差はドット→voxelのサンプリング時の問題なんだけど、 イマイチ上手くいかんので全体に平滑化フィルタをかけてごまかした。 領域を占めるドット数 / 領域の体積 の単純な比じゃダメなのかもなぁ。

15:06

中空の球の中にトーラス。 ただこれ、全部256³voxelなんだよなぁ。 1/8スケールでどこまで精度出るんだ? と実験。 中空の球の中にトーラス 平滑化無し 32³voxel。 平滑化すると中で癒着しちゃう。 スタンフォードバニー 平滑化有り 32³voxel。 厳しいなコレ!


14/05/23(金)
04:47

起きた。 永久岩の概念。 外周壁は絶対掘れない、これは座標値で保護可能。 一部vault壁も掘れない。(※ X - impenetrable rock) たしか筋力と装備品で掘削能力が変わるので、一回の掘削でvoxel値減らせる量を調整。 その際、閾値を越えるvoxelは永久岩扱いとしてみた。 壁が掘れる前提で、3Dゲーにありがちなスタック(地形嵌り)は発生しないハズだったけど、 vaultのデザインしだいで嵌るかもなぁ・・・GMコールされても衛星はオフラインである。 そもそもvaultのデザインを3Dでどうやんの? っていう問題考えながら寝なおそう。

06:24

メモ。 vaultの地形生成すんのに一番実装簡単なのはvoxelエディタを使う。 編集の面を考えるとモデリングソフトでメッシュベースで作成、poly mesh → voxel にコンバート。 以下コンバーター案。 DirectXでレンダリングするとき、パース無し&Zクリップを有効にしてnearとfarを極端に狭くする。 カメラをちょっとずつ近づけてけば、断面の輪切りが作れる。 ちょうど3Dゲームでカメラがモデルに埋まって、断面が見えてるような状態を意図的にやるわけだ。 あとはその内側を塗り潰せばいいわけだが、 レンダリング後に法線方向が失われるのでこのままだと内外の判別が出来ない。 こっから未検証。 レンダリングをdepthで行い、近→遠 = 法線方向 になるはず。 ラスタスキャンして 近 - 近 間を塗り潰す。 どうかなぁ。

17:52

>06:24 はい、この方法全くダメですね。 修正案。 ・パース無し ・カリング無し ・nearは断面位置、farはクリッピングされない値 ・シェーダーで表面を背景色、裏面を描画色でレンダリング 大雑把だけど、 内側:裏面が描画される 外側:表面が描画されるor何も描画されない という感じ。 メッシュが閉じている事前提ではありますが、一応ソレっぽい感じに。 そもそも閉じて無いスタンフォードバニーをこのテストに使うのはどうなの? あとは簡単なラスタスキャン組んでvoxelのファイルフォーマット決めて終わり。

21:25

質量を持ったウサギだとでも言うのか!? とガンダムごっこしつつ目玉つけてヘッドショット。 残像じゃなかった。 つーわけで、poly to voxel が一応形になった。 法線z成分の0付近が縁取りのように残ってしまう。 解決策として、逆側からもう一枚レンダリングして左右反転したものとANDとる事で一時しのぎ。 根本的な解決策は追々探っていく感じで。 粗もあるけど、とんでもない手抜き実装のわりにゃソコソコの成果で満足。


14/05/22(木)
04:53

angband世界の単位はフィート&ポンド表記。 日本語化時にしとしん氏がポンドに関してはキログラムに変更済み。 フィートは深さやマスの単位にかかわってくるので変更しなかったっぽい? 1階分の高さは 50feet = 15.24m 1マス(1キャラクタ)は 10feet = 3.048m 視点の高さから身長概算して、それ基準に1voxelの長さ求めよう。 1フロアのサイズは、 #define DUNGEON_HGT 66 #define DUNGEON_WID 198 だそうな。 キャラクタが縦長ってのもあるんだろうけど、どうしたものか。 660feet * 1980feet = 201.168m * 603.504m ≒ 121406m² 正方形換算するとだいたい 350m * 350m くらい? うーん、実寸大でMAP作って歩いてみないとわからん。 人の平均歩行速度は時速4kmらしいので、この辺も参考に明日試そう。

18:50

攻撃魔法の種類分けメモ。 矢・ボルト系:点の直進、距離か壁か自分か敵で消滅 ビーム系:直線、同上 ボール・嵐系:点の直進、距離か壁か自分か敵で消滅後、球判定(壁は抜けない) 自分中心系:飛距離0で同上 流星群:天井あるから無理、効果としては自分周辺にボール系ランダム出現 ボール系は床上アイテムを火冷電酸の各属性で破壊する。(ロール無しっぽい)

21:39

現在の視点位置から身長を求め内部単位(1voxel=1.0f座標単位)に換算した所、 3voxel ≒ 1m だったので正確に 1m = 3voxel でdefine切って各パラメータ求めなおした。 350m = 1050voxel で現在 1024²voxel の床面積なので、広さ的には今のままでいいかな? 高さも 32voxel = 10.667m ≒ 35feet で1階層が50feet設定とも矛盾しない。 ただし、モンスター共お前らはダメだ。 hengのスポイラーなのでクトゥルフ系は除外するとして、グレーター・タイタンの12mは天井支えるなぁ。 今気付いたけど、モンスターやキャラクタ周りはメートルなのか。


14/05/21(水)
04:06

ダンジョンの壁に穴が掘れるサンプルテスト2。 左shiftキー押しっぱで掘り続けられるように修正。 掘ってると重くなるバグ修正&メッシュ再構築部を高速化。 メッシュ生成単位を32³voxelから16³単位に変更。 どうも32³単位だとちょいちょい16msec超えてるようなので。 これだと開発環境(i7&GTX670)ならだいたい60fpsで掘り続けられる。 あとは掘りまくれるように壁率をちょい増やした。

17:00

フロア内上下分離&30秒で実装した手抜きエッジ強調。 上下分離は、天井の高さ的に階内を立体的な構造に出来るなぁ、という実験。 隠し部屋vault、フロア内落とし穴、等々の可能性。 シームレスな階層もちょっと考えたけど、無理かなー。 エッジ強調は、レンダリング結果の色にpow( 1.0f - 視線ベクトル・法線, 4.0f )を加算。 まさに30秒実装。 用途は赤外線視力、透明物体感知、テレパシーによる壁透視辺りを想定。


14/05/20(火)
22:24

3Dプリンター、懸念される「ドラッグの自作」 スゴイっすよ! 3Dプリンタって0.1ミリレベルのサイズで競ってたイメージですが、 マイクロすっとばして分子操作可能な域か! 遺伝子も3Dプリンタで出力すればいいいからSTAP細胞とか時代遅れなんじゃね!? ・・・真顔で書いてるなら義務教育受けてない可能性が高いし、 ネタなら小さい文字で各文末に「か!?」と入れてくれ。 同じく義務教育を受けてない国民の半分が信じちゃうから。 このアンケート結果もどこまでマジかわかんないけど・・・面白半分だと思いたい。 マジだとしたらしんどいなー、この国で生きてくの。


14/05/19(月)
17:42

ダンジョンの壁に穴が掘れるサンプル。 移動:ASDW カメラ:Del End PageDown Home 掘る([T]unnel):T デバッグ用にあたり判定の出ているポリを青で、立っている地面のポリを緑で表示。 Fでワイヤーフレーム切替、Gでグリッド表示切替、F1~F4でRift用のカメラに切替。 Config.ini をテキストエディタで書き換えれば画面サイズ変更可能。 フロアサイズは 1024*32*1024 voxel固定。 他にもいくつかデバッグコードが埋まってるかもしれませんが、無視すべき。


14/05/18(日)
21:18

超地獄級糞イベメモ 1日目:タケミナカタ(レイラン出現) 3色制限ダンジョンな為、LFクシナダ(アヌビス)で、 サブに高火力キャラ適当に並べれば25~100倍ワンパン祭り。 ノーデッドでチョー楽に回れて7~8周で宝玉2個。 2日目:女神降臨(カリン出現) 前回周回したPT構成忘れてるし、久々に回ったらびっくりするぐらいキツかった。 LF光ホルス Sエキドナ クシナダ 闇デューク 光ヨミ デューク枠は水デュークor闇カリンでHP確保する手も試したけど、 結局B2で落ちコン事故ってLスキル発動したら、以降運ゲーだしあんま意味無いかなぁ。 B3ダクゴレを上手くHP50%以下まで削れれば無傷で5~6ターン稼げる。 まぁ運が良ければジェノサイドビット4連続攻撃までなら即死しないので、 落ちコン事故ワンパンの可能性怖くて黙って殴られる俺。 10周ちょいで宝玉1個、ゲロマズ。 3日目:ヘラ・ソエル(メイメイ出現) さっき起きて攻略開始。 LF光サクヤ 金の海賊龍 インドラ先生 エキドナ クシナダ B1でスキル溜めを行わないと酷い運ゲーを強いられる。 B2、B6は開始時にドロップ事故であの世が見え、2回発生すると確定。 B3、B7、B9はワンパン出来ないとドロ変換系攻撃で泥仕合。 防御系スキル多めなので後半は結構耐えられるけど、B2だけは事故死避けづらいなぁ。 現在、5周1デッド0ドロップ、糞萎える。


14/05/14(水)
22:59

さらなる糞イベントキター! 降臨の超地獄級でランダム出現とか誰も得しないイベント。 ・超地獄級をこのイベント目的で周回する人は出現率の低さにイライラ ・超地獄級を通常ドロップ目当てで周回する人は予定外の強敵にイライラ ・そもそもエンドコンテンツの超地獄級を周回出来る人は大多数がファガン使わない 宝玉でスキルレベル上げるのがメイン、余った素材で究極進化→倉庫番が濃厚。


14/05/09(金)
00:06

MCテクスチャ。 なるほど! 上面のみ芝、あとは岩で 内部にin下から見上げた場合。 それっぽくなった。 hengbandの山、火山、竜の住みかはperlin noiseで簡単に表現出来そう。 逆に掘れるMAP上のオブジェクト(柱、壁)は voxelデータで生成しないとダメという欠点にさっき気付いた。 ぺら壁は板や乱数で多少ボコってればいいけど、 vaultみたいな特別な部屋はなんか考えんとだめぽ。 mesh→voxelが理想なので、アルゴリズム探すか。

14:05

マウス替わりに使ってたPS1のコントローラがついに亡くなった。 死因はコントローラ付け根周辺のケーブル断と思われる。 ゴムパットの入れ替えや、一回中のパネル毎別の部品総入れ替えもあったけど、 流石に部品探すのも困難なので箱○コンに変える事にした。 UIとしては恐らく最長の20年近くを連れ添った相方的存在に敬礼。 日本人の手のひらにちょうど収まり、振動モーターも無い軽くて扱いやすい、いい奴でした。 箱コンも悪くはないんだけど、不満が無いわけでもない。 純正黒と輸入品の Xbox 360 Mini Pro EX とやらを尼で注文してみた。 どうかなぁ・・・。


14/05/05(月)
05:24

fuckin earthquake!!!!!!!!!!! 昨日震度0の地震で塔崩壊→脳天直撃セガサターンでピヨったばっかりだっつーの! ・・・だいぶ傾いだけど、なんとか持ちこたえた。 寝なおそう。

15:58

marching cubesで生成したスカルプト。 球と正立方体を盛る削る出来る・・・実用性は全くありません。 面の判定のために頂点バッファにポリのID仕込んでで、 マルチレンダターゲットで別viewにIDもレンダリング。 あとはスクリーン座標で拾ってくるという回りくどい実装。 最大512^3voxelまで。 ID管理方法詰めればもうちょいいけるけど、メモリ足らんかな。 リアルタイム変形のテストだったのに手間かけすぎた上に流用し辛い実装でワロエナイ。


14/05/01(木)
16:55

箱○版warface TDM US鯖世界ランク1500位↑ おめでとう俺! フハハハハ! と思ってよく見たら、この順位って獲得経験値順なのね。 ・・・廃人ランクかよ! 普通キルレかSPM順だと思うわけですが。 プレイヤー数60万↑という情報を見たけど、 継続的にプレイしてるアクティブな人数は1万前後ってとこっすかねぇ。 ・EU、AU鯖はともかく、US鯖は対戦に困る事が無いくらいには賑わっている ・F2Pなので養分多め、CODで戦い慣れた狭いMAPと好条件なのでKDRもSPMも良い ・先日のメンテでラグがだいぶマシになった 典型的なFPSなので面白いとかは無い。 難点は30fps、移動にちょいクセがある、装備アンロック方式が糞、 課金強武器の相手を無課金武器でするのは少々骨が折れる、くらいか。 CODと違ってTDMがちゃんとチーム戦出来るところは面白いかも?


14/04/28(月)
18:38

どうしたらいいんだあああああああああ! 本日カリンに進化2種追加。 副属性:木 副タイプ:ドラゴン 副属性:闇 副タイプ:体力 リーダーで使うなら木一択だろうけど、水高倍率リーダーはウミヤマいるし。 サブ要員の水闇ってデュークと丸被りで、 ステはカリン、スキルの利便性はデュークに軍配が上がる。 グラは闇の方が好きかなぁ・・・。 どーしよーかなぁーとBOX眺めてたらカリンなぜか2体いたので解決。 もう一体も育てて2種作ろう。


14/04/25(金)
02:07

pmdひざIKの角度制限メモ。 ひざの回転軸は(1,0,0)固定なので、求まるquaternionは w = cos( rad / 2 ); x = sin( rad / 2 ); y = 0; z = 0; になる。 これに角度制限を行う場合、 asin( x ) * 2 で元の角度が求まる。 acos( w ) * 2 でも良さそうに見えるが、符号が得られない。 得られた値を角度制限でクリッピングして再度quaternionを生成。 pmdをPmxEditorで読むと-180.0~-0.5になるので、pmdの場合はこの固定値で良さそう。 あってる?


14/04/24(木)
03:52

IKバグやっと直った。 何日かかってんだ・・・。


14/04/21(月)
04:47

IKバグ調査の為、bone表示機能実装。 いくつか実装漏れには気付いてるんだけど、それにしてもプルプルして挙動がおかしい。 テストコードだと安定してるので、どっか親子関係でミスってるんだろうなぁ。


14/04/17(木)
18:30

WARFACE箱○版βテスト参加中。 チョーラグい。 ただ、2ピンあれば割とカモれる。 つっても凸SGではなく待ち気味SRですが。 ラグなのか特性なのか、SGでワンショットキルしづらい。 MAPはCoD以上に狭い気がする。 TDM等陣営決まってる場合リス位置が固定なのでリスキルおk※重要 そもそもWARFACEの文化としてアリみたい? そうなった場合、リスポン位置は一応囲われてるのでHORDEが開始されます。 ただ、ひとしきり殺し終えると敵のリス位置も当然固定で遠いわけで、 攻守入れ替わって次のWAVEが開始されます。 ちょっと不思議。 当然fuckinストリークも存在しないので勝利側圧倒的有利等もなく、 上記リスキル仕様のため逆転も十分狙えます。 初期SRだからかもしれないけど、 倍率異様に低いのでBFやCoDのセミオートAR+ACOGみたいな使い方が出来る。 アーマー+ライフという仕様なのでソコソコ硬いし、 一発が高火力なのでラグ負けもしない。


14/04/15(火)
01:24

流行りのユニティちゃんの解凍方法メモ。 ・作業ディレクトリ掘ってその中に解凍 $ tar xzf UnityChan.unitypackage ・ファイル構成を戻すシェルスクリプト実行 ------ #!/bin/bash SUBDIR=unity_chan/ for P in `/bin/ls -1d ????????????????????????????????` do Q=`cat $P/pathname | awk 'NR==1'` if [ ! -d $SUBDIR"${Q%/*}" ] ; then mkdir -p $SUBDIR"${Q%/*}" echo $SUBDIR"${Q%/*}" fi if [ -f $P/asset ] ; then cp $P/asset $SUBDIR"$Q" fi done ------ カレントの unity_chan ディレクトリ配下にコピーされる。 音声はwav、モデルデータはfbx、テクスチャはtga。

03:04

ユニティちゃんのfbxでテクスチャが読めてナーイ。 http://inagist.com/all/453904236204400640/ 上記プラグインでfbx開いてみるもテクスチャ死んでる。 fbx内のパス指定が、 /Users/kobayashi/Dropbox/Maya_Projects/UnityChan/140401_UnityChanModel/sourceimages/FO_SKIN1.tga と、絶対パス指定だからであろう、と上記通りのディレクトリ掘って放り込んでもダメ。 FBX Converterでも同様。 UVは生きてるからメタセコで貼りなおせばいいんだけど、 メタセコ経由すると今度は法線死ぬんだよなぁ。 FBX SDKでどーなってんのか一回読み込んでみるかなぁ。


14/04/14(月)
16:51

column_major問題再び。 スキニングモデルの場合、何本あるか分からんbone全部転置すんの? という疑問。 CPU側のmatrixを転置した状態で保持すればいいんじゃねーのか、と。 geometry関連のクラスは別のプロジェクトでも使ってるので単純に入れ替えるわけにも行かない。 ファイル分けるというのも考えたけど、メンテ面倒。 なのでメンバを次のようにしてみた。 union { struct { #ifndef MATRIX_COLUMN_MAJOR float _11, _12, _13, _14; float _21, _22, _23, _24; float _31, _32, _33, _34; float _41, _42, _43, _44; #else float _11, _21, _31, _41; float _12, _22, _32, _42; float _13, _23, _33, _43; float _14, _24, _34, _44; #endif }; float m[4][4]; }; 配列でアクセスしてた箇所全部記述し直し。 ファイル入出力等でどうしても直アクセスしたい場合のみ、 #ifndef MATRIX_COLUMN_MAJOR float& operator()( int row, int column ) { return m[row][column]; }; #else float& operator()( int row, int column ) { return m[column][row]; }; #endif こうしてみた。 実装前は正直どうか? と思ったけど、コードはさっぱり綺麗になったし実行結果も問題なし。 速度低下しそうな部分も見当たらないし、案外いいかも。


14/04/12(土)
13:03

pmd形式のローダー実装実験pmx形式のローダー実装実験。 pmdはbone&skin、表情メッシュも読んではいるけど、 スキニングのシェーダーがDX11環境に未移植なのでちゃんと読めてるかは不明。 マテリアルが頂点リストの前にあったらもっとローダー簡略化出来たのになぁ、 というくらいしか不満点が無いくらいスッキリしている。 pmxはpmdの拡張フォーマット、という認識だったんだけど全く違うのね。 機能的には拡張型なんだけど、フォーマット中に そこにそれいるか? っていうくらい可変長インデックスがまみれてる。 ファイルサイズ小さくしたかったのかなぁ? データ配布時はアーカイバで圧縮かけるわけだし、 一番サイズ食うであろう頂点インデックスに24bit型が無いので 頂点64K超えの効率が悪い。 可変長の時点でバイナリの視認性落ちてるし、 だったらSMFやUTF-8の可変長数値表現を採用した方が・・・と思ってしまう。 中身的にはpmdが実装当時不要な要素をゴッソリそぎ落としてる部分を補ってるので、 クリエイターはpmxで得られるメリットも多いかもなぁ、とも思う。

16:20

McAfeeのクソガキ曰く「お前のPCネットに繋がってなくね?」 いやいやいや・・・お前こそどっから入った!? インストールした記憶ねーぞコラ? なんぞ!? 調べたら、コレだ! 詐欺じゃん。 フィッシングサイト級の。 なんでMacromediaはAdobeに買収されたん? flash無きゃ無いでブラウジングに不便するし、 あればあったで更新しろだの深刻なセキュリティホールがあるVerなので火狐はプラグイン拒否しまーすだの。 挙句このザマですよ。 ウザくてしょうがねえええええええええ! 死ね!


14/04/09(水)
20:48

MCでいろいろ実験と実装繰り返してたはずなのに、気付いたらマリエルさんで遊んでた。 pmd2mqoで本家をコンバート。 そのままだと白っちゃけるので、全マテリアルのdif=0.6, amb=0.4に修正。 pmdのテクスチャは k04t4.bmp*c.spa みたいな書式でdiffuseとsphere mapが指定出来るらしい。 mqoフォーマット上で表現出来ないので、どうせ使わないaplaneに分離。 sphere mappingの実装はこちらのサイトを参考に実装してみた。 Riftでハァハァしようと思ったら、画面左右で分離してレンダするわけで、 >Out.Tex0 = normalize( mul(Normal,mWVP))*0.5f+0.5f; この部分がモロ破綻、sphere map変換用のmatrixが別途必要な事に気付いた。


14/04/07(月)
02:14

ようやっと法線解決。 結局、ハイト→法線と同様に各軸の隣接voxelの差分から各軸の法線求めて、 頂点同様線形補間して算出。端っこはクリップ。 複数点光源のシェーダーも移植したけどやっぱ重い。


14/04/05(土)
06:46

光の減衰モデル。 今はどっかのサイトで見た光の減衰式使ってて、ほぼPovRayと同じ。 問題なのは記事の中に書かれてる通り、直感的で無く扱いづらい。 逆に、どんなのだと扱いやすいのか? 不自然でない減衰、かつ指定距離で光量0に減衰。 条件からして矛盾してるわけですが、 ゲーム上ではその方が都合がいい場合が多いんだよなぁ。

08:25

MCでダンジョン風地形。 法線がだいぶおかしい、ってかブロック単位での法線計算なので継ぎ目モロ。 ・・・それにしてもおかしすぎる。 マルチポイントライトのシェーダー組み込んだばっかなのでシェーダー側バグかもなぁ。 そしてなんとこの地形、破壊できます!(未実装) もちを絵に描いてみた。 ・コリジョン未実装 ・メッシュ部分再構築未実装 voxelへの判定でいいはずだからそこまで大変じゃないと思うけど。 眠い。


14/04/01(火)
11:37

マーチングキューブ実験。 voxel値1bitの球とそのワイヤーフレームvoxel値floatの球とそのワイヤーフレーム voxel値floatのパーリンノイズとそのワイヤーフレーム voxelは全て128x128x128。 1コアで230msec程度・・・遅い。 64x64x64なら16msecで生成出来るので、8コア使えば16msecに収まるという皮算用。 いや、最適化の余地、まだまだあるんだけどね! これ使えば壁に穴が掘れる、ということは3Dのローグライクが作れる! 穴の掘れないローグライクなんざローグライクにあらず! そもそものローグは掘れない気もしますが、 壁穴2マスとテレポートの巻物は生死にかかわる。 ってかマインクラフトでいい気がしてきた。


14/03/30(日)
02:23

熱下がらんけど薬効いてるし、年始のインフル地獄に比べれば・・・! 前々からやろうやろうと思ってた産廃龍だらけのbotツール改修。 毒ドロップ増えたぶんの対応とか、64bitコンパイルとか。 類似チェック用のハッシュテーブルが巨大でスレッド数増やせない問題が64bit化で解決。 3D関連に戻る。 コーディングしたいネタがまだまだある。


14/03/27(木)
11:51

風邪ひいたあああああああああ! fuck my life. 昨日から調子悪くて、もしかしてこれは恋という名のインフルかしら!? って思ってたけどただの風邪でした。 あー! 頭が痛いよ兄さん!


14/03/23(日)
22:04

焦点合った。 ようやっと理解した。 理解に至るまでデバッグコードとテストコード山ほど埋めたので片付けないと。 終わったら飛行機飛ばす。 どうでもいいけどピンクのトーラスってエロいね。


14/03/22(土)
09:56

メモ。 重大な勘違いをしていた。 640x2x800で通常レンダして640x2x800へレンズ歪みレンダだと思ってたら、 サンプルはレンズ歪み時の最大解像度で通常レンダして、640x2x800へ落とし込んでた。 この部分の修正が今さっきようやっと終わって、 マルチサンプリングテクスチャをシェーダーリソースに指定するとエラーが出る問題の調査。 結論:OculusのサンプルもD3D11_CREATE_DEVICE_DEBUG指定すればエラー出力される ほう。 http://www.gamedev.net/topic/571238-directx-10-view-dimensions-problem/ HLSL内で Texture2D ではなく、Texture2DMS を使えって事か? 早速実装したら Texture2DMS は SampleXXXX() 系関数が使えない問題。 そもそものエラー内容は D3D11 ERROR: ID3D11DeviceContext::Draw: The Shader Resource View dimension declared in the shader code (TEXTURE2D) does not match the view type bound to slot 0 of the Pixel Shader unit (TEXTURE2DMS). This mismatch is invalid if the shader actually uses the view (e.g. it is not skipped due to shader code branching). [ EXECUTION ERROR #354: DEVICE_DRAW_VIEW_DIMENSION_MISMATCH] で、 >(e.g. it is not skipped due to shader code branching) >(例えば、シェーダーコードの分岐の為、スキップされません) ・・・あってる? 「の為」->「で」かな? サンプルが問題なく動いてる事考えれば、無視して構わなそうでもある。 デバッグ時うぜーけど。


14/03/21(金)
17:26

DX11移植時にサボって頂点シェーダーライティングで実装してた部分をピクセルシェーダーで組み直した。 スキニング、視差マッピングがまだなんで、さっさと実装しろ俺。 Riftの視差バグは未解決。 この距離でこのくらいのパラメータなら立体に見える、 って感じで距離離れるとどう頑張っても焦点合わなくなる。謎。 ありそうなのは視差のオフセット値左右で加減算逆ってるとかかねぇ。 またサンプル追っかけてみるかぁ・・・。


14/03/20(木)
11:58

だいたい把握した。 以下未解決。 ・星単位のワールド座標系なので視界内の単位が小さすぎるのか、遠近感がだいぶおかしい ・マルチサンプリング時、シェーダーリソース、レンダリングターゲット、デプスステンシルのどっかに齟齬が出ててレンダリング失敗する そもそもFPS前提のデバイスだし、TPS的な表現をする事自体が間違ってるんだろうか? 他にも3Dの見え方関連はいろいろおかしいので、もっと単純な3D空間作って実験するか。

20:58

メモ。 接続ディスプレイの列挙。 EnumDisplayMonitors( NULL, NULL, cbFunc, 0 ); で一応ディスプレイの列挙が出来るが、 MONITORINFOEX::szDevice の名前が \\.\DISPLAY1 等になってしまい、 VESAで取得できているであろうモニタ名やシリアル番号等が一切取れない。 fuck my life. しゃーないのでレジストリをFuckしたらどーにか取れそうなのでメモ。 ・接続モニタ一覧 HKLM\SYSTEM\CurrentControlSet\services\monitor\Enum 上記キー内に文字列値で 0 から採番されている。(szDeviceの番号は1からの採番な点に注意) 文字列は、 HKLM\SYSTEM\CurrentControlSet\Enum\DISPLAY へのレジストリパス情報。 ・モニタ情報取得 前述のパス情報の先のキーを元に、 HKLM\SYSTEM\CurrentControlSet\Enum\DISPLAY\????\????\Device Parameters にEDIDがある。 00 00 00 FC 00 のデスクリプタ以降13Byteがモニタ名。 パディングに 0A 20 20 ... で埋められているので適宜処理。 ぶっちゃけRiftが取りたいだけなら、 EnumDisplayMonitors()で1280x800のデバイス採用すればいいんだけどね! なんか悔しかったので本気出してみた。


14/03/19(水)
07:53

起きたらコレが届いていた。 楽天最近使ってなかったのでかなりドキリとさせられた。 購入履歴は記憶にある5年前、閲覧履歴無しなので問題なさそう。 そもそも、アカ流出も無しに不正ログインが多発するような事があるのだろうか? それもこんな散発的に。 まぁ楽天なら自社のセキュリティホールに長年気付かず常に駄々漏れで、 駄々漏れてる事実にすら気付いてない、なんて事もあるかもしれないけど。 逆にセキュリティに問題が無いとした場合、 最近楽天を使用してないユーザに送りつけ、客足を戻そうという商法も疑われる。 使えば多量のスパムが届き、セキュリティにも問題ありそうな楽天なんて今後も使わんだろう。 という事で退会した。 >楽天会員を退会しても、楽天のメルマガは配信解除されません。別途配信停止の手続をお願いします。 ・・・酷い話だなオイ。

09:51

ヤマザキ春のこんなハズじゃなかった祭り。 サクッと片付く見積もりだったんだけど、組めば組むほど終わりが見えなくなる不思議。


14/03/18(火)
07:13

昨日 Oculus Rift 着弾。 RiftCoaster2回見ただけでめっちゃ酔った。 SDKのサンプル見たけど、ラッピングされ過ぎてて どこまでがライブラリでどっからサンプルのクラスなのかわけわからん。 なんとなくJavaer臭のするサンプルで追いづらい。 小一時間で諦めてPDFドキュメント読んだら、5分でセンサーの値取れた。 ---------- DeviceManager生成 → HMDDevice生成 → SensorDevice取得 → SensorFusionをSensorDeviceにattach → GetOrientation() で Quaternion取得 ---------- 画面のレンダリング側はまだあんま読んでないけど、 Riftの実寸やらを考慮した視差分の左右カメラ用matrix生成したり出来るっぽい? どのみちViewport左右で切って2回レンダリングする必要があるので、 その下準備まで完了。視差は適当。 この解像度なら、ポリの分割もう1段階荒くてもいいかもなぁ。 今はレンズ歪み補正のdistortion関連読んだりテストコード組んだり。 ってかレンズ歪み補正をシェーダーで処理するならレンダリングターゲット切り替え必要になるなぁ。 この辺のコードDirectX11で全く実験してないや。


14/03/14(金)
06:02

うわあああああああああ! まさかのアンダーフロー! 結構気つけてたんだけど、久々にやらかした。 重力ベクトルの長さを 0.0005 から 0.00005 に変えたのに何も変わってなくて気付いた。 惑星の半径が800だって事に。 floatの仮数部が23bit、log10(2^23) = 6.923… で7桁に少し足りない。 800 + 0.00005 で余裕の8桁、どうみてもアンダーフローです。本当にFML。 とりあえずdouble精度で地表に降り立つ事に成功。 ローカル座標系で演算して中心点をオフセット値として別演算するっていう手もあったか。


14/03/13(木)
07:46

地面走り回る実装中。 描画系の実装が全く足りてない。 デバッグ用の描画関数かシェーダ無いと話しにならねぇ。 あとriftがようやく発送された。 今、オーストラリア シドニーらしいぜ? いつ着くんだよー、ってか注文確認から発送までが遅いよー。(amazon基準


14/03/12(水)
21:02

昔から親の会社の車の面倒見てもらってる会社がありまして。 そこの息子M君と俺が小学校の頃の同級生でして。 M君「今度遊び行きますよ」 とか言ってたそうですが、ホント勘弁してください。 社交辞令でも怖いわ。 別に嫌いなわけでも無いけど、今会って何話せと? 小学校の記憶は思い出しても楽しかった事が少な過ぎて雪原に埋めました。 俺アニメくらいしかTV見ねぇし、興味の無い天気と社会情勢の話でお茶を濁しきれる自信もねぇ。 同じ業界の人間なら仕事関連でどっかしら共通の話題引っ掛けられるだろうけど、 疎遠な同級生との会話シミュレーション結果は、選択肢なしでBADEND直行でした。 まー、あっちも同じだろうし100%社交辞令だろうけど、ちょっと肝が冷えた。


14/03/11(火)
16:33

ロードレーサー。 ・・・酷いな。


14/03/10(月)
00:12

シェーダーの見え方をメタセコに近付けた。 メタセコのシェーダーソースあるから全く一緒にも出来るんだけど、 用途上の都合なんかもあり、全く一緒にするわけにもいかず。 これでDX9→DX11の移行作業のコア部分は終わり。 残りの機能は必要になったときに増設してく感じで。

04:23

だいたい移植完了。 今後必要な物。 ・空 ・コクピット ・フォント描画関数 ・oculus SDKの組み込み

16:50

ンー。 riftのデータソースとして360度カメラ撮影した映像でもいいよなぁ。 とか考えてたら既にあった。 ただ残念なのはTHETAは動画撮影出来ないらしい。 この手のキワモノデバイスはネタとしては最高なんだけど、売れなさそうだよなぁ。 こっちも動画は撮れなさそう。 bloggieは動画撮れるみたいだけど生産終了&パノラマ撮影なので上下はちと厳しそう。 映像をソースに使うなら、360度&3D撮影、複数方位のch録音なのかなぁ。 流行れば、それに特化した撮影機材やデータソースも出てくるんだろうけど、 主流になることはまず無いだろうなぁ。

19:23

全天周囲モニター風コクピット。 半分にぶった切った楕円体内に、3分で作ったテクスチャ貼り付けただけの手抜きだけどな! 中央にクロスヘア、下方にパラメータ類の仮想モニタとか付けたらソレっぽくなるかしら?


14/03/09(日)
04:33

とりあえず固定パイプライン的な8本のシェーダー組みあがったぁ! ところがテクスチャが表示できない、というかDX使ってるFirefoxを巻き込んで死ぬ。 死ぬたびに再起動してググルという遊びを30分くらい繰り返して気付いた。 入力のLayout更新してない、というか初期のテスト用の2本ぶんしかない。 少々エラーチェック周りを端折り過ぎている事にも気付いた。 ぼちぼち返り値と閾値のチェック入れはじめるかな。

07:27

眠い・・・。 寝る前にスタミナ消費しに行ったらフレに見た事無いモンスがー。 更新来てたのか。 5機龍合体はヤバイな! 発想の斬新さはいいとして、合成後のショボさっぷりが泣ける。 運営「産廃龍の合理的処分方法を実装しました」 みたいな事なの? みたいな事なんだろうなぁ・・・。 それに比べて女の子モンスの優遇っぷりったらない。 ・HP大幅アップ ・在庫整理じゃない ・可愛い やばい。 幻獣もHP底上げされてるけど、どーなんだろ? 元々が低すぎるし、無課金組みの高火力って位置付けみたいだし、 おっぱい付いてないから育ててないけど。

17:09

エラー系処理実装完了。 HLSLブラッシュアップ中。 固定パイプライン相当のhlslソースはなるべく弄ず、別プロジェクトでもそのまま使い回す。 別途実装が必要なシェーダーに関してはプロジェクトローカルに作成。 この時、cbuffer や構造体、#define 等は使い回すべきなので、ヘッダファイルに外出ししたい。 D3DX11CompileFromFile エフェクトのコンパイル (Direct3D 11) ID3D10Include::Open 面倒な・・・。 #include見つけたら規定の動作でincludeしてこいや! と一瞬思ったけど、 メモリ上のコンパイル、リソースのコンパイル時は? #include "~"(ローカルパス)と #include <~>(システムパス)の動作の規定は? 等々があるのでOpenとCloseをテメー様で実装しやがれ、という事らしい。 システムパスは実行ファイルのリソース読み込み、ローカルパスは実行時のカレントのファイル、 という扱いが一番しっくりくるかなぁ。

19:59

メモ。 D3DX11CompileFromResource()で軽くはまった。 リソースファイル(*.rc)上には、 --- RESOURCE_NAME RCDATA "res\\xxx.hlsl" --- みたいな感じで置く。 逆汗った感じだと FindResource() を RT_BITMAP(2) と RT_RCDATA(10) で検索かけてる。 ぐぐると、リソースタイプんとこに shader とか書いてある英語BBSが引っ掛かって軽く騙された。 英語、ちゃんと読まないとダメだ。 ってーか、リファレンスに検索対象のリソースタイプくらい載せとけや。


14/03/08(土)
18:26

転置行列で盛大に嵌った。 描画までは漕ぎ着けたものの、描画そのものがおかしい。 float4(x,y,0,1) で描画すれば正常に描画されるが、world, view, proj掛けると メッシュがペタンコになったり、回転軸の中心の頂点が回ったりしてるので、行列演算部分確定。 ただ何度見直しても行列に異常なし。 DirectX9でも正常動作してたクラス使いまわしてるし、演算結果比較しても差異ナシ。 ジオメトリシェーダーすっ飛ばしてるから、ビューポートが適用されてないのか? とも思ったけど、0.0~1.0空間への描画が画面に正常に出てるのでそこは生きてるはず。 丸一日潰して、今さっきようやっと答えを見つけた! まだちょっとどういう状況か飲み込めてないんですが、WVP行列に row_major 付けたら動いた。 どういうことなんだぜ? ・DX9はID3DXEffect::SetMatrix()が転置してた ・DX11でシェーダーのデフォルトが変わった 動いたからいいや、で放置しとくと追々危険な気がするので、もうちょい調べるか。

20:34

ンー。 >ホイール欲しい ハンドル欲しい D3D10 row_major column_major デフォルトは column_major だと書いてある。 変数の修飾であって、データ上は順番が変わるわけではない。 ならばDX9のID3DXEffect::SetMatrix()が転置してんのかと疑ってみたものの、 実験結果からいうと転置してない。 そもそも、DX9だとWVPmatを row_major, column_major どちらにしても動作かわりませんでした。 あれっ? 転置行列食わした場合どーなんだろ? と実験してみたところ、 row_major, column_major どちらの場合でも等しく壊れる。 いくつか可能性はあるけど、結論としてはDX9でID3DXEffect使用してる限りは row_major 固定で演算されてるっぽい。 ※オプションで変えられる可能性はアリ DX11はデフォルト column_major が生きてるので、 row_major を付けるか転置行列をセットする必要がある、みたいな感じなのかしらん。 合ってんのかこの解釈で? columnの方が効率いいらしいから、転置して送るかぁ。


14/03/07(金)
04:54

ああ、くそ、全く動かない。 実装や使い方勘違いしてるバグと、全く分からない理由で動かない箇所のハーモニー。 一点だけ分かったので直したら寝なおす。

17:07

メモ。 IDXGISwapChain::GetBuffer()で取得するバックバッファの参照カウントの扱いは? という疑問。 MSDN内には何も明記されていないし、参考にしたサイトの大半はRelease()してない。 ひょっとしたら不要なのかと思ってたけど、Release()の返り値見たらモロカウントアップされてる。 なので実装としてはRelease()するのが正解。 だけど、プロセス実行中にデバイス再作成でもしない限りリークする事も無いので プロセス終了時に勝手に開放されるから事実上問題ではない、という結論。 そんなことより動いてない箇所の調査に時間を割くべき!>俺

19:41

メモ。 --- D3D11 ERROR: ID3D11DeviceContext::Draw: Rasterization Unit is enabled (PixelShader is not NULL or Depth/Stencil test is enabled and RasterizedStream is not D3D11_SO_NO_RASTERIZED_STREAM) but position is not provided by the last shader before the Rasterization Unit. [ EXECUTION ERROR #362: DEVICE_DRAW_POSITION_NOT_PRESENT] --- [HLSL file] struct VS_OUTPUT { float4 pos : POSITION; }; // NG struct VS_OUTPUT { float4 pos : SV_POSITION; }; // OK --- コピペダメ、絶対。


14/03/06(木)
18:19

やっとコンパイル通った・・・。 まぁ、全く動かないんですが。 またサンプルとにらめっこかよおおおおお!


14/03/05(水)
06:31

>Your Oculus Order is About to Ship ほう。 送料$56も取ってるから航空便だよなぁ? DX11移植が遅々として進んでないわけですが、 サックリ終わらせてRDKに目通しときたい。


14/03/03(月)
05:53

初期化周りが変わった。 →だいたい修正完了 RenderStateが細分化された? →手付かずでエラーの嵐 テクスチャの扱いが変わった。 →よくわ 頂点バッファ系の扱いが変わった。 →確保の方式変更、レンダリング時の指定方法は要調査 ID3DXEffectが無くなった。 →えっ? ID3DXFontも無くなった。 →えぇ!? コンバーター作るときにモデルローダー部をDirectXから切り離してたおかげで、 現状ここだけは影響ほぼ無し・・・だけどメタセコの新VerでMQO自体が変わってたりするかもなぁ。 ってかさぁ、バージョンアップに伴う変更を最小の仕様変更で提供するのもラッパーの役目だと思うんだが、 ラッパー自体削ってくるってどういうつもりなんだ? ここも使いやすいように後々自前実装するけど、面倒くせぇなぁ。

13:08

レンダリングステート、サンプラーステート、ブレンディング設定等が、 構造体→COMオブジェクト化→レンダラにセット という遠回りな仕様になってて、どう実装したら合理的か分からなくなってる。 オブジェクト化後は編集出来ないみたいだし、GPU側メモリにあらかじめ構造体転送してんのかなぁ。 画面になんか出る所までもってきたいけど、削り過ぎると後々面倒。

15:33

あれ? XEffectあるの? 調べたら、SDKにソースあるから自分でビルドすれば使えるらしい。 バグ酷すぎてSDKに入れられなかった、って話なのかなぁ。 死ねばいいのに! ID3DX11Effectのソースざっと見てみたけど、なんか遅そうなコードだなぁ。


14/03/02(日)
15:54

水面にディスプレースメントマップ、あとシェーダーモデル4.0以降が使いたい! というわけで、今更DX10か11に乗り換えよう作戦。 っつーのも、今までVisualStudioのバージョン古くてDX10に乗り換えられなかったんだよねぇ。 過去、DX3、5、7、9と奇数だけ渡り歩いてきたので今回も10飛ばして11にすっかなぁ。

19:51

DX3は書籍についてたラッパーライブラリ使ってたので、自前ライブラリは存在せず。 DX3→DX5はそのラッパーに手加えて続投。 DX5→DX7はRetained Mode削られたのをきっかけに全部自前実装に切り替えて血反吐はいた記憶。 DX7→DX9はDirectDrawが削られた影響で初期化周り、シェーダー関連の追加くらい? Vistaコケたおかげもあって、長い期間で使い続けられた。 DX9のラッパークラス作るにあたって、なるべくDirectXのバージョンに依存しない形で 実装するようにしてたつもりなんだけど、まぁそう甘くは無いか・・・。 ざっとDX11の初期化~描画のサンプル見た感じ、 コンパクトに纏めようという努力が見られるし、低レベルの描画部だけ修正でいけそうな雰囲気。 低レベルの描画部が結構デバッグ大変なんですがね!


14/02/28(金)
14:52

SS。 箱○コン非公式ドライバ入れてフライト実験。 地面とのコリジョンあり、爆発無し。 そのシーン、100万ポリくらいあるはずなのに ディティールと呼べるものが何も無いのでスケール感が全く出ない問題。 真下真上を向くとカメラが壊れるという、よくあるバグ未修正。 大気もねぇ、星もねぇ、光源あるけど太陽ねぇ! 3Dフライトゲー作る気は全く無いけど、惑星の箱庭感はちょっと楽しい。

21:58

サンプルアプリ。 動作環境 ゲーコン:箱○コン ドライバ:非公式ドライバ(RTをZ回転(+)でアナログ) 左スティックで自機の旋回 右スティックでカメラ回転 RTで加速 進行方向に対して自機の腹を向けるか地面に衝突で減速


14/02/27(木)
17:45

(0,1,0)が常に上な平面上と違って、球形上のカメラ処理が大変過ぎる。 どうやったら破綻無し&操作しやすくなるんだ?


14/02/26(水)
14:11

テクスチャのリアルタイム生成なんていらんかったんやー! どうせハイトで色分けするだけだし、 レンダラで高さ求めるなり、UVの変わりに高さ情報仕込むなりして、 テクスチャ自体は1次元配列のカラーバーでおk。 んで虹のカラーバーで早速実験。 カメラ撮影カメラ視界視界のワイヤーフレーム テクスチャ生成無くなったからメッチャ軽い。 今は12段階(4096倍)の細分化してるけど、 FPSだと一番近い地面が通常視界外の真下になるので細分化効率ちと悪いか? というわけで基礎研究終了。 ゲームは・・・とりあえず移動と弾撃てるようにするか。

16:37

地球的なアレ。 ディレクショナルライトなので反射が棒になっててちとダサい。 地面のマテリアル1個しかないので反射の強さが水面と地面で調整出来ない問題。 解決するには反射の情報を頂点に仕込んどくしかないかぁ。 あと、なんかどっかで見た事あるような絵面だと思ったら、メガCD版シルフィードか!


14/02/25(火)
14:45

SS1SS2 ハイト→法線。 今、メッシュの分割方法が1/2を繰り返す方式なので、隣のメッシュの頂点が取れない。 さぁ、どうしたものかしら。

15:59

出来た。 近似値なので細部で破綻しそうな気がしてたけど、 細分化結果の近似値なのでそこそこの精度で求まってるみたい。 あとはテクスチャ生成部作って終わり。


14/02/24(月)
22:08

まさかのエバー(by.三石)コラボ再び! 前回実施時は始めてなかったのでちょっと嬉しい。 ラミエル100匹集める作業開始。

22:45

テクスチャと頂点バッファの生成を別スレ化。 そしたら途端に落ちるように・・・。 CriticalSectionでシーン描画中は生成もバッファ操作もしないように修正したけどダメ。 そういや昔もなんかそんなんあって、別スレ化諦めた事あったなぁと思い出した。 思い出したってか、デバッグの残骸コードがあちこちにコメントアウトされてる。 今ぐぐったら、コレダー! キャプテンコレダー! CriticalSectionなんていらんかったんや! 結構長いことDirextX9触ってんのになぁ。 まぁデバイス作成部なんて最初にどっかのサンプルからコピペってほぼそのままだし、しゃーないか。 そして別の問題が発生中。


14/02/23(日)
03:45

調整中。 ↑のカメラ位置でLOD固定した別アングル。 デバッグ情報だらけで画面汚いなぁ・・・。 黄色線は分割レベル。 これは単純にカメラからの距離で細分化してるだけでメッシュは無し。 青枠赤ポリ部分は視界内&メッシュ有り。 メッシュ生成部分はスレッドセーフな実装なので、追々別スレ化予定。 あと未実装な処理はテクスチャの生成と法線算出。 法線はなんか楽出来ないかなぁ・・・


14/02/21(金)
19:23

出来た! 結構手間取った。 4分割した子の隣接メッシュは簡単に取れるけど、 最上位の6面体の隣接がスゲー面倒だというのを途中で思い出してもだえ苦しんだが、  ← →↑↓  ↓ これで解決☆ミ 分割時の演算誤差もほとんど出ないようにしたのでメッシュ間の継ぎ目は今のところ無し。


14/02/20(木)
03:35

大幅な修正が必要になったので、一回svnにコミットしとくかーとankhsvn最新版インスコ。 いつのVisualStudioからかは知らんけど、2013には「チーム」なるメニューが増えてて、 そこにsvnのメニューが増えるのかと思ったら増えてない。 プロジェクトツリーの表示も変わってない・・・あれ? 出力元の表示のドロップリストにはAnkhSVNがあるから生きてるっぽい。 調べたら、オプションのソース管理のプラグインの選択が必要なそうな。 ってかVSはデフォでGit使えんのね。あとVSSの後継のTeamFoundation・・・いらねぇ。 デフォルトでGit使えるようにしちゃったら縛りの多いM$製品なんて使わなくね? まぁ、それは置いといて。 Git使ったこと無いけど、メリットなんだろ? とwikipedia読んでたら3時間潰れた。 ソース500MもあるLinuxカーネル管理するために作られたのかぁ。 そんな規模のプロジェクト、世界中にどんだけあるんだろ。 あ、Word文書やエクセルファイルをsvnで管理するよりは高速に行えるかもね! もっとも、差分だとしてもテキストに比べれば遥かにでかいバイナリファイルを 誤字脱字一文字直すたびにリビジョン残すなんて馬鹿げてるとしか思えないけど。 ほんとコレ。 マクロで自動生成したxls200~300ファイルを、 マクロ修正する度に「コミットしといて」というのは忙しすぎて気狂ってたんだと思う。 んなこと繰り返してりゃリポジトリも重くなるわな。


14/02/19(水)
14:38

リアルタイム生成で惑星LODする場合、レベル合わないメッシュ間の継ぎ目どーしてんだろ? 動画だと荒くて確認しづらいんだけど、よく見ると結構継ぎ目割れてるの多い。 やっぱこの方法が一番簡単に継ぎ目処理出来るっぽいなぁ。 実装やり直すか。

23:06

演算上の不都合の修正完了。 バグではない! 設計ミスである! ま、設計フェーズとか無いんですけどね。 夕方ラーメン屋の帰りにメッシュ間の継ぎ目問題も最小の修正で パフォーマンス落とさずに実装可能な事に気付いて、 技術的に問題になりそうな点が現状すべて解決された。 こうなるともう出来たも同然なので研究目的は達成されモチベーション下がり 結局放置というパターンになりがち。 なんかこれ使ってゲーム一本仕上げてみるかなぁ。


14/02/18(火)
13:52

SS1, SS2 球形のLODだいたい出来た。 1年半前に頓挫してたのを丸ごと捨てて組みなおし、というか前回は全くダメだったしなぁ。 カメラの距離と向きで細分化するわけですが、無駄なく視界内を細分化する部分がちと甘い。 まぁ、その辺は追々詰めてくとして、perlin noise で地形生成する部分作るかなぁ。

17:22

perlin noiseのオクターブ加算を高速化したい! 何も考えずに配列一個、スレッド複数で同一の配列に加算処理を行うと当然壊れる。 加算処理部をアセンブラでlockプリフィクス付きaddにしてみたら、 2~3msecの処理が30msec超えた。 単一スレッドで走らせた方がはええ! ってか2フレ超えてんじゃんすか! ンー、おとなしくスレッド数だけメモリ確保してあとで加算処理した方が速そう。


14/02/15(土)
21:25

TitanFallβ開始&終了。 敵味方、それぞれにbotがいるけど、邪魔でしかない。 Titan呼んでも背中に張り付かれて棺桶。 アクティブカモ標準装備。 謎の新兵器ロックオンピストルでカモから遠距離暗殺される。 壁走り、二段ジャンプの要素はちょっと面白くはある。 FPSだと思ってガチると萎えそうだけど、スマブラだと思えば楽しめるかもしれない。


14/02/10(月)
12:45

GWでも盆休みでも正月休みでも無い、俺休み中。 VS2013(C85)セットのオマケ以外が届いていたのを思い出していろいろ設定中。 DX関連でちょっとネタ思いついたのもあって、サンプル的な何かを作ろうかと思ったら、 オプションのVC++ディレクトリの設定が封印されている。 調べたら・・・解りづらっ! まず、共通の設定なのに固有のプロジェクト開かないと編集出来ない仕様が糞。 初心者が勘違いしてプロジェクト固有の設定をマクロ設定で行いかねない場所に存在する仕様も糞。 オプションダイアログに「マクロ設定値の編集」みたいな項目置いとけばいいじゃん。 当たり前の物が当たり前の所に無い、もしくは過去製品から継承しない使い勝手の悪さは安定のM$。 コレがあるからM$製品はVerUPに躊躇するんだよなぁ。

13:48

うん、ダメだった。 マクロ値は編集出来ない。 Visual Studio 2010 C++ の “VC++ ディレクトリ” 設定はどこへ? えー・・・。 まー、あれですか、ツール上から設定変更させると初心者が既定値壊しちゃうもんね☆ ってボケー! クソガキ基準にしてんじゃねーぞksg! 隠し属性のディレクトリ開いて、標準設定がなんもない設定値不明のXML編集する手間考えろや! まぁせっかくXMLなんだし、インデントそろえてディレクトリ単位で改行入れたら、 インデントのスペースと不可視の改行コード交じりでプロパティ表示される件。 1ライン表示用にホワイトスペース除去しとけやあああああああ! イライラする。

20:53

VS2013の習熟と調教ついでに粒子法の最適化中。 この記事内の、 >また、粒子pと粒子pjについて対称なので、その対称性を利用すれば、計算量をさらに半分にすることが可能です。 演算量をO(n)化する為に格子毎の配列をHASHMAP系配列に格納してる関係で、 実現する良案がずーっと思いつかなかったけど、今ふと気付いちゃった! for( i = 0; i < n - 1; i++ )  for( j = i + 1; j < n; j++ )   hoge( i, j ); で実装することばかり考えてたけど、HASHMAP化で処理する量が最小な現状、 for( i = 0; i < n; i++ )  for( j = 0; j < n; j++ )   if( i < j )    hoge( i, j ); 的な事が出来ればいいんだから全粒子にユニークID振って、 自分未満の相手とのコリジョン処理すればいいんだ。 更に、粒子毎のポインタがユニーク値に代用出来るので、 整数型にキャストして使えばID振る手間も無駄も省略可能。


14/02/05(水)
02:06

FarCry3キャンペーンクリア。 QTEウザすぎ。 QTE気にしてるとストーリー頭に入ってこねーんだよバーカ。 QTEミスするとロードだし、アホかっつーの。 動物に噛み付かれてQTE死はまだいいけど、ボス戦全部QTEは手抜き過ぎ。 あと画面が結構揺れるから酔いやすい。 他は概ね楽しめた。 現在海外ではデッドアイランド1がGOLD無料配信中ですが、国内はSacred Citadel。 デッドは持ってるので個人的にはGood! 苦手なベルスクだけどヲリでサクッとクリア。 小小小大で転がして、ダウン攻撃連打でずーっと俺のターン! ・・・えっ? 転がらないボスと敵HP高めの最終ACT以外はこれで押し切れる謎。 画面端で小小小大で転がしっぱなしでもいい。 あっと驚くストーリー! があるわけがない、期待を裏切らないセイクリッドシリーズ。 ・・・ならスキル振りくらいは継承してても良かったんじゃねーのかなぁ。 ハクスラ要素も薄いし、殴り飽きたらHDDから消していい感じ。 ドラクラと比べてキャラ見失う事が殆ど無いのは良。


14/02/03(月)
01:04

ドラゴンゾンビ降臨超級はボーンフィッシュを全体攻撃で殲滅出来ればLFセロで余裕でした。 地獄は石ジャブって程ではないけどコンテでクリア。 今考えれば闇半減パで行けばよかったのかぁ。 日付変わって光の歴龍が来たので地獄級と超級を全バトルワンパンクリア。 LFクシナダと適当に高火力闇系突っ込んで、回復も考えてドラウン入れてみたけど 光出ないんだから入れるべきはふわふわデスネー。 まぁワンパンでずーっと俺のターンなのでHPすら無視して火力染めでいい気が・・・。 ラフロイグも2ターン余裕あるものの、 体力削りきれなかった場合の闇縛り対策で水木火力1~2入れるのも手かもしんない。 え、ラフロイグ集めてどーすんの? スキルマでもすんの? という疑問は残りますが。


14/01/31(金)
00:04

ゴミの島脱出まであと1日! カウントダウンボイス。 今頃になってからみんな引継ぎ引継ぎ言い出した。 マジゴミの島。


14/01/25(土)
13:31

>ドラゴンゾンビ降臨!【ドラゴンタイプ限定】 ドラゲー始まったな! ・・・なんて言うとでも思ってんのかコルァ! 産廃龍でしか入れないダンジョンで産廃龍がドロップするというお話だったのさ。 -完- でもまぁ、初めてインドラ先生の出番だな。 と思ったら、 >「主タイプがドラゴンタイプのモンスター」のみ なので主タイプ神のインドラは倉庫番続行。 ってか主タイプドラゴンてスキルほとんどブレス系じゃないですかヤダー! L CDKセロ F 緑ソニア S 光属性ドラゴン適当 超絶ドラゴンラッシュでヒデヨシドロップしなかったのが悔やまれる。


14/01/21(火)
22:05

TDM月間キルレ1.98、SPM260の俺様が貴様ら養分共にハンデをくれてやろう! メガネ無し。 廊下に置いて来た眼鏡、寒くて取りに行きたくなくてさぁ・・・。 ホント見えないね、ちょっとびっくりした。 SRのスコープ、レンズ外れてんじゃねーの!? ってくらい見えない。 いつもなら、「おーい! 今のがなんで当たってねーの!? チートじゃねーだろうなコラァ!」 というシーンが、「あれ? 弾出てます? ってか今の敵?」みたいな。 肉眼www無理無理無理wwwwwwwwww見えるわけねぇwwww でもまぁ13k4dだったので、たぶんみんなも眼鏡かけてないんだと思う。 みんなもかけた方がいいよ!

22:13

そういやTDM全期間キルレが先週くらいに1.5になった。 という事はですよ? 2.0以下で週間&月間が、1.5以下で全期間のキルレ下がるって事なんだぜ!? ・・・だいぶマゾい。


14/01/20(月)
23:08

生徒会役員共のへきるは久々にいいな! ドーチン以来の当たり役なんじゃねーのコレ!?


14/01/16(木)
00:06

絶対にノゥ! BO2で招待されてもノゥ! 新年会に誘われてもノゥ! 会社からメールが来てもノゥ! どうみても悪化しています。ほんt(r インフルエンザ以降どうにも調子戻らずに早めに寝てるのであんまBO2してないけど。 新年会とかしてる余裕あるんだー(笑 会社からのメールは最終的に喧嘩しなきゃならなそうで面倒なんだよなぁ。 そういや、現場での俺のサブクラスが便利ツール屋にチェンジした。 だったらせめてVCくらい使わせろよ! あと俺今月いっぱいなんだけど、それらツール類引継ぐ気ゼロな姿勢は評価。 追加修正分とか出たらどーすんのか聞いたら、マンパワー&残業パワーでゴリゴリやるらしいぜ! なんという脳筋! 同じ口で「間に合わせますよ、我々優秀っすから!」だって、図々しい。 ・・・俺もう行かんでええんちゃう?


14/01/07(火)
23:06

今まで全く無かったパズドラのフレからのメールが、なぜか最近になってチョイチョイ来るように。 へー、この機能生きてたんだー、うぜー、みたいな。 なんすかね、みんな友達欲しいんすかね? だったらパズドラやめてMMORPG始めた方がいいよ! グラだけ豪華なクリックゲーオススメ、退屈な戦闘中にいっぱい会話出来る事でしょう。 仕事でも遊びでも、よく知らん人相手にメールの文章考えるのしんどいです。 まず空気感が掴めないから、どれくらい文章崩して許されるのか? もしくは崩しても意味通じるのか? そんな事で頭使ってるうちに、だんだんどーでもよくなって来て フレリストから削除という安易な手段で解決しがち。 でもほら、新年早々そういうのもどうかなと。 今年は一律受信拒否ったりメッセ見もせずに削除するのはやめようと思います。 僕ももう大人なので。


14/01/06(月)
13:34

インフル休み続行中。


14/01/04(土)
10:53

正月早々インフルエンザ! しんどいわー

12:51

俺インフルだから寝てないとダメだと思うんですが、 「ネット繋がらないんだけど!」 っつって親に呼び出される謎。 何したの? って聞いても「何もしてない」の一点張り。 McAfeeと有償Norton両方入ってたり謎だらけ。 ルータ通してるし、エロサイト巡回とかアングラツール系入りびたりでもないんだし、 MSEで十分じゃないすかね?