2013/12/07(土) [n年前の日記]
#1 [anime] 「ログホライズン」、面白いな
NHK教育、というかETVで放映されてるアニメ、「ログホライズン」。今のところ一応どうにか毎週ぼんやり眺めてるのですが。結構面白いなと。
台詞の中に、 「適正価格」なんて単語が出てきて「おおぅ」と。見た目だけならフツーのファンタジーモノなのに、そんな単語がポーンと出てくるアニメなんて、これは珍しいなと。昔放送されてた「夢色パティシエール」の二期で、ちょっとソレに近いノリがあったな、ぐらいなもんで。
まあ、「夢色パティシエール」は途中で打ち切りっぽくなってしまいましたが…。あのノリを「もしドラ」にも期待してたんだけどな…。「もしドラ」は途中でケータイ小説みたいになっちゃって、個人的にはガックリでした…。最初のあたりで期待し過ぎちゃった…。 *1
さておき、ログホライズン。ラストのあたりで、主人公が、「ギルマス…ギルドマスター…ギルドのリーダー…」と口にするあたりに感心したり。主人公がギルマスという言葉の意味を噛みしめるシーンだと思うのですけど。おそらくは、NHK教育でアニメを見ているちびっ子達に、「ギルマスってのは、ギルドマスターの略なんだよ。ギルドマスターってのは、ギルドのリーダーという意味なんだ」と丁寧に説明している台詞でもあるのだろうと。さりげない気配りを忘れないアニメだなあ、と。
また、NPCについて語るシーンでは、上から見下ろした形のレイアウトで、八頭身の見た目はちゃんとしたキャラ達が、上下左右にのみ動くという画になっていて。これは昔のRPG画面を再現することで、そこに居るのがNPCであると示したカットなのだろうなと。お遊びで入れてるようでもありながら、映像による説明も込められてる気がして、面白い見せ方をするなあ、と。
けして派手ではなく、むしろ地味な作品だけど、あちこちで丁寧な作りをしてるよなあ、と感心する時があって。NHK教育で放送するに相応しい作品かもしれん、と、自分の中では好印象なのでした。
台詞の中に、 「適正価格」なんて単語が出てきて「おおぅ」と。見た目だけならフツーのファンタジーモノなのに、そんな単語がポーンと出てくるアニメなんて、これは珍しいなと。昔放送されてた「夢色パティシエール」の二期で、ちょっとソレに近いノリがあったな、ぐらいなもんで。
まあ、「夢色パティシエール」は途中で打ち切りっぽくなってしまいましたが…。あのノリを「もしドラ」にも期待してたんだけどな…。「もしドラ」は途中でケータイ小説みたいになっちゃって、個人的にはガックリでした…。最初のあたりで期待し過ぎちゃった…。 *1
さておき、ログホライズン。ラストのあたりで、主人公が、「ギルマス…ギルドマスター…ギルドのリーダー…」と口にするあたりに感心したり。主人公がギルマスという言葉の意味を噛みしめるシーンだと思うのですけど。おそらくは、NHK教育でアニメを見ているちびっ子達に、「ギルマスってのは、ギルドマスターの略なんだよ。ギルドマスターってのは、ギルドのリーダーという意味なんだ」と丁寧に説明している台詞でもあるのだろうと。さりげない気配りを忘れないアニメだなあ、と。
また、NPCについて語るシーンでは、上から見下ろした形のレイアウトで、八頭身の見た目はちゃんとしたキャラ達が、上下左右にのみ動くという画になっていて。これは昔のRPG画面を再現することで、そこに居るのがNPCであると示したカットなのだろうなと。お遊びで入れてるようでもありながら、映像による説明も込められてる気がして、面白い見せ方をするなあ、と。
けして派手ではなく、むしろ地味な作品だけど、あちこちで丁寧な作りをしてるよなあ、と感心する時があって。NHK教育で放送するに相応しい作品かもしれん、と、自分の中では好印象なのでした。
*1: まあ、よほど頭のいい作家さんじゃないと、ビジネス論(?)とドラマ性の融合なんてできないのでしょうし、仕方ないよなとも。あの組み合わせを思いついただけでも「一本!」なので、アレはアレで、とも思ってますが…。
[ ツッコむ ]
#2 [anime] ルパン三世VS名探偵コナンを視聴
映画版の公開に合わせて、昨日放送されたようで。途中で放送に気づき、中盤以降はリアルタイムで見てましたが、今日は、HDDレコーダに録画していたソレを、最初から視聴したのでした。
やっぱり、面白いなあ…。結構カットされてたという話も見かけたけれど、それでも面白い…。キャラが登場するだけで、「キター!」と思える作品って珍しいよなと。
脚本も、各キャラの見せどころで苦労しながらもちゃんと上手いことまとめてる印象で。「さすがだ…素晴らしい…」と唸ってしまったシーンが多々。ツッコミどころと、なるほどと思わせる箇所の、量のバランスも取れてるような気が。
監督さんが、コナン、ルパンTVSPの両方に関わったことがある方、というのも上手く働いたのかなと。この監督さん、基本的にファミリー向けの作風が強過ぎて、個人的にはピンとこない監督さんだったのだけど。この作品に限っては、その作風がドンピシャで一致して実力を存分に発揮できてるような気がして、かなり好印象だったり。
神谷明氏が演じてるのであろう、 ルパンが変装した小五郎の演技も絶妙で。前回見た際もスゴイなと思ったけど、やっぱり何度見てもスゴイ…。
こういう作品を見ると、他にもコラボできないかなと妄想してしまうのだけど。基本的に一話完結モノ、時間が進まないタイプの作品じゃないと、この手のコラボはしにくいだろうと思えて、候補がさっぱり思い浮かばなかったり。一般的なコンテンツは、大きな話の流れがあるタイプばかりだし…。
キャラデザ・絵柄に関しては、この作品を通じて、セル画風になってしまえば意外と気にならなくなる、ということは分かったけれど。さすがに、キン肉マンと北斗の拳をコラボする、みたいなのは無理だろうし。比較的ジャンルが近い作品じゃないと厳しいのだろうなと。また、両方の知名度が無いと、コラボの効果も弱いだろうし。例えば「ゲゲゲ物語」等では、片方の知名度が圧倒的に足りないわけで…。
てなことを考えると、ルパンVSコナンという企画が生み出せたのは、まるで奇跡のようだなと。コラボの条件がここまで一致する両作品って、他にはちょっと思いつかない…。
再放送とは言え、イイもの見せていただきました。ありがたや。いやー、面白かった。この作品は素晴らしい。
やっぱり、面白いなあ…。結構カットされてたという話も見かけたけれど、それでも面白い…。キャラが登場するだけで、「キター!」と思える作品って珍しいよなと。
脚本も、各キャラの見せどころで苦労しながらもちゃんと上手いことまとめてる印象で。「さすがだ…素晴らしい…」と唸ってしまったシーンが多々。ツッコミどころと、なるほどと思わせる箇所の、量のバランスも取れてるような気が。
監督さんが、コナン、ルパンTVSPの両方に関わったことがある方、というのも上手く働いたのかなと。この監督さん、基本的にファミリー向けの作風が強過ぎて、個人的にはピンとこない監督さんだったのだけど。この作品に限っては、その作風がドンピシャで一致して実力を存分に発揮できてるような気がして、かなり好印象だったり。
神谷明氏が演じてるのであろう、 ルパンが変装した小五郎の演技も絶妙で。前回見た際もスゴイなと思ったけど、やっぱり何度見てもスゴイ…。
こういう作品を見ると、他にもコラボできないかなと妄想してしまうのだけど。基本的に一話完結モノ、時間が進まないタイプの作品じゃないと、この手のコラボはしにくいだろうと思えて、候補がさっぱり思い浮かばなかったり。一般的なコンテンツは、大きな話の流れがあるタイプばかりだし…。
キャラデザ・絵柄に関しては、この作品を通じて、セル画風になってしまえば意外と気にならなくなる、ということは分かったけれど。さすがに、キン肉マンと北斗の拳をコラボする、みたいなのは無理だろうし。比較的ジャンルが近い作品じゃないと厳しいのだろうなと。また、両方の知名度が無いと、コラボの効果も弱いだろうし。例えば「ゲゲゲ物語」等では、片方の知名度が圧倒的に足りないわけで…。
てなことを考えると、ルパンVSコナンという企画が生み出せたのは、まるで奇跡のようだなと。コラボの条件がここまで一致する両作品って、他にはちょっと思いつかない…。
再放送とは言え、イイもの見せていただきました。ありがたや。いやー、面白かった。この作品は素晴らしい。
[ ツッコむ ]
#3 [zatta][pc][neta] モノを作る人はえてして人間としてどこかおかしいのが常、という話
昨日、「モノを作る人ってのは、えてして人間としてどこかおかしいのが常」という一文を書いちゃったのですけど。キーボードを叩きながら、「これは問題発言かもしれんなあ。怒る人が出てくるかもしれんよなあ。…でも、事実だし。書いちゃえ書いちゃえ」とやってしまいまして。
や、ホント、自分の中では、そういう印象なのです。モノを作る人ってのは、ちょっとおかしいです。人によって、どこがおかしいか、何がおかしいかは全然違ってくるので、分かりやすくおかしい人、分かりにくくおかしい人が居るとは思いますけど。
いくつか例を挙げれば分かるかなと…。
や、ホント、自分の中では、そういう印象なのです。モノを作る人ってのは、ちょっとおかしいです。人によって、どこがおかしいか、何がおかしいかは全然違ってくるので、分かりやすくおかしい人、分かりにくくおかしい人が居るとは思いますけど。
いくつか例を挙げれば分かるかなと…。
◎ 参考事例。 :
例えば、宮崎駿監督。世間一般では素晴らしい人物として認知されてる節もありますが、とんでもない誤解だよなと…。何せあの方、震災直後、まだ余震が続いてる状態でありながら、スタッフに対して「何が何でも会社に出てこい!」と怒鳴りつけた人ですから。あの緊急時にそういうことを言うのだから、まともじゃないです…。そりゃ奥さんが、息子のゴロー監督に、「アニメ業界には入らないで。私がどれだけお父さんに泣かされてきたことか」と涙ながらに訴えるわけですよ。…宮崎駿監督のそのあたりって、富野監督が言うところの、意識と身体が分離してしまった状態の一種、なのかなと思えてきたりもして。理念は分かるけど、こっちは身体とか命を持ってるんやで、みたいな。
その富野監督だって、ファミレスだか喫茶店だかで、キャラデザの方に対してオ○ンコ発言を叫んでしまったり。これもそこだけ見ると、おかしい人ですよ。もちろんそれだけ、自身の仕事に対して意識が集中してることの証明で、実に職人らしいエピソード、のような気もしますが。
故・手塚治虫先生だって、色んなエピソードがありますよね。〆切に追われて、トイレに行くと言ったまま逃亡したりとか。真夜中にチョコレート食べたいとごね始めて担当編集者が…、とか。それらエピソードだけで、漫画が描けちゃうぐらいに…。
また、コンピュータの世界では、 _リチャード・ストールマン という有名人がおりまして。GNUの提唱者、emacsを作った方、という認識でいいのでしょうかね…。この方も、何かあるたびに問題発言ばかり繰り返す方で。いや、ぶれてない故の発言なので、その内容は納得できるものばかりですけど。
発明王エジソンも、なんだか危ない。子供の頃、先生に「Why?」ばかり言い過ぎちゃって、学校に来るなと言われてしまって学校に通えなかった男、ですから…。いや、これは伝記で読んだソレなので、話を作ってんじゃないのと思わないでもないですが。まあ、エジソン関係のエピソードを探すとゴロゴロその手の話が出てくるので、やっぱりおかしい人だったのではないのかなと。
その富野監督だって、ファミレスだか喫茶店だかで、キャラデザの方に対してオ○ンコ発言を叫んでしまったり。これもそこだけ見ると、おかしい人ですよ。もちろんそれだけ、自身の仕事に対して意識が集中してることの証明で、実に職人らしいエピソード、のような気もしますが。
故・手塚治虫先生だって、色んなエピソードがありますよね。〆切に追われて、トイレに行くと言ったまま逃亡したりとか。真夜中にチョコレート食べたいとごね始めて担当編集者が…、とか。それらエピソードだけで、漫画が描けちゃうぐらいに…。
また、コンピュータの世界では、 _リチャード・ストールマン という有名人がおりまして。GNUの提唱者、emacsを作った方、という認識でいいのでしょうかね…。この方も、何かあるたびに問題発言ばかり繰り返す方で。いや、ぶれてない故の発言なので、その内容は納得できるものばかりですけど。
発明王エジソンも、なんだか危ない。子供の頃、先生に「Why?」ばかり言い過ぎちゃって、学校に来るなと言われてしまって学校に通えなかった男、ですから…。いや、これは伝記で読んだソレなので、話を作ってんじゃないのと思わないでもないですが。まあ、エジソン関係のエピソードを探すとゴロゴロその手の話が出てくるので、やっぱりおかしい人だったのではないのかなと。
◎ ということで。 :
他にも事例は多々あると思いますが。このように、モノづくりで何かに秀でた人というのは ―― いや、「表現者」という人種は、どこかしら、何かしら、おかしいのですよ。常識の枠を飛び越えた言動を時々見せてくれる傾向があるよなと。
*1
「モノづくり」「表現者」は、常識に囚われないからこそ、凡人では思いもつかないものを作り上げてみせる、てな面があるわけです。ある意味、「常識人」属性と「表現者」属性は、トレードオフではないのかなと。 *2
そんなわけで、何かを作ってみせた方は、基本的に、「どこかおかしい可能性が非常に高い人」として、最初から疑って見ておいたほうが無難だろうと。表現者の持つ常識と、こちら側の凡人が持つ常識は、結構大きくずれてる可能性がある。そのことで、後にトラブルが発生する可能性はある、と。
まあ、このあたり、漫画・アニメ・ゲーム・音楽・映画等々、娯楽コンテンツを楽しんでる方なら、「そういう面はあるよね」「天才って、別のところで、人として何かおかしいよね」と納得してくれそうな気もしているのですが。
人格者としても表現者としても優秀、なんて人はそうそう居ませんよね…。人間は神様じゃないんだから…。
「モノづくり」「表現者」は、常識に囚われないからこそ、凡人では思いもつかないものを作り上げてみせる、てな面があるわけです。ある意味、「常識人」属性と「表現者」属性は、トレードオフではないのかなと。 *2
そんなわけで、何かを作ってみせた方は、基本的に、「どこかおかしい可能性が非常に高い人」として、最初から疑って見ておいたほうが無難だろうと。表現者の持つ常識と、こちら側の凡人が持つ常識は、結構大きくずれてる可能性がある。そのことで、後にトラブルが発生する可能性はある、と。
まあ、このあたり、漫画・アニメ・ゲーム・音楽・映画等々、娯楽コンテンツを楽しんでる方なら、「そういう面はあるよね」「天才って、別のところで、人として何かおかしいよね」と納得してくれそうな気もしているのですが。
人格者としても表現者としても優秀、なんて人はそうそう居ませんよね…。人間は神様じゃないんだから…。
◎ 故に日本語フリーフォントは時々危険。 :
ということで、昨日の記事内容を繰り返しますが。フリーフォント制作者様が、「宗教、アダルトで使うのは禁止」と言ってるときは、こっちは身構えておくべき、という話になるのでした。
何せ、フォントを一セット作るって、とんでもなく大変な作業なわけで…。とても凡人が出来る作業じゃない。しかし、仕事でやってるわけでもないのに、その作業を見事にやり遂げてみせて、しかも無償で使っていいよと公開してるわけで。これは良い意味で、おかしい方ですよ。<褒めてます。
その、何かおかしい方 ―― 凡人側の常識が通じない方が、「宗教、アダルト」と言ってるわけですから…。この定義は得体がしれない、正体不明の定義だぞ、後からどんな難癖つけられるか分からん、予測不能だ、と。「どう考えてもコレは宗教・アダルトじゃないだろう」と、こっち側が常識レベルで思っていても、あちらにはライセンス違反に見えてるかもしれないぞ、と。こちらの常識は通用しない。通用しないからこそ、目の前で、完成フォントが公開されているのです。
大体にして、インターネット黎明期の昔ならともかく、メジャーなライセンスが多々存在してる現在において、あえて独自ライセンスを掲げ続けているなんて、もうソレだけでトラップ臭が…。まともな人なら、今の時流に合わせて、メジャーなライセンスにさっさと切り替えてるはずなのです。しかし、変更しないということは、その独自ライセンスに、こちらが気付いてない何かが潜んでるんですよ…。おそらく、作者様の妙なこだわりの念が…。そこにうっかり触れたら爆発するんです…。
なので、そういうフリーフォントは使うのを避けておいた方が無難、と自分は思っているのでした。まあ、フォントに限った話ではないのですけど。フリーソフト等も、時々そういうトラップ臭が…。
まあ、「作者様に見つからなければ、問題にはならないし」てなノリでガンガン使っちゃうのもアリかもですけど。怒られたら「ゴメンテヘペロ」で済むかもしれないし。いや、済まないかもしれないけど。
何せ、フォントを一セット作るって、とんでもなく大変な作業なわけで…。とても凡人が出来る作業じゃない。しかし、仕事でやってるわけでもないのに、その作業を見事にやり遂げてみせて、しかも無償で使っていいよと公開してるわけで。これは良い意味で、おかしい方ですよ。<褒めてます。
その、何かおかしい方 ―― 凡人側の常識が通じない方が、「宗教、アダルト」と言ってるわけですから…。この定義は得体がしれない、正体不明の定義だぞ、後からどんな難癖つけられるか分からん、予測不能だ、と。「どう考えてもコレは宗教・アダルトじゃないだろう」と、こっち側が常識レベルで思っていても、あちらにはライセンス違反に見えてるかもしれないぞ、と。こちらの常識は通用しない。通用しないからこそ、目の前で、完成フォントが公開されているのです。
大体にして、インターネット黎明期の昔ならともかく、メジャーなライセンスが多々存在してる現在において、あえて独自ライセンスを掲げ続けているなんて、もうソレだけでトラップ臭が…。まともな人なら、今の時流に合わせて、メジャーなライセンスにさっさと切り替えてるはずなのです。しかし、変更しないということは、その独自ライセンスに、こちらが気付いてない何かが潜んでるんですよ…。おそらく、作者様の妙なこだわりの念が…。そこにうっかり触れたら爆発するんです…。
なので、そういうフリーフォントは使うのを避けておいた方が無難、と自分は思っているのでした。まあ、フォントに限った話ではないのですけど。フリーソフト等も、時々そういうトラップ臭が…。
まあ、「作者様に見つからなければ、問題にはならないし」てなノリでガンガン使っちゃうのもアリかもですけど。怒られたら「ゴメンテヘペロ」で済むかもしれないし。いや、済まないかもしれないけど。
[ ツッコむ ]
#4 [dxruby][game] DXRubyで例の多関節を実験
今日もDXRubyを使って、動きを作ってみます。
今回のネタは、昔懐かしの、あの多関節を試してみようかなと。学生時代、ファミコン版でプレイしていて、必ずこの敵で何機か失ったことを思い出します。やられグセがつくと、なかなか抜け出せなくて…。
自分、この処理は、書いたことがないんですよね…。昔、隣で先輩が書いてるソレを見て、「スゴーイ。まさしくアレだー」と子供のように喜んでしまった記憶があります。さて、自分は上手く書けるだろうか…。少し不安。
とりあえず、できた…かな…と思います。こんな感じの動きで合ってますかね? 微妙に何か違う気もするけど…。
一応ざっくりと説明を。
今回は、DXRubyの Spriteクラスを使ってみました。Spriteクラスを継承して、ボディ部分を担当するクラスと、腕関節一つ分を担当するクラスを作ったわけです。自分は、Rubyについては初心者なので、こういう書き方でいいのかよく分かってませんが。
腕関節には、誰が親なのか、覚えさせておきます。@parent がソレです。また、親からの距離、親の角度+自分の角度を使って、自分の位置も求めます。
図で描いたほうが分かりやすいですかね…。一応描いてみましたが…。
この、親、子、孫…という状態が、10個前後ほど、ずっと続いているわけです。
子は、親からの距離、親の角度+自分の持ってる角度で、自分の位置を決めます。図で言えば、小さい四角い点がソレですね。また、スプライト描画の回転中心位置を、この小さい四角の位置にしておけば、各関節が滑らかに繋がっているように見えるはずです。
ひょっとして、位置の求め方が分からない方が居たりするのかもしれないか…。距離と角度があれば、sin関数、cos関数を使って、位置を求めることができますよ。
それにしても、Ruby って、度とラジアンの変換関数は無いのでしょうかね…? ググってみても、見つかりませんが。
さておき。
もしも、子供達全員が持っている角度が、0度だったら。この仕組みだと、どんな見た目になるでしょうか。…皆でピーンと、一直線になりますね。
子供達が持っている角度が、例えば10度だったら…。下の方に曲がっていく線になるはずです。逆に、全員が、-10度を持ってたら、上の方に曲がっていく線になるでしょう。
そして、子供達全員が持っている角度が、毎フレーム、少しずつ増えていったら…。線の曲がり具合が、時間と共に、グングン変わっていくはずです。
とまあ、こんな仕組みで、あのグルグルはできていたのではないかなあ、と思いますが、本当にコレで正解なのかどうか…。まあ、それらしく動いてるから、コレはコレでOKかなと。
長年、例のアレって、どうやって動いてたのかビミョーに気になっていたのですが。今回もどうにか実証(?)できたので、ちょっぴり嬉しいです。こんなにもお手軽に、実験を可能にしてくれる、DXRubyよ、ありがとう…。
とりあえず、画像とソースも置いときますね。Public Domain ってことで一つ。
_rolltaka.zip
おっと。書き忘れてた。一昨日の記事で、二足歩行の動きを試した際に、IKがどうとか書きましたが。今回のソレは、各関節が角度を持っていて、根元からの角度で位置決めをしていくわけですから…。概念としてはFKに近いのではないかと思います。もちろん、3Dでグリグリ動いちゃう今時のアレコレと比べると、原始的なものですが…。
今回のネタは、昔懐かしの、あの多関節を試してみようかなと。学生時代、ファミコン版でプレイしていて、必ずこの敵で何機か失ったことを思い出します。やられグセがつくと、なかなか抜け出せなくて…。
自分、この処理は、書いたことがないんですよね…。昔、隣で先輩が書いてるソレを見て、「スゴーイ。まさしくアレだー」と子供のように喜んでしまった記憶があります。さて、自分は上手く書けるだろうか…。少し不安。
とりあえず、できた…かな…と思います。こんな感じの動きで合ってますかね? 微妙に何か違う気もするけど…。
# ぐるぐる回る、あの多関節のテスト require 'dxruby' # ボディ部分のスプライト class BodySpr < Sprite # 初期化処理 def initialize(sx, sy, dist, ang, img) super @px, @py = sx, sy # 自身の座標格納用 @cx, @cy = sx, sy # 円運動の中心座標 @dist = dist # 円運動の半径 @ang = ang # 円運動の角度 self.image = img # 画像 self.scale_x = 1.6 # 拡大縮小率 self.scale_y = 1.6 end attr_accessor :px, :py # 毎フレーム呼ばれる処理 def update # 円運動をさせる rad = @ang * Math::PI / 180.0 @px = @cx + @dist * Math.cos(rad) @py = @cy + @dist * Math.sin(rad) # 描画位置を設定 self.x = @px - self.image.width / 2 self.y = @py - self.image.height / 2 @ang += 0.7 end end # 腕関節一つ分のスプライト class Arm < Sprite # 初期化処理 def initialize(sx, sy, dist, ang, img, parent) super @px, @py = sx, sy @cx, @cy = sx, sy @parent = parent # 親を記録 @dist = dist # 親からの距離 @ang = ang # 自分の角度 @angt = ang # 親と自分の角度を加算した角度 self.image = img self.center_x = img.width # 回転描画の中心位置をずらす end attr_accessor :angt, :px, :py # 毎フレーム呼ばれる処理 def update if @parent.instance_of?(BodySpr) # 親がボディ部分だった場合 @ang += 1 @angt = @ang self.angle = @angt bx = @parent.px by = @parent.py else # 親が腕部分だった場合 @angt = @parent.angt + @ang # 親の角度+自分の角度を得る self.angle = @angt bx = @parent.px by = @parent.py @ang += 0.3 # 自分の角度を少しずつ増やしてく @ang = -60 if @ang > 60 end # 自身の座標を算出 rad = @angt * Math::PI / 180.0 @px = bx + @dist * Math.cos(rad) @py = by + @dist * Math.sin(rad) # 描画位置を算出 self.x = @px - self.image.width self.y = @py - self.image.height / 2 end end # 画像読み込み img = Image.load("arm.png") imgbody = Image.load("ufo.png") # ボディ部分の発生 cx = Window.width / 2 cy = Window.height / 2 body = BodySpr.new(cx, cy, 80, 0, imgbody) # 腕の初期化処理 sprs = [] armmax = 4 # 腕の本数 jointmax = 12 # 関節数 dist = 22 # 関節の長さ # 何本か腕を延ばす armmax.times do |i| parent = nil # 腕一つにつき、n個スプライトを使う jointmax.times do |j| if j == 0 # 腕の根元 s = Arm.new(cx, cy, 32, i * (360 / armmax), img, body) else # 腕 s = Arm.new(cx, cy, dist, 0, img, parent) end sprs.push(s) # リストに登録 parent = s # 次の親として扱う end end # メインループ Window.loop do break if Input.keyPush?(K_ESCAPE) body.update # ボディを移動 Sprite.update(sprs) # 腕を移動 Sprite.draw(sprs) # 腕を描画 body.draw # ボディを描画 endこれまた長くなってしまいました。もっと短く、スッキリ書けないものか…。
一応ざっくりと説明を。
今回は、DXRubyの Spriteクラスを使ってみました。Spriteクラスを継承して、ボディ部分を担当するクラスと、腕関節一つ分を担当するクラスを作ったわけです。自分は、Rubyについては初心者なので、こういう書き方でいいのかよく分かってませんが。
腕関節には、誰が親なのか、覚えさせておきます。@parent がソレです。また、親からの距離、親の角度+自分の角度を使って、自分の位置も求めます。
図で描いたほうが分かりやすいですかね…。一応描いてみましたが…。
子は、親からの距離、親の角度+自分の持ってる角度で、自分の位置を決めます。図で言えば、小さい四角い点がソレですね。また、スプライト描画の回転中心位置を、この小さい四角の位置にしておけば、各関節が滑らかに繋がっているように見えるはずです。
ひょっとして、位置の求め方が分からない方が居たりするのかもしれないか…。距離と角度があれば、sin関数、cos関数を使って、位置を求めることができますよ。
x座標 = 距離 * cos(角度) + 親の位置 x y座標 = 距離 * sin(角度) + 親の位置 yソース中では、 rad = @angt * Math::PI / 180.0 なんて行もありますけど。これは、度からラジアンへの変換をしています。というのも、プログラムを書く際の sin関数、cos関数は、えてして、度ではなくてラジアンを与えないといけないので…。
それにしても、Ruby って、度とラジアンの変換関数は無いのでしょうかね…? ググってみても、見つかりませんが。
さておき。
もしも、子供達全員が持っている角度が、0度だったら。この仕組みだと、どんな見た目になるでしょうか。…皆でピーンと、一直線になりますね。
子供達が持っている角度が、例えば10度だったら…。下の方に曲がっていく線になるはずです。逆に、全員が、-10度を持ってたら、上の方に曲がっていく線になるでしょう。
そして、子供達全員が持っている角度が、毎フレーム、少しずつ増えていったら…。線の曲がり具合が、時間と共に、グングン変わっていくはずです。
とまあ、こんな仕組みで、あのグルグルはできていたのではないかなあ、と思いますが、本当にコレで正解なのかどうか…。まあ、それらしく動いてるから、コレはコレでOKかなと。
長年、例のアレって、どうやって動いてたのかビミョーに気になっていたのですが。今回もどうにか実証(?)できたので、ちょっぴり嬉しいです。こんなにもお手軽に、実験を可能にしてくれる、DXRubyよ、ありがとう…。
とりあえず、画像とソースも置いときますね。Public Domain ってことで一つ。
_rolltaka.zip
おっと。書き忘れてた。一昨日の記事で、二足歩行の動きを試した際に、IKがどうとか書きましたが。今回のソレは、各関節が角度を持っていて、根元からの角度で位置決めをしていくわけですから…。概念としてはFKに近いのではないかと思います。もちろん、3Dでグリグリ動いちゃう今時のアレコレと比べると、原始的なものですが…。
[ ツッコむ ]
#5 [pc][neta] Z80のXOR A
ここ数日、DXRubyを使って多関節がどうこうとか書いてますけど。
巷のゲームの画面の中では、3Dでグリグリとモデルが動くのが当たり前の、こんなゴイスな時代に…。こんなの書いてみて何の意味があるんだろうと不安になっていたりもするのです。けして、ドヤ顔で書いてたりはしないです…。
こういうのって、「Z80のXOR A」に近いかもと、チラッと思ってしまったりもするのです。
「Z80のXOR A」ってのは…。昔々、Z80という8bit CPU上で、アセンブラを使ってプログラムを書く際に、「AレジスタをクリアするならXOR Aがベスト」というノウハウがあったのですよ。Aレジスタをクリアする命令は色々あるけど、XOR Aは、命令実行クロック数が一番少ないので一番早く処理が終わる上に、1バイトで済む命令だから容量も食わないのです。以下のページが参考に…なりそうかな…。
_Ticalc Japan :: Z80アセンブラの小技
当時は役に立つノウハウだったけど、今ではさっぱり役に立たないノウハウですよね。コンピュータの世界って、そういう話がゴロゴロしてるわけですけど。
なので、ファミコンその他で動いてたプログラムの仕組みを解説するのって、実は「Z80のXOR A」を説明してるようなものではないか、と不安になるという。いや、たぶん、その不安は、かなり当たってる気がしますけど。
ただ、それでも、多関節のソレなどは、まだ応用が効くほうなのかなとも思えていて。
2Dで動かしてるモノを眺めてる分には、「こんな古いものを…父さん…酸素欠乏症にかかって…」てな感想にしかならないでしょうけど。
とまあ、そんな感じで、不安になりながらも、そういう理論武装(?)を頭に浮かべながら、その手の話を書いてたりするのでした。
同じモノを眺めていても、スルーしちゃう人と、何かを学び取ってしまう人って居るわけですし。もっとも、自分は前者なので、どんな情報に価値があるのか判断がつかないのですけど…。だったら、とにかくアウトプットしてみたほうがいいのかなと。
巷のゲームの画面の中では、3Dでグリグリとモデルが動くのが当たり前の、こんなゴイスな時代に…。こんなの書いてみて何の意味があるんだろうと不安になっていたりもするのです。けして、ドヤ顔で書いてたりはしないです…。
こういうのって、「Z80のXOR A」に近いかもと、チラッと思ってしまったりもするのです。
「Z80のXOR A」ってのは…。昔々、Z80という8bit CPU上で、アセンブラを使ってプログラムを書く際に、「AレジスタをクリアするならXOR Aがベスト」というノウハウがあったのですよ。Aレジスタをクリアする命令は色々あるけど、XOR Aは、命令実行クロック数が一番少ないので一番早く処理が終わる上に、1バイトで済む命令だから容量も食わないのです。以下のページが参考に…なりそうかな…。
_Ticalc Japan :: Z80アセンブラの小技
当時は役に立つノウハウだったけど、今ではさっぱり役に立たないノウハウですよね。コンピュータの世界って、そういう話がゴロゴロしてるわけですけど。
なので、ファミコンその他で動いてたプログラムの仕組みを解説するのって、実は「Z80のXOR A」を説明してるようなものではないか、と不安になるという。いや、たぶん、その不安は、かなり当たってる気がしますけど。
ただ、それでも、多関節のソレなどは、まだ応用が効くほうなのかなとも思えていて。
2Dで動かしてるモノを眺めてる分には、「こんな古いものを…父さん…酸素欠乏症にかかって…」てな感想にしかならないでしょうけど。
- コレを、3Dモデルと3D空間使って試してみたら、今でも「おっ?」と思ってもらえそう。
- 仕組みの基礎を学ぶなら、2Dに制限してるほうが、理解も早い、かもしれない。
- 誰かが作ったゲームをプレイして遊ぶだけの人ではなくて、自分でプログラムを書いて「動いた動いた、面白ーい」と遊べてしまう人なら、こういうアレコレも参考にして、もっと楽しく遊べるんじゃないのかなと。
- 頭のイイ人は「温故知新」ができるはず。誰もが無視する昔のアレコレの中から、「コレは今でもアレンジすれば使えるな」と閃くことができる人だって、世の中にはもしかすると居るのかもしれない。
とまあ、そんな感じで、不安になりながらも、そういう理論武装(?)を頭に浮かべながら、その手の話を書いてたりするのでした。
同じモノを眺めていても、スルーしちゃう人と、何かを学び取ってしまう人って居るわけですし。もっとも、自分は前者なので、どんな情報に価値があるのか判断がつかないのですけど…。だったら、とにかくアウトプットしてみたほうがいいのかなと。
[ ツッコむ ]
以上、1 日分です。