2004年12月の日記

<2005年01月 2004年11月>

忘れてた!今は冬なんだった!!

パネルγの色パレットの設定を作りました。
ウィンドウモードでパレットが指定できないのは多分サーフェスがパレットモードじゃないから。
となれば正式版ではフルスクリーンモードだけにするか…?
それともウィンドウモードではパレットアニメーションを使わないことにするか…?
いっそのこと3Dをもう一度やり直すか…?
実際に使ってみたら良い点悪い点がよくわかりますのー。

12月も終わりというこのころになってやっと「冬の寒さ」がやってきて、思い出したように雪が降り出しました。
昨日までの寒さは秋の肌寒さ。
雪は地面で速やかに融けてしまいましたが。

最近キリ番とかにあまりこだわらなくなってきたのでカウンターの文字の大きさを普通の大きさで統一するようにしました。
以前のように大きさが変わるバージョンがいいという人がいたら戻しますが。

完成予想図

まずはウェイト処理。
フレームスキップはせず、必ず1msは休むという動作にしたので遅れるときは普通に遅れます。
毎フレーム実行したフレーム数と最小待ち時間(1ms未満だと遅い)を記録しているのでそれが重さの指標になりそうです。
あと、スクリーンショットを更新しました。
本当のスクリーンショットではなくこういうふうにできればいいなという完成予想図なんですが。
あ、DrawBaseの派生クラスとしてGDIによる描画を作ってみてもいいかも。

パネルγの実行速度一定化について

さて、処理落ちが起こるとゲームのテンポが変わってしまい、ランキングを開催したいと思っていることもあって、公正さに欠けるのは致命的だと思うので、最も時間のかかると思われる描画処理について考えていました。

1.普通に描画する。
とにかく簡単。
でもマシンの性能によっては普通に処理落ちします。
2.遅れていたらフレームスキップする。
例えば2フレームの時間で描画していたら、ゲーム処理→描画→ゲーム処理→フレームスキップ→ゲーム処理、となって、2フレームの時間が経過した跡に瞬時に2フレーム分の処理が行われ、これはこれで公正さが失われます。
3.描画命令をキューに入れて後でまとめて実行する。
「後で実行」を別スレッドで管理すれば描画でもたついている間にも裏ではゲームが普通のスピードで進んでいるため実質的な公正さは保たれるはずです。
ただし、「キューに入れる」とという作業が余計に加わるので全体的な速度そのものはかえって遅くなりますし、メモリ使用量もキューの分だけ増えます。
とりあえず2は前に試してえらい目にあったので却下ということで、1か3になるのですが、とりあえず今のところは1の方式を実装して、様子を見てから3に切り替えるかどうかを判断しようと思っています。

バックバッファ

プライマリサーフェスを作ってました。
フルスクリーンとウィンドウモードで扱いが違うから少し厄介です。
もしかしたらパネルγ、かわいい女の子は別として、何か別のキャラクターが出てくるかもしれません。
今のところはまだ可能性の段階ですが。

さらにBGM

変更。
空のクラス→クラスそのものを作らない。
そうでもしないと純粋仮想クラスのメンバとやらがまずいんじゃないかなと思って。
で、例のDirectDraw、早速実装してみました。
さて、ウィンドウモードとフルスクリーンモードでは画面の反映の仕方が違うそうだけど、どうなるか。
なんとなくBGMのパターンを増やしてみたり。
神秘的かもしれないイメージで作ってみたけど、だけど神秘のカケラもないこのゲーム、どうなることやら。
低い点数のときは暗い曲調なのです。

しかもMazeCube

練習用としてはMazeCubeを作ることにしました。
MazeSquareの3D版っぽい位置付けだけどこっちは完成したら一般公開します。
とはいえルールすら決まってなくて、完成するかどうかすら怪しいものですが…
ギヤバネくんが歩き回るゲームになるような気がしないでもない。
DirectX AppWizard使用。

で、めでたく本番用になったパネルγ、DirectDrawを使えるようにするため、Direct3DとDirectDrawを切り替えやすいようにしていました。
Direct3D使用時はDirectDrawクラスが空のクラスになり、DirectDraw使用時にはDirect3Dが空のクラスになって使わないことになります。
どちらでも同じ感覚で使えるように基底クラスとしてCDrawBaseを作って、その派生クラスとしてCDirectDrawとCDirect3Dを作っています。

そしてDirectX7

「パネルγ」、DirectX8を使うということで何も考えずDirectXGraphicsを使っていたのですが、今更言うまでもなくこのゲームはバリバリの2Dゲーム。
Direct3Dが得意とする回転拡大縮小やらアルファブレンディングやら、ましてや頂点シェーダやらピクセルシェーダなんかとはまったく無縁のシロモノ。
アルファブレンディングだけはパネルが消えるエフェクトに使えそうですが、使うのはどちらかというとひたすら矩形転送というDirectDrawが大得意とする分野がメインなのでそっち使ったほうがよさそうな気がします。
ついでに言うと、効果音はMEを使う可能性があるので、DirectXAudioのDirectSoundとDirectMusicとの統合があんまり意味を成さず、DirextX6.1のDirectMusicで充分そうな気もして、そうなるとグラフィック7、サウンド6.1となり、DirectX8を使う意義がなくなったよう感じます。
さて、問題はコンパイルが通るかどうか…

質量

日記はブログじゃないのです。
ブログは有用な情報こそが命、つまらないことなら更新せずに記事ひとつあたりの内容の密度を高めることが重要でしょうよ。
でも日記は毎日つけることそれ自体が目的、内容云々より一日一回書く!
その上で不要と思われる情報はあとから消していけばよいのです。
「質と量」のブログに対して「質より量」のWeb日記なのです。
ということをHP作成論に書こうと思ったり思わなかったり。

天皇誕生日だったのね…

はてなやめました。

んでもって、今日はドラクエ7とスマブラをやってました。

ミラクル!

パネルγのページを更新しました。
一番基本的なルールが説明されています。
一応プロトタイプにスクリーンショット機能をつけて撮った写真を加工したものを使っています。
パネルの柄をもっとパネルっぽく平面らしく作ってみたのですがどうもしっくりこなかったので元の柄に戻しました。
一番最初はガラス玉みたいなので、プレスに押されるとひびが入るというのにしようかと思っていたのですが今の画力では描けそうになかったので諦めました。
今まで明かした要素の中で、連鎖・コンボ・同時消し・アクティブコンボ(連鎖)などがあったのですが、今回紹介しますのは、これぞミラクル!空中連鎖でございます。
必要最低条件として、先に22個以上の同時消しをしなければならない秘術で、得点は普通の連鎖となんら変わりません。
ただ単に連鎖のタイミングでパネルが落ちていたらそうなることがあるというだけで、狙ってやるほどの価値はありません。
さて、ウィンドウモードでのプレイではマウスの移動位置を制限する必要があるのですが、ウィンドウモードといえばタスクの切り替えができなければならないということで、そのときにはポーズをかけるのだけれども、どんなタイミングでもポーズをかけていいというわけではないので、その辺の兼ね合いをどうするかが問題となりそうです。

あ、トゥーンレンダリングも更新。

鉤爪ロープで気絶したり

というわけでトゥーンレンダリング第2ラウンドに取り掛かり始めました。
大まかな原理は過去の日記に書かれているのでそちら参照。

「ゼルダの伝説-風のタクト」をやってました。
ゴードンの音楽変化パターンを見極めたり(サントラでの01:02までが顔行動開始前、それ以後が顔行動開始後に対応している)、ファントムガノンに回転斬りジャンプ斬り空き瓶で対抗したり特殊攻撃を成功させたりし(剣攻撃のときにA!)、ジークロックにいろんなアイテムを試してみたりして(仮面破壊後は何でも効く)、最終的にジークロックは置いてある爆弾を突っついて自爆。
やっぱ大ボスは弱いよ。

壮絶な戦い(ゲームだけど)

「ゼルダの伝説-風のタクト」をやってみました。
ジャブーに会いに行くためプロロ島に潜入、じゃなくて帰郷。
ノハンセンが家族に会えとうるさく、会わない間は船に乗せないつもりだったらしいので、沖まで行って溺れるという強行手段に。
ノハンセン、これにまんまと引っかかって乗せてくれました。
こうして家族に会わずにジャブーのいる洞窟へ直行。
洞窟をふさぐ岩壁を壊すための爆弾が最初の無駄使いのせいで足りなくなりそうだったけど無くなる前に気付き正確に狙って、最後の一個でナントカ破壊。
で、島を離れて困ったことが発覚。
家族にまだ会っていないので島の外でもやっぱり乗せてくれない。
大海原で敵に叩き落されると溺れるのを待つしかない!
まあそんなこんなで神の塔の中盤まで攻略。
今更になってジャブーに会う前に家族に会わないかと提案する時代遅れのノハンセン。
何はともあれ今回の旅、フィギュアコンプとかっこいいプレイを目標にがんばっています。
先日やっていたガモース戦では、1.適当に攻撃、2.モースにまとわり付かれる、3.特殊攻撃でかっこよく決めようとするもモースの重みでうまくいかない!、4.大ピンチ!、5.回転アタックで振りほどいて反撃、6.またモースにくっつかれて大ピンチ!、7.追い詰められてもうだめかと思ったそのとき…、8.回転斬りでモースもろとも撃退!
で、今日のタートナックは…
1.何はともあれ記念撮影
2.硬い鎧は剣では斬れない!!
3.ブーメランも跳ね返された!!
4.デクの葉もどこ吹く風!!
5.鉤爪ロープも引っかからない!!
6.手に入れたばかりの爆弾にもビクともしない!!
7.アイアンナックのときの戦法、盾で防御しつつ攻撃をよけて隙を突きジャンプ斬り!
8.だからそれは効かないんだってば!!
9.必殺!回転斬り!!
10.タートナックに同じ回転斬りで反撃された!!
11.倒れる柱!立ち上がる爆煙!
12.タートナックが一瞬油断したその刹那、わずかな鎧の隙間に剣を突き立て攻撃がヒット!
13.タートナックの鎧が砕け散る…!
14.お待たせ!特殊攻撃お披露目です!(コイツは特殊攻撃で戦うのが普通なのであえて今回は違う路線でした)
15.兜が崩れ去る…!
16.ジャンプ斬り、今度こそ炸裂!
17.相手は剣を落としたがあえて拾わせる。素手の相手を斬るのは最高にカッコ悪いのだ…!
18.斬る、避ける、予断を許さない駆け引き、躍動感溢れる大攻防戦!
19.お互いの体力も限界に近づいて、リンクは再び回転斬りの姿勢に入る
20.タートナックも剣に力を溜める…
21.緊迫した空気が張り詰める…
22.その空気を打ち破る一回転!
23.タートナックは吹き飛んだ…!
うん、文章では表しきれない興奮と感動の超大作でした(大袈裟)。
それに対して大ボスは面白くありませんね。
中ボスほどきびきびと動いてはくれないしネタ重視だから特定の攻撃方法しかだめで、しかもそれを使うとあっけない。

トレンドマイクロ大丈夫か!?

駆除しても駆除してもウィルスがやってくる。
最終的な症状はHOSTSファイルの書き換えであり、それをやっているプログラムは削除した。
しかし、そのプログラムをインストールしている別のプログラムがあったのだ。
例によって確認場所は実行ファイルがないはずの場所。
ど~もこれらのウィルスたちを手引きしている何らかのプログラムがあるらしい。
と思って実行中のプロセスを片っ端から検索。
するとTrendMicroのソフトでは検出されなかったウィルスが入り込んでいた模様。

「ゼルダの伝説-風のタクト」の2周目をやりました。
カーレを倒したあと爆弾入手。

実質三行

トゥーンレンダリングの続きでもやろうかと思っています。
まずはトラのテクスチャを貼れるようにして、スペキュラを使えるようにして、シェーディング用のテクスチャに小細工を仕掛けて、でも輪郭抽出はやめておいて、どうせ輪郭つけるなら先進的でエレガントで、しかし不完全な方法よりも、原始的で力任せで、それでも確実な方法をとりたいと思っています。
できるんかいな…

二行

WindowsUpdateが使えませぬ。
まあいいけど、CGIとかもやってたり。

迷惑な話じゃ

えーかげんDirectX9SDKでコンパイルできないのに痺れを切らしたので、DX9SDKをアンインストールし、DX8.1SDKをマイクロソフト以外から探してきてインストール。
一発でコンパイルが通りました。
これでまたパネルγの開発が再開できます。

今日は飛び込みがあったらしく電車が30分遅れに。
1時間ほど余裕を見て家を出ていたからよかったものを…

.NET

学校のVC++.NETでDirectXが使えなかったからVB.NETのほうで挑戦。
VB8からアップグレードする機能かなんかを使ってコードを書くまではできたけれどもセキュリティエラーにより動かず。
うちの学校は開発環境用意しておくだけ用意しておいて使えないようにしておくのか!?

クロオくん

なんかブラックジャック全巻がセットで売ってあって、買おうかなと思っていたのですが、値段を見るとセット定価税込10170円、全17巻なので少し高いんじゃないかと思って一冊の値段を確かめてみたら、562円+税で、単純計算でいくと562円*17巻*1.05=10031円で、明らかにセットのほうが高い。
しかも、うちには確か2~3冊ほどブラックジャックの本はあったので、その分差し引いて8000代前半ぐらいでないと損なのです。

ゲームのページを消しました。
余計なコンテンツばかりに力を入れていては肝心のプログラミングやダウンロードの更新がおろそかになってしまいそうだったので。

重い思い

サーバーのOSはRedHatLinuxだ。
Linux系はマルチタスクOSであり、複数のユーザーが同時に利用する。
だから、あまり高負荷なCGIは設置できない。
私自身のためでも訪問者のためでもない、サーバーを共有するほかのユーザーのためだ。
しかし、時としてCGI上で重い処理を実行しなければならないときがある。
もちろん一番手っ取り早い解決方法は処理を軽くすることであるが、理論的にも現実的にも限界というものがある。
例えば、N個のデータに対して処理を行いたい場合は、どんな場合でも最低N回の処理が必要になる。
また、実行しないという方法もある。
つまり、データをローカル環境にダウンロードしてそこで処理をすればサーバーに負荷はかからないという計算だ。
しかしそれには時間も手間も余計にかかる。
そこで、原点に立ち返って考えてみる。
なぜ高負荷の処理をしてはいけないのか。
マルチタスクの動作原理からわかるとおり、実際の処理は1つのCPUがこなしており、単純計算すれば、2人が同時に処理を行えば処理速度はそれぞれ半分になるということだ。
低負荷の処理であれば処理は瞬時に終わるため、2人が同時に、ということは少なく、仮にあったとして処理速度が半分になる期間はごく短いということになる。
そしてもうひとつ考えてみる。
高負荷とは何なのか。
言うまでもなく負荷が高いことである。
負荷が高いとはどういうことを言うのか。
非常に多くの処理を行う場合であろう。
しかし、その非常に多くのそれぞれひとつは実は軽い処理なのである。
例えば、同じ処理でも、10倍の時間を掛けて処理すれば単位時間当たりの負荷は10分の1に減るだろう。
つまり、常にほんの少し重い状態をキープすれば一見重さを感じないのではないか。

ということで、日記の左側メニューを生成する処理を作りました。
ローカルテストではこの機能は一回約0.17秒かかるようで、実際に使うのは数日に一回程度だから多少重くても気にしない。
逆にチャットのようなものだと一回一回が軽くても呼び出し回数が馬鹿にならなかったりしますけどね。

コメントラック

ドラクエ7でサンダーラットとメタルスライムをいじめてました。
目的はサンダーラットの心。
今度はゴーレムーガをいぢめる旅に。

日記、結局コメントもトラックバック受信も対応させちゃいました。
どうもブログによってトラックバック送信の際の文字コードが違うようで、はてなからの場合はUnicodeでjcode.plが対応していなかったりして、もう開き直っちゃってどんな文字コードでもそのまんま入れちゃえばいいやということで、コメント&トラックバック専用のファイルを用意して受信内容をそのまま記録という方式に。
で、後日管理人が正しいエンコードで確認してShiftJISにして日記に反映させるという方式です。
実際のところ、この日記は積極的に人に見てもらいたいわけではなく、ひっそりとよく見えるように配置しておき、見たい人は見てもらいたいし興味があるのなら毎日でも見てほしいということなので、トラックバックもあまりしてほしくはないのだけれどもしてくれたらやっぱり嬉しいという相反する考えを持っている次第であります。
そうそう、こちからは他人のブログを話題にすることもありませんし、トラックバックも送りませんよ。

ピーッピーッピーッ、バックします

う~む、そもそもこの日記の書き込み部分は管理人一人が利用するということで、ロック処理というものをしていないのです。
だから、コメントやトラックバックを下手に実装すると、2人以上による書き込みで2年分以上の日記が吹っ飛ぶかもしれない…
起こる確率としては数千分の一くらいだけど、言い換えれば数千人に一人は明日ログが消えちゃう計算だし、やっぱり可能な限りの対策はしておいたほうが安心できるというものです。
一応、今の予定としては、どちらもいったん管理人が目を通してから日記に反映することにするので、ならばこれらのユーザーからのフィードバックは小さなファイルに書き込んでおいて、消えたら残念でした、消えなかったら確認の上掲載という形でどうだ!

「Bomber丸World」のBGM作ってました。
海洋研究所のボスの音楽はとにかく勢いばっかりの曲なので勢いだけでばーっと作っちゃえそうな気がしたのですが、思ったより難しくて失速気味。

プロトタイプ

「パネルγ」のプロトタイプを作ってみました。
操作はマウスでイロカエのみ、「消す」ボタンを押すまでは勝手に動き出さない、プレス機がない、音楽がない、ゲームオーバーもない、消えるのは最小単位の四角形のみ、コンボと連鎖の区別がない、といういろいろな制約がありますが、まあまあこんなものかといったところです。
普通に消すだけだったら5点、何連鎖かすると数百点、何十連鎖もすると万の単位に!
パネルの落下速度が少し問題か。
スクリーンショット公開しました。

困ったときのリビルド

DirectX9をインストールしたらDirectMusicで一部の曲の演奏が変になるようになりました。
よりにもよって自分の作ったMIDIが…
しかもDirectX9SDKだとVC++6でDirectSoundが使えないときた!
…と思ったらリビルドしたらあっさりコンパイルが通ったり。あほらし。
stdafx.hを変更したらリビルドするってことまだ覚えんのか自分は!
とりあえず理不尽なエラーが起こったらリビルドすればいいと覚えておこう。

「パネルγ」がルミネスに似ているというのは、問題なしということにしておきます。
四角形を作るというのは案外誰でも思いつきそうだし、落ち物と入れ替えではゲーム性も大きく違うし、音楽もコンセプトが全然違うみたいだし…

具体的な仕様についてですが、まず、FPSは、ゲームが4分の3秒単位で進行するため4の倍数、また、ミリ秒単位で性格にタイミングを合わせる必要があるため1000の約数、ついでに一般的な画面のリフレッシュレートは60FPSなのでそれ以下の数値、コマ数が少ないとパネルが落ちる表現やプレスから逃げる表現がしづらいので高いFPS、ということで、40FPSに仮決定。
コンボは一回につきコンボ継続数のみに比例した得点、連鎖は基本得点と連鎖継続回数に比例した得点、同時消しは単純にそれらの総和。
ただ、大きい正方形で消すと中に小さな正方形がたくさんできることになるので、同時消しも案外儲かると思います。
でも普通に消していくと多分数百点くらいがいいところだろうと予想しています。

ブログとただの日記帳の中間を目指しています

「ドラクエ5」やってました。
偽太后の正体を暴くためラーの鏡を取りにいく準備段階としてマリアを誘うため教会へ。
先頭は主人公ゼボット、最後尾はマリアちゃんといい仲のヘンリー。
そのままマリアに話しかける。何事もなく会話が終わる。
あ、ヘンリー先頭のほうが良かったかも。
と思い、パーティの並びを逆順にして、その辺にいる女と会話。
あれよあれよという間にマリアが仲間に。それも最後尾に。
ごめんよヘンリー…
そして冒険の書に記録して、カジノで摩って終了。

日記についてですが、掲示板にも書いたとおり、完全にブログらしいブログにするつもりはないのでトラックバック機能はつけない予定。
とはいっても試験的に受信するだけは受信する可能性も無きにしも非ずですが。
コメントについては、要するに別CGIで処理するようにすれば良いのですが、コメントの保存形式をどうするかが問題となってきます。
単純に<br>で区切るかな…
その前に日付の記録形式を早く正常に戻さないとなぁ…

一応はてなダイアリーも試してみました。
http://d.hatena.ne.jp/tokio6/
すぐやめるつもりですが。

アゴボットパイレーツ

どうやらウィルスに感染していた模様。
感染推定日は12月04日、再インストール直後に感染した可能性が高そうです。
ウィルス名は「PE_PARITE.A」、ワーム型で、実行形式のファイルに感染しますが、基本的にネットワーク経由での感染はありません。
症状はというと、実行すると別のウィルス「DOS_AGOBOT.GEN」をシステムファイルに感染させて、ウィルス対策サイトを見えなくしてしまうが、特に破壊活動はなし。
で、「PE_PARITE.A」に関して、ウィルスバスターが、「ウィルス駆除しました。ご安心ください。」と。
しかしその直後、「DOS_AGOBOT.GEN」を発見、と。
「隔離しました。ご安心ください。」って言われたって、たった今ウィルス駆除したばかりのそのファイルが今のウィルスを感染させたのであって、元凶が根本的になくならない限り何度でも感染する、と。
状況を整理しますと、

  • あるウィルス(DOS_AGOBOT.GEN)を感染させるプログラムがあり、そのプログラム自身も別のウィルス(PE_PARITE.A)に感染している。
  • 「PE_PARITE.A」と「DOS_AGOBOT.GEN」は駆除するが、「PE_PARITE.A」を感染させるプログラムは放置される。
  • 「DOS_AGOBOT.GEN」は必要なファイルなので隔離されると困る。
というわけで、ウィルスバスターが当てにならないので手動駆除。
まず、元凶となるプログラムを削除。
レジストリエディタで、そのプログラムのファイル名を含むキーを削除。
ウィルスバスターのリアルタイムは邪魔なので一時的に切る。
「DOS_AGOBOT.GEN」に感染したファイルを開き、ウィルス対策サイトのURLを含む行を全部消す。
今後変更する予定がないのなら上書き禁止にする。
ちなみに、「DOS_AGOBOT.GEN」の動作原理は、ウィルス対策サイトのURLにアクセスしようとすると自分のコンピュータにつながるように設定する、と。
くどいようですが、ネットワーク経由での感染はないのでご安心を。
どうしても気になるなら「C:\Documents and Settings\All Users\Documents\update32.exe」、「C:\Documents and Settings\All Users\Documents\setup32.exe」、「C:\WINDOWS\system32\drivers\etc\hosts」の3つを削除。

新しい日記で御座います

で・・・できたのだ。
これが新しい日記なのだ。
最も閲覧数の多い最新ログはHTMLで高速表示、過去ログやジャンル別の日記はPHPで効率よく管理、そして書き込みにはCGIを利用するというとても素晴らしい日記システムなのだ・・・。
それでは、また明日。

再インストール完了

ブラウザを入れなおすためLunascapeのサイトに行ったらバージョン2があったのですが、プレビューリリースということで、今は導入しないほうがよさそうだし、だからといって旧バージョンをインストールしてもすぐにいらなくなりそうだったので、とりあえずしばらくはIEで我慢ということになりました。

1日に更新していたのですが、トップページの更新を忘れていました。

DirectX8.1SDKがなかったので仕方なく9SDKをインストール。
サンプル見てみたけど数は少ないし大して見た目変わんないのにピクセルシェーダなんか使ってコンマ数FPSまで重くなるし、利用者を舐めてんのかと言いたくなる内容。
実際に製品として組み込むときにはピクセルシェーダを使わない設定とか付けたりするんでしょうかね。
とりあえずこれで「パネルγ」をリビルドしてみたけど必要環境がDirectX9になってしまっていないか不安です。

CGI&PHPの動作確認環境も何とか復帰。
ついでに新日記もちょいと更新。

再インストール中

まあこんなもんです。
更新できないと言ったら更新しちゃう、そういう人なんです、私は。
ウィンドウズを入れなおして、VBとVCを入れて、そんなもんです。

再インストール

昨日忘れたのはスペキュラ反射のこと。
亀仙人の頭が輝いている、アレです。
確かスペキュラ反射の強さを求める公式もあったはずだからもう一つテクスチャを用意して実現できそうです。

最近パソコンの調子が著しく悪いのでOSを再インストールすることにしました。
一週間ほどの間日記が書き込めないかもしれません。

トゥーンシェード再び!

アクセス解析のカテゴリに登録されてしまったからには仕方がないということで、アクセス解析にはありがちな統計機能をつけてアップしてみました。
えーっと、アップした、それだけ。

トゥーンレンダリング、前はトゥーンレンダリングをONにしたら虎のテクスチャがはがれていましたが、テクスチャを合成する方法でテクスチャを保持したままトゥーンシェードできるようになりました。
そうすると逆にトゥーンレンダリングをOFFにしたときにテクスチャが足りなくなって虎のテクスチャが無効になってしまうのですが、そのときは前の色をテクスチャにそのまま反映することで普通と変わらない状態にすることができました。
んでもって、シェーディング用のテクスチャにはちょっとした小細工を仕掛けておいて、トゥーンシェーディングの輪郭無しでもある程度境界がわかるようにしてみました。
えーっと、あとは・・・・忘れた!

<2005年01月 2004年11月>