Diary
Archives
You are currently viewing archive for January 2010
2010.01.29 - 帰宅失敗
□仕事が終わらんかったので会社で仕事続行中…
今日昼ごろに家に帰れるのでいろいろ処理が終わったてからSQLiteのテストやろう。
ちょいと疲れたので週末予定された羽村堰での録音は先送りかなぁ。
□夏コミまでの開発フェイズを4段階に分けていてそのフェイズ1の期限が今週末に設定されている…!
未実装なのがデータベースの件と3Dサウンドの件。ちょっと3日で終わらんなぁ。
締め切り過ぎたからと言って何があるというわけではないが縁起が悪すぎる。
今日昼ごろに家に帰れるのでいろいろ処理が終わったてからSQLiteのテストやろう。
ちょいと疲れたので週末予定された羽村堰での録音は先送りかなぁ。
□夏コミまでの開発フェイズを4段階に分けていてそのフェイズ1の期限が今週末に設定されている…!
未実装なのがデータベースの件と3Dサウンドの件。ちょっと3日で終わらんなぁ。
締め切り過ぎたからと言って何があるというわけではないが縁起が悪すぎる。
2010.01.27 - データ構造。
□当初からXMLで各種データを用意しようと思っていたのですが、コンフィグ設定の読み込みでXML使ったら激しく読み書きが面倒だったので別の方法を探すことにしました。
CSVとかも考えたのですが仕事柄あまりCSVが好きではなかったのでSQLite使うことを試してみました。
…これがなかなかよい代物でw
XMLほど小回りきかないですが、やっぱり仕事で使ったりするものの周辺だとわかりやすくてよいです。
このゲーム作るうえでの唯一の自分の土俵というかなんというか。
□WAVの読み込みをテスト的にSlimDXで用意されているWaveStreamをファイル名を引数にして使っていたので、メモリ上から読むようにMemoryStreamを引数にして渡すようにしたらなんだか気になるクラックノイズが先頭に出るようになってしまった…なんだかんだで時間を使って調べてみたのですがどうにもWaveStreamにStream渡すと妙なデータが入るっぽい。
…データサイズ的には同じなんですけどねぇ。
とりあえずWaveStreamは使わないでWaveFormatを自分で調べて渡せばノイズは乗りませんでしたとさ。
CSVとかも考えたのですが仕事柄あまりCSVが好きではなかったのでSQLite使うことを試してみました。
…これがなかなかよい代物でw
XMLほど小回りきかないですが、やっぱり仕事で使ったりするものの周辺だとわかりやすくてよいです。
このゲーム作るうえでの唯一の自分の土俵というかなんというか。
□WAVの読み込みをテスト的にSlimDXで用意されているWaveStreamをファイル名を引数にして使っていたので、メモリ上から読むようにMemoryStreamを引数にして渡すようにしたらなんだか気になるクラックノイズが先頭に出るようになってしまった…なんだかんだで時間を使って調べてみたのですがどうにもWaveStreamにStream渡すと妙なデータが入るっぽい。
…データサイズ的には同じなんですけどねぇ。
とりあえずWaveStreamは使わないでWaveFormatを自分で調べて渡せばノイズは乗りませんでしたとさ。
2010.01.25 - 余暇のほとんどが睡眠時間に充てられた
□掲題のとおり。土日で30時間ほど寝ていた。
音のフォーマットの件は最終的にそのフィールドで使うものは最初に全部メモリに突っ込むということで決着が付いた。今のところ100MB程度しか食っていないのでたいした問題にはならなさそう?
3Dサウンドやろうと思って、川の音を録りに出かけたのですが、家の近くの石神井川は残念なことにほとんど音を出さずに流れていた。
ほとんど唯一の移動先である会社は秋葉原でまともに音が取れそうにない。
どうしたものか。。。
春になったらどこか地方に行ってこようかな
音のフォーマットの件は最終的にそのフィールドで使うものは最初に全部メモリに突っ込むということで決着が付いた。今のところ100MB程度しか食っていないのでたいした問題にはならなさそう?
3Dサウンドやろうと思って、川の音を録りに出かけたのですが、家の近くの石神井川は残念なことにほとんど音を出さずに流れていた。
ほとんど唯一の移動先である会社は秋葉原でまともに音が取れそうにない。
どうしたものか。。。
春になったらどこか地方に行ってこようかな
2010.01.24 - 結局普通のPCMでいくことに。
□ぎゃー!!!さんざ時間を使った挙句、音は出たもののxWMAではループがサポートされてなかった!なんか自分でやれとか。
ならばADPCM!とか思ったんだけどループ時に妙なノイズが。ブロック数とループのポイントあってるはずなのに…。
前回発覚した問題は別な方法で解決させてPCMでいくことにしますです。。
□どうにも最近時間が取りづらい。
一旦ネコミミフィールド以外の作業をすっぱりと片付けないとダメかしら。
ならばADPCM!とか思ったんだけどループ時に妙なノイズが。ブロック数とループのポイントあってるはずなのに…。
前回発覚した問題は別な方法で解決させてPCMでいくことにしますです。。
□どうにも最近時間が取りづらい。
一旦ネコミミフィールド以外の作業をすっぱりと片付けないとダメかしら。
2010.01.22 - riff/xWMA
□仕事が何やらギリギリ。
今夜は帰れなかった。明日家に早めに帰って開発再開しよう。
…今週は土日何かとやることがあってなかなか進まなそう。
年度末が近付いている影響かな。
□音の形式についていろいろと逡巡。
再生の容易さもあってひとまずwavファイルで音を鳴らしていたのですが、やっぱりファイルサイズがネックになって圧縮された形式を利用することにしますた。
XAudioだとPCMの他にADPCMとXMAとxWMAが使えるらしい。
oggとか対応してくれても罰はあたあるまいに…とか思うが仕方ない。
ざっと読んだ感じ、ファイルがmp3並みに小さくなるのはXMAとxWMA、そんでもってXMAはなんだかXBOXで使われるのが主のように受け取られたのでxWMAで行くことにしました。
DouglasさんにXACT Developer Toolsの場所教えてもらってエンコードしてみたりするのですがなぜだか変な形式(wave bank)しかできん!個々のファイルにエンコードできんのか!!!
…結果:2時間ほどいじった結果無理でした。
単独のxWMA作るのはXACT Developer Toolsでは無理っぽいです。
xWMAEncode使ってください、とな。同じところにありました。
エンコードできたのはいいのですがwavの代わりにそのまま放りこんでも再生してくれないのですね…ちょいとめんどい。
現在riffを一生懸命読んでいるところで作業停止中。
ねむい。
今夜は帰れなかった。明日家に早めに帰って開発再開しよう。
…今週は土日何かとやることがあってなかなか進まなそう。
年度末が近付いている影響かな。
□音の形式についていろいろと逡巡。
再生の容易さもあってひとまずwavファイルで音を鳴らしていたのですが、やっぱりファイルサイズがネックになって圧縮された形式を利用することにしますた。
XAudioだとPCMの他にADPCMとXMAとxWMAが使えるらしい。
oggとか対応してくれても罰はあたあるまいに…とか思うが仕方ない。
ざっと読んだ感じ、ファイルがmp3並みに小さくなるのはXMAとxWMA、そんでもってXMAはなんだかXBOXで使われるのが主のように受け取られたのでxWMAで行くことにしました。
DouglasさんにXACT Developer Toolsの場所教えてもらってエンコードしてみたりするのですがなぜだか変な形式(wave bank)しかできん!個々のファイルにエンコードできんのか!!!
…結果:2時間ほどいじった結果無理でした。
単独のxWMA作るのはXACT Developer Toolsでは無理っぽいです。
xWMAEncode使ってください、とな。同じところにありました。
エンコードできたのはいいのですがwavの代わりにそのまま放りこんでも再生してくれないのですね…ちょいとめんどい。
現在riffを一生懸命読んでいるところで作業停止中。
ねむい。
2010.01.18 - SlimDXのXAudio
なんかSlimDXのグラフィック側とだいぶポリシーが違うのか、大本のXAudioの関数との違いが大きいです。なのでSlimDXを使わないC#以外のソースが余り参考にならんのですよ。
とりあえず音は鳴らせるようになったものの、解放しようとするとうちのプログラムがあずかり知らぬところで落ちたり、もうないとか言われたり。
無理にDisposeしないでいいものなのかいな?
曲途中のループ再生はXAudio側で既に準備されていたので何も苦労する必要がありませんでした。うふふ。
3Dサウンドはまだ。素材がないし。
そっちやる前に暗号化処理を手をつけるかなぁ。
□3Dサウンド実装する時間はTwitterを投稿する機能を実装する時間に化けました。
大きな進捗だった気がしたのでそっちはねこみみのかけらブログに掲載。
…ふう。1時間寝て会社行きます。
とりあえず音は鳴らせるようになったものの、解放しようとするとうちのプログラムがあずかり知らぬところで落ちたり、もうないとか言われたり。
無理にDisposeしないでいいものなのかいな?
曲途中のループ再生はXAudio側で既に準備されていたので何も苦労する必要がありませんでした。うふふ。
3Dサウンドはまだ。素材がないし。
そっちやる前に暗号化処理を手をつけるかなぁ。
□3Dサウンド実装する時間はTwitterを投稿する機能を実装する時間に化けました。
大きな進捗だった気がしたのでそっちはねこみみのかけらブログに掲載。
…ふう。1時間寝て会社行きます。
2010.01.16 - Windows2000は切ってもよいのかどうか
いよいよ音周りの実装に入ったらしくDirectSoundとXAudioどっち使うべきなのかDouglasさんに相談しようと思ったらメッセにいないので一人で悩む。
XAudioがWindows2000で使えないって言うのが痛いよなぁ…と思ったらSlimDX自体がXP以降なのねん。
といういことでネコミミフィールドはXP以降でしか動く保証がないらしい。
知人に聞いて回ろうかと思ったが昔からやってる人は当然DirectSound使ってるだろうからやめた。
…XAudioのサンプルのコードの短さにとっても惹かれるのだが。
□同人だとXAudioよりOpenAL使う人のほうが多いのだろうか?
ただちょっと調べた限りでは、ネコミミフィールドが3Dサウンド必須ゆえにXAudioにくらべて果てしなく面倒なことになりそう。
他の環境への移植性やWindowsのバージョンの問題からみるとプログラマ的にはOpenALしかないように見える。
しかし残念なことに私の本質の部分はプログラマではないのであった。
XAudioがWindows2000で使えないって言うのが痛いよなぁ…と思ったらSlimDX自体がXP以降なのねん。
といういことでネコミミフィールドはXP以降でしか動く保証がないらしい。
知人に聞いて回ろうかと思ったが昔からやってる人は当然DirectSound使ってるだろうからやめた。
…XAudioのサンプルのコードの短さにとっても惹かれるのだが。
□同人だとXAudioよりOpenAL使う人のほうが多いのだろうか?
ただちょっと調べた限りでは、ネコミミフィールドが3Dサウンド必須ゆえにXAudioにくらべて果てしなく面倒なことになりそう。
他の環境への移植性やWindowsのバージョンの問題からみるとプログラマ的にはOpenALしかないように見える。
しかし残念なことに私の本質の部分はプログラマではないのであった。
2010.01.15 - コンパス付けれた
□とりあえずスクリーンショット取る機能とコンパスつけた。
正直この季節の平日の作業は辛い。
コンパスの動き以前にレンダリングターゲットだののデバイスロストの対応忘れとかに結構戸惑っていたような。
コンパスとカメラのクォータニオンの状態によって、磁力と重力から受ける力から角加速度を求めて角速度を計算して…とやってみたのですがどうにもロシアの宇宙飛行士の訓練機械のようなうごきばっかりしおる。どうにかこうにか弄ってたのですが、さすがに毎日朝6時まで作業するのはきついので何とか5時までの寝ようと思ってSlerp()でコンパスとカメラの逆クォータニオンの補完で我慢することに。
5時ってもほかの硬派なサークルの人たちは普通に起きてて作業状況晒しとかやってるのが怖い。負けないようにしないと。
SSアップしようかと思ったけど動画じゃないとあまり意味ないですなー。効果音とか入るようになったらニコニコ動画あたりにアップしてもいいだろうか?
こっちの方がキングスに忠実っぽいといえば忠実っぽいんだけど…
□キャプチャムービーとる機能を実装しようかと思っていろんな人にやり方聞いたら結構簡単らしいことを言っていたので気が向いたらやってみようかと。
コタツのノートPCはシングルスレッドなので母艦で活動できる春までやらないとは思うけれど。
□ちょいと今までのプログラムでまずいところも見えてきたので作業がまだ序盤の今のうちにざっくり書き換えて整理しておいた方がいいかなぁ。
次はようやく音の実装なんだけど使える効果音持ってないからどこかに録りに行こうかね。
正直この季節の平日の作業は辛い。
コンパスの動き以前にレンダリングターゲットだののデバイスロストの対応忘れとかに結構戸惑っていたような。
コンパスとカメラのクォータニオンの状態によって、磁力と重力から受ける力から角加速度を求めて角速度を計算して…とやってみたのですがどうにもロシアの宇宙飛行士の訓練機械のようなうごきばっかりしおる。どうにかこうにか弄ってたのですが、さすがに毎日朝6時まで作業するのはきついので何とか5時までの寝ようと思ってSlerp()でコンパスとカメラの逆クォータニオンの補完で我慢することに。
5時ってもほかの硬派なサークルの人たちは普通に起きてて作業状況晒しとかやってるのが怖い。負けないようにしないと。
SSアップしようかと思ったけど動画じゃないとあまり意味ないですなー。効果音とか入るようになったらニコニコ動画あたりにアップしてもいいだろうか?
こっちの方がキングスに忠実っぽいといえば忠実っぽいんだけど…
□キャプチャムービーとる機能を実装しようかと思っていろんな人にやり方聞いたら結構簡単らしいことを言っていたので気が向いたらやってみようかと。
コタツのノートPCはシングルスレッドなので母艦で活動できる春までやらないとは思うけれど。
□ちょいと今までのプログラムでまずいところも見えてきたので作業がまだ序盤の今のうちにざっくり書き換えて整理しておいた方がいいかなぁ。
次はようやく音の実装なんだけど使える効果音持ってないからどこかに録りに行こうかね。
2010.01.12 - RenderTarget後のDrawUserPrimitives
□ひどい偏頭痛で夜中まで寝てた。
薬飲んだタイミングが遅かったので薬ごと嘔吐してそのあとずっとのたうち回ることに。
□モデリングとか絵を描くんでなければ寒いデスクトップで作業する必要がないので5年前のノートPCにVisualStudioとかTortoiseSVNとかもろもろインスコしてこたつに完全移行。
とりあえずコンパス描く作業を再開したのですがなぜだかさっぱり表示されない。
RenderTarget変えた中でMesh.DrawSubsetするとそのあとで呼んだDrawUserPrimitivesがさっぱり表示されない。
某所の2Dポリゴン表示サンプルがDrawUserPrimitivesで出来てたのでそのまま使ったのですがそもそもDrawPrimitives使うべきだったとか。
バグか仕様か知らないがDrawPrimitives使ったら何か表示された。
コンパスの回転挙動に角加速度使いたいのだけれどどうやったらいいのかしら。
オイラーだったら簡単なんだが…クォータニオンで表現できるんかいな?
目が覚めたらまた考えよう…
□一部勉強の過程もあって文字の表示にSpriteとかも使ってるからあとで統一しなきゃなぁ。
描画のメソッドたくさんあるけど何が一番早いのでしょうな。
ここらのノウハウないから苦労するわ。
追記
□昼ごはん食べてる間コンパスの挙動を考えていたがどうもコンパスには二つの力が働いているらしい。(“物”があればすぐにわかるんだろうが…)
Y軸の回転は磁力のみ、X・Zの回転は重力のみの影響を受けるわけだが。うーん…どうすりゃいいのやら……
それぞれの軸に分けて、カメラのUPベクトルとコンパスUPベクトルの外積からそれぞれの軸の角加速度を適当に出して、そっから作ったクォータニオンかけてやりゃいいのかしらん??
なんだか冗長だのう……。
薬飲んだタイミングが遅かったので薬ごと嘔吐してそのあとずっとのたうち回ることに。
□モデリングとか絵を描くんでなければ寒いデスクトップで作業する必要がないので5年前のノートPCにVisualStudioとかTortoiseSVNとかもろもろインスコしてこたつに完全移行。
とりあえずコンパス描く作業を再開したのですがなぜだかさっぱり表示されない。
RenderTarget変えた中でMesh.DrawSubsetするとそのあとで呼んだDrawUserPrimitivesがさっぱり表示されない。
某所の2Dポリゴン表示サンプルがDrawUserPrimitivesで出来てたのでそのまま使ったのですがそもそもDrawPrimitives使うべきだったとか。
バグか仕様か知らないがDrawPrimitives使ったら何か表示された。
コンパスの回転挙動に角加速度使いたいのだけれどどうやったらいいのかしら。
オイラーだったら簡単なんだが…クォータニオンで表現できるんかいな?
目が覚めたらまた考えよう…
□一部勉強の過程もあって文字の表示にSpriteとかも使ってるからあとで統一しなきゃなぁ。
描画のメソッドたくさんあるけど何が一番早いのでしょうな。
ここらのノウハウないから苦労するわ。
追記
□昼ごはん食べてる間コンパスの挙動を考えていたがどうもコンパスには二つの力が働いているらしい。(“物”があればすぐにわかるんだろうが…)
Y軸の回転は磁力のみ、X・Zの回転は重力のみの影響を受けるわけだが。うーん…どうすりゃいいのやら……
それぞれの軸に分けて、カメラのUPベクトルとコンパスUPベクトルの外積からそれぞれの軸の角加速度を適当に出して、そっから作ったクォータニオンかけてやりゃいいのかしらん??
なんだか冗長だのう……。
2010.01.11 - ゲージつけた

□体力ゲージとかのインターフェースつけた。
HP設定作るの忘れてたので一緒に作っておいた。スペランカー並みの落下耐久を誇ります。
Douglas氏はなにやら奇抜な方法で実装していたのだが、普通のテクスチャとマスク用のテクスチャ2枚使ってシェーダでアルファを合成して表示。はじめたばっかりでようわからんのだけれど、こういうインターフェイス表示する場合にも.fxファイル作って表示させるのは普通のことなんかいな?
とりあえずC76のみたいにガタガタ言わないゲージが出来たのでOKかー。
□コンパス部分はさすがに時間足りなかった。
月曜中に終らせて本題の3Dサウンドに入るとしよう。
2010.01.10 - Maleficia@C#はじめました

□Maleficiaを自力で1から作り直す低次元の試みを実行に移した。
以後プログラム的な進捗報告はここで行われます。
□Douglas氏の作ったプログラムを受け継いでもよかったが正直なところC++をうまく扱えないのでだいぶ使い慣れたC#で作ることにしました。
Seleneが前から見ていて凄そうだったので使いたかったのですが上記理由と同じ理由で諦めて結局SlimDX使ってます。
くろろ氏がXNA使ってるの見てあっちにも行きたかったのですが今は思い出せない何かの理由で諦めました。
なんだったんだろう…?
□C76のものを進捗100とした場合、今のところ65といったところ。
もの自体の進捗は今のところマップを歩けるようになった程度。
ただ、コンフィグツールできてたり、キーコンフィグに対応してたり、壁抜けしなかったり、シェーダーに対応したり、キャラクターアニメーションの切り替え→会話とかは終っているのでC76版よりも進んでいるところもちらほら。
シェーダー対応といってもプレステ時代のグラフィックからそれほど離れたくないので、固定機能でのレンダリングに比べて特に利点があるわけではないです。
シェーダーは水面とかボスとかで気合いれて使うかも。
コンパス&ゲージの実装と3Dサウンドを優先して作業予定。これとNPCとの会話判定と落下ダメージ判定が入ればC76で入れた機能は全部入るのかな?