SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

2022-06-27(Mon) テトラン完了

  と、いうわけで、回転機能を使ってテトランの腕をレンダリングし、実装してみた。

  画像の説明

  腕の動きは360/64度キザみで再現した結果、だいぶガタついているのだが、回転パターンは360/16度キザみで十分だろう、との判断で実装してみた。そう。回転パターンはリアルタイムレンダではなく、プリレンダである。しかし、想定のとおり360/16度キザみで十分であった。

  人間の目は、明るさには敏感だが、色調には鈍感である。YUV記録方式ではこの特性を利用し、情報量を低減している。これと同じく、人間の目は、動きには敏感だが、絵柄には鈍感なのではないか。動体視力、とかいう概念もあるしな。結局、人間は動いているものは、それほどよくは見えていないのだ。発見だなぁ。

  画像の説明

  そして、さらに発見。原作のグラディウスIIIのテトランをしげしげと見ていたら、腕の光のハイライトが逆になっている状況が散見される(わかる?)。これは、グラディウスIIのテトランも同じであった。最初はパターンをケチっているせいかと思ったが、逆のパターンも表示されているので、そういう理由ではなさそう。

  自分が再現したものは、光のハイライトの方向は合わせてある。まぁ、光源を想定するならば、それもホントはおかしいのだが、それをおかしいというのなら原作もおかしいことになる。結局、理由はよくわからない。しかし、ゲームの場合、絵はだいぶいい加減でも気づかないものなのだ、ということはわかった。

  ちなみに、内部的な実装の話だが、new Tetranしてから、new TetranArm、newTetranBoneの順でobjs配列にインスタンスをツッコんでいくと、描画順もそのようになって、腕が本体の上に描画されるばかりか、関節の重なりの上下も逆になってしまう。そのため、Tetranインスタンスのdrawメソッドで、然るべき順序で一気に描画してしまうことにした。腕の先から順に描画し、最後に本体を描画する。そして、下位のインスタンスではdrawメソッドを実装しない。

  というところで、テトランの動きには、まだ不満はあるのだが、テトランの実装は試行であって目的ではないので、この辺で終わり。

 

  ここから、この勢いのままガチでオリジナルのシューティングの製作に入るか、シューティングのシステムは完成したのでそれで満足して他のことをやりだすか、どうすっかなぁ。