目次
02日 中二病
10日 オーラ写真倶楽部
11日 オーラ占いの企画
12日 オーラのプログラム分担
16日 オーラ撮影の仕組み
19日 オーラ占い・よもやま話
23日 P10 に乗り換え
24日 さん付け運動実施中
27日 Android Chromeでスクロールがおかしくなるバグの原因と修正
30日 コンビニ強盗
9月後半は仕事がやたら忙しく、全然日記など書いてない。
土日もなく仕事で徹夜の連続、暇ができたら寝ていたので、ゲームすらあまり遊んでいない。
忙しくて書けないというより、書くことが何もなかったのだ。
9月30日は小学校の運動会。
10月1日は中学校の文化祭。
仕事があってもこの2日は休ませてもらおう、と思っていたら、区切りがついて普通に休めた。
ありがたい。
運動会は、長女が勝って次女が負けた。
二人ともなかなか頑張った、というだけで、特筆すべきこともない。
長男の中学はじめての文化祭。
僕が中学のころは、クラス参加と部活参加の両方があったのだけど、長男の学校は部活での参加のみ。
もっとも、部活は必修なので全員参加となる。
僕が中学の時は帰宅部が多かった。
長男の所属する自然科学部を中心に見たのだけど、他の部活にもお邪魔した。
というのも、プラ板とかミサンガとか缶バッジとか、小学生女子が喜びそうな遊びをするところが多かったので、娘が見て回りたがったのだ。
ちなみに、自然科学部でもスライムづくりをやっていたので、これもきっちり頂いてきた。
久しぶりに中二病に触れて、非常に楽しかった。
僕が中学の時には「中二病」って言い回しはなかったけど、言葉が無かっただけでやっていることは変わらないね。
文芸雑誌部、昔なら文芸部と漫画研究部に分かれていたのだろうけど、一緒になっていた。
だから、部誌にはイラストと小説が混在している。
絵は下手でも、「俺の考えるカッコよさ」をこれでもかと盛り込んだイラスト。
無用に設定が複雑で、設定の説明だけで紙幅が尽きてしまう小説。
もちろんイラストの上手な、将来プロの漫画家なり、絵師なりになれそうな人もいる。
そういう人はもちろん努力して技術を身に着けたのだろう。
でも、技術がない、先に書いたような作品に僕は愛着を感じる。
長男の自然科学部でも、各自が研究した(調べてきた)レポートをまとめた部誌を発行していた。
この中にも、トポロジカル相転移とか、この世界が仮想現実であることの証明とか、中学生が好きそうな言葉が並ぶ。
長男は比較的まともにキノコの研究をまとめていた。
レポートとしての出来は良いが、多少背伸びした、本人理解しているのかわからないようなレポートは、中学生らしくて良い。
中二病って、言葉としては揶揄含みの侮蔑なのだけど、そうした時期を経験しておくことは非常に大切だと思う。
小学校までの「大人に従う子供の期間」を終え、自分で歩き始めたものの、まだ右も左もわからない状態。
だから、俺の考える格好良さに惹かれるし、背伸びして難しい言葉を使いたがるし、悪いものに憧れたりもする。
大人から見れば、なにもわかっちゃいない、無駄なことばかりやる、青二才。
だから中二病と呼ばれるのだろう。
だけど、この言葉で恥ずかしがって、避けて通ってはならない。
大人が「何もわかっちゃいない」と感じるのは、自分が過去に同じことをやって、失敗した経験があるからだ。
その大人も中二病を経験したんだ。その経験があるからこそ、ついアドバイスして成功に導いてやりたくなる。
でも、それで失敗を避けてしまったら、何も学べない。手痛い失敗をするからこそ、二度とそうならないように注意するようになるんだ。
だから、下手な絵でもどんどん描けばいいし、小説が複雑な設定ばかりで前に進まなくてもいい。
それを繰り返すことで、「このやり方じゃダメなんだ」と自分で気づくことが大切。
ちなみに、僕が中学の時は、面白くもなんともないゲームを大量生産していた。
「面白くない」というのは後知恵で、作っている時は、このアイディアは面白くなるはずだ、と信じているのね。
失敗して、このやり方はダメだったと学ぶ。
この失敗を繰り返したから「面白いゲームを作る方法論」が自分の中に出来上がった。
この経験はプロのゲームプログラマーになってからも、大いに役立った。
中学生は、どんどん中二病をやるといいと思う。
この時期にしか経験できない特権なのだから。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
1997年の秋のゲームショーに、オーラ写真倶楽部が出展されました。
…たしか出展されたと思うのだけど、あまり覚えてません。
リリースがこの頃なのは確かなのだけど。
#右上にある「オーラ写真倶楽部」のロゴ画像、クリックしてもらえるとチラシ全体を見ることができます。
オーラ写真倶楽部は、「手相占いちょっとみせて」の続編(?)にあたります。
以前に、オムロンから「手相を取るユニットが作れるので、一緒にゲームを作りましょう」というお誘いがあり、手相占いを作りました。
これが大好評。占いゲームとしては異例の出荷台数になりました。
その後「顔の特徴も抽出できるから、人相作りましょう」と言われたものの、こちらはオムロン側の技術不足で中断。
で、今度は「オーラとれるからオーラ占い作りましょう」ということなのですが、オーラって…怪しすぎますね。
その前に、この頃の占いブームの話を書きましょう。
1991年から始まる不景気を、バブル崩壊と呼びます。
この時期、急に先行きが不安になり、誰もが今後に不安を持っていました。
その社会的な心理状態を背景に、ちょっとした「占いブーム」が起こります。
テレビでは、「それいけ!!ココロジー」という心理学番組が大人気となりました。
心理学、といってもかなり怪しいもので、ほぼ占いの一種。
ココロジーは後にセガの別部署から占いゲームとして発売されました。
これはヒットしましたし、僕が以前作った手相占いもほぼ同時期。
占いゲームに人気がある時期でした。
街にも占い館がたくさんありました。
そして、そうした占い館で1995年頃から人気が出始めた占いに「オーラ占い」がありました。
「オーラ」という概念自体は、18世紀ごろからあるそうです。
ただ、その頃は生命感あふれる、不思議と心が落ち着くような場所に「オーラがある」とされた程度。
19世紀に急激に科学が発達し、生物の体の仕組みなどが次々と解明されていきます。
すると誰もが疑問に思うのは、「生命と非生命の違いはどこにあるのか」ということ。
生命の仕組みがわかって、模倣できるようになってきたのに、それは生命にならないのです。
物質は器にすぎず、生命とは何か別のエネルギーのようなものではないのか?
20世紀の前半には、科学的に「生命エネルギー」の研究が行われました。
ここで、仮想的な生命エネルギーが「オーラ」と名付けられます。
これが生命のエネルギーであれば、病気の人はオーラが変調したりするでしょう。
何とかしてオーラを捉えることができれば、病気の診断に役立つかもしれません。
科学的な研究には、それなりの理由がありました。
やがて、オーラが見える、と自称する人が現れます。
…本人が見えるというのだから、僕としては何も言いません。
否定も肯定もできない。
霊が見えるという霊能力者や、異星人と交信できるというコンタクティと同じです。
そういう人々によれば、オーラは病気の診断どころか、感情によっても変化し、本人が気づいていない願望なども反映するのです。
これを使い、将来の状況を改善するためのカウンセリング…いわゆる「占い」が可能となります。
さらには、オーラを撮影することができるカメラ、というのが現れます。
これにより、誰もがオーラを目にすることになりました。やはりオーラは実在したのです。科学の勝利。
…えぇっと、詳しい説明はしないことにします。
オーラ写真の占いゲーム機の話ですから、あえてこれ以上は踏み込まない。
ここでは、オーラは撮影できるんだ、ということで話を止めておきます。
気になる人は「キルリアン写真」をキーワードに調べてみてね。
ともかく、「オーラは常人には見えないが、写真には写せる」とされるようになりました。
話を少し戻して、1995年頃に街の占い館で流行し始めた、オーラ写真は「キルリアン写真」とは違う仕組みで撮影されていました。
しかしまぁ、オーラが写るのです。かがくのちからってすげー!
金を払うとまずオーラ写真の撮影があります。
この写真を見ながら、オーラの色や意味などを説明し、占いが行われます。
これが街で流行っていたオーラ占い。
じゃぁ、これをゲーム機でもやってみよう、というのがオムロンの持ち込んだ企画でした。
街のオーラ占いの写真機と同じような仕組みで…いや、医療器具のオムロンですから、もっと詳細な形でオーラを捉えることができます。
手相占いでも協力をいただいた占い師、ステラ薫子さんに連絡をしたところ、オーラ占いならできます、とのことでした。
そこで、オムロンが読み取ったオーラデータを元に、どのように占いを行うか、アルゴリズムと結果文章をセットでお願いすることになりました。
「オーラ占いゲームを作る」と、チームが編成されて僕のところまで話が届いたのは、以上のお膳立てが全部整った後になります。
オーラを撮影する、と言っても仕組みが気になる人が多そうだけど、種明かしは後日。
先に書いてしまったら面白くないもの (^^;
2021.9.19 追記
当時の占いブームを示す資料があったので、別記事に書き起こしました。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
オーラ写真倶楽部の話の続きです。
手相の人気で作られた「続編」なので、同じチーム編成が求められたようなのですが…
手相の時のメインプログラマも、企画者もすでに退社していました。
メインプログラムは、手相の時のメインプログラマと仲の良かった先輩がやることになりました。
仲が良かった、というだけで「なんかわかるだろ」という関係者扱い。
ゲームについて確固とした考え方を持っている人で、コラムス97を作っている時に「処理落ちは許さん」と言ったのはこの人。
その先輩と僕の二人がプログラマ。後の話ですが、僕の同期が追加されて3人になります。
手相のグラフィックをやった人は、メインもサブも、まだいました。
でも、こちらはオーラ写真には関与せず。なぜかは知りませんが、単に別のプロジェクトにかかわっていて忙しかったんじゃないかな。
結局、女性の先輩一人でほぼ絵を描いていたはずです。
この人、仕事が大好きで…というか、会社の近くに一人暮らしだったので、家に帰るのが「寂しかった」ようで、夜遅くまで働いていました。
女性は深夜残業が認められなかったので、夜11時には帰るのですが、よく「男の人は残業できてずるい」と言っていました。
デザインは、ほかにもデザイン課長が手伝っていたり、スポットでいろいろな人が入った気もするけど、よく覚えていません。
そして、企画は2年目の新入社員。
普通、2年目ならまだ他の人のサポートをしながら仕事を覚える時期ですが、彼はいきなり実践投入されたわけです。
しかも、人気があって続編を望まれたゲーム。かなりのプレッシャーだったようです。
オーラの制作過程を語る上では、企画者の彼のことをもう少し書いたほうがよさそうです。
彼はセガに入社はしましたが、それほどゲーム好きだったわけではありません。
まぁ、遊んだりはしたようですが、「おもちゃ会社」としてのセガに入社を希望していたのです。
後にセガのおもちゃ部署は「セガ・トイズ」として独立会社になるのですが、当時はまだおもちゃ部署。
アンパンマンとミッフィーちゃん、そして幼児向けコンピューター「ピコ」が主力商品でした。
彼の席は、面白そうな新発売おもちゃだらけでした。
当時入手困難だった「白いたまごっち」を自慢されたこともありますし、おもちゃの範疇には「ネオジウム磁石」なども含まれます。
ネオジウム磁石って、小さくてもすごく強力なやつね。
今時100円ショップでも売っていますが、当時は発売されたばかりで、小さなものが数千円しました。
これを「すごく強力ですよ」ってゲーム筐体に貼りつけたら、あまりに強力で取れなくなったことなど思い出します。
小さいから引っ張ろうにも持つ場所が無くてね。最後にはちゃんと取れましたけど。
とにかく、彼の興味はおもちゃに向いていました。
それは、ゲームにはあまり興味が無いということでもあります。
彼自身、ゲーム部署を希望していたわけではないのです。
ただ、おもちゃ部署が非常に小さく、希望していても配属されなかっただけで。
企画者を任されたからには、ゲーム全体の作成指示を出さなくてはなりません。
でも、彼はゲームを作った経験はなかったし、世の中のゲームもそれほど深く見てはいない。
もちろん、ゲームで遊んだことくらいはありますけど、作るつもりでは見ていないのです。
だから、指示が常にチグハグ。
占いゲームですが、ST-V で作ることになったので「3Dの演出を前面に押し出す」と彼は決めました。
占いのジャンルを決めるだけでも、ジャンルを描いたパネルを輪に並べて、斜め上から見下ろす雰囲気で…
と、3Dでやろうとする。
でも、「3Dで」と指示を出しておきながら、彼の頭の中のイメージは2Dなのです。
輪っかがあれば、そこに均等にジャンルのパネルが並び、今選択していない項目でもそれなりに読めるつもりでいる。
実際には、パースが効いているために後ろの方に小さくなったパネルがごちゃっと集まり、視認性が悪いです。
実際にできてから、想像とのギャップに苦しみ、「やっぱり2Dで動かして、後ろに下がった時だけ少し表示を小さくすることで、3Dっぽくごまかせませんかね?」とか言い出します。
大体指示通りに作ってみても、今度はあたりまえだけど3D感が足りないと言い出す。
彼自身の中で「3D」が何かはっきりしていないのです。
なんとなくのイメージしかないから、出来上がったものも、なんとなくピンボケにしか思えない。
新人の遠慮もあったのだと思いますが、押しが弱いのも問題でした。
どうもこれは良くない、という状況になっても、はっきりとダメ出しをできないのです。
グラフィックも同じでした。
先に全体に3Dで、とは言いましたが、ST-Vの性能ではそれほど綺麗な3D画像は出せません。
そこで、キャラクターは3Dで作ったものをプリレンダリングしてスプライト表示、となるのですが、ここでも指示が安定しません。
#3Dをプリレンダリングしてスプライト表示…
簡単に言えば、モデルは3Dで作るけど、最終的には2Dの画像にして表示、ということです。
カメラアングルもアニメ内容も決まっているのであれば、リアルタイム演算よりむしろ綺麗に表示できます。
彼は最初に、キャラクターとして「猫のダヤン」を使おうと考えました。
オーラという怪しげな世界の雰囲気と合いそうだと思ったから。
一応版権使えないか打診したようですが、無理でした。
でも、「じゃぁ、それっぽい雰囲気の別の絵で」となります。
これが…ダヤンってあまりにも独特の絵柄過ぎて、それらしい雰囲気を出せばダヤンそのものになってしまうし、離れようとすれば全然違うものになってしまうのです。
じゃぁ、いっそ諦めて別の方向を模索すればいいのだけど、彼はそうしません。
こちらでも、彼が新人であること、ゲーム作成慣れしていないので明確なイメージを出せないこと、などがマイナス要因として働いています。
なんか彼の仕事にダメだしばかりしているようですが、作るからには良いゲームにしたいのはみんな一緒です。
彼が不慣れであれば、チーム一丸となって彼をサポートしよう、という話は出ていました。
先輩だからと遠慮することはない。自分が一度出した指示でも、出来上がったものを見て想像と違ったら、思い切ってやり直して構わない。
彼に対してみんながそう言っていました。
でも、多分そういうことではなかったのね。
今考えると、ゲーム作成慣れしていない、「引き出しの少なさ」が一番の問題だったのでしょう。
アイディアを没にするとしたら、別のアイディアを出さないといけません。
でも、彼にはこの「アイディアの引き出し」が少なかった。一つのアイディアに固執し、途中で変えようとはしませんでした。
最終的には、それなりにまとまりました。
決して悪い出来ではないし、及第点行っていると思います。
でも、及第点ということは、ヒットを狙える出来でもありませんでした。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
オーラ写真倶楽部の話の続きです。
オーラ占いのプログラマは、先輩社員と、僕で始まりました。
後で説明しますが、途中から僕の同期が追加で入ります。
メインは当然、年長者である先輩でした。
たしか、先輩は占いの中心部分を作ったはずです。
詳細は後日改めて書きますが、オーラ写真倶楽部で「撮影」するオーラは、実はカメラで撮っているのではありません。
オーラを測定するセンサーとカメラは別にあり、ゲーム上で重ねて表示しています。
この部分は先輩の担当。
オーラの表示には、ST-V の自由変形BG面を使っていました。うねうねと揺らめきます。
占いの結果を決め、画面表示するまでが占いの中心になります。
#オーラ画像は、オーラ測定パターンによって形も色も変わります。
また、1人用・2人用の占いによっても変わります。
基本的には「それ以外」が僕の担当。
ユーザー入力のUI、プリンタへの出力、その他細々としたこと。
後で追加で入った同期は、途中からUIの担当をしてもらいました。
その後の仕様変更もあったので、僕が作ったのはUIの枠組みだけではないかな。
ST-V のカメラは、プリント倶楽部などの関係もあって日本語の資料があったのですが、オーラ測定センサーはオムロン製で、通信用 LSI の仕様書がそのまま渡されていました。
この仕様書が英語で、先輩が「俺英語苦手だから、作って」と僕に丸投げしました。
僕だって英語苦手ですが、タイミングチャートとか見ればだいたいやることわかります。作りました。
4bit 通信で、nibble という単位を始めて知ったのはこのときだったと思います。
#bite(byte) 「噛む」が 8bit に対し、nibble 「齧る」は 4bit。
#「英語苦手だから」と言っていたのですが、多分先輩はタイミングチャート通りにキッチリ動作するプログラムとかを作るのが面倒くさかったのだと思っています。
ゲーム作っている人で、きっちりした仕様通りに作るのが苦手な人って、結構多いです。
プリンタに関しては、ずっと以前のバイトの経験が役立ちました。
画面上に表示されている、カメラからの画像データと、オーラの画像データがあります。
これを重ねて、RGB CMYK 変換して、減色して印刷するだけ。
減色は、Oh! X でよく使われていたアルゴリズムを使っていたはずです。
桑野式誤差拡散、だったかな。整数演算とビットシフトのみで高速処理できる誤差拡散法。
プリンタ自体は、エプソンの安いインクジェットを使っていたはずです。
この頃、急にカラープリンタが普及し始め、安くなっていました。
オーラという特性上、背景は黒で、その前に薄い色が出ていました。
実は、インクジェットで印刷するときに一番悩ましいのが、この「黒の上に薄い色」で、インク濃度などを試行錯誤した覚えがあります。
さて、途中から追加で入った、もう一人の同期ですが、実は女性でした。
当時、セガに女性プログラマは3人しかいなかったと聞いています。
そして、途中から入った理由は、実は「働く期間の調整のため」でした。
みんなには内緒にしていたのですが、結婚退職することが決まっていたのです。
前のプロジェクトが終わったあと、新プロジェクトに入れると途中で退社することになってしまう。
そこで、ある程度作業が進んでいて、ちょうどよい時期に終了しそうな、オーラ占いに途中配属となったのでした。
プロジェクトの末期になり、もう少し調整が必要だということになって、締め切りが伸びました。
その時に彼女から相談されます。
実は結婚退職が決まっていること。
退職自体は伸ばすことも可能だが、結婚式の日取りと新婚旅行日程が決まっているので、その期間は仕事に来れないこと。
なので、締め切りが伸びたのであれば、いない間の引継ぎをお願いできないだろうか、というのが相談内容でした。
これは、何も問題ないので了承します。
元々UIは僕が作っていた部分をベースとしていますし、何かあった時にちょっと変更するくらい簡単でしょう。
…が、後で悩むことになります。
引き継いだ後、どこかのアニメが動きが悪くて修正することになったのです。
プログラムを覗いてみると、こんな感じでした。
if(anime == 0){pattern = PN_MAIN_CHAR_LEFT_RIGHT_1; }
else if(anime == 1){pattern = PN_MAIN_CHAR_LEFT_RIGHT_2; }
else if(anime == 2){pattern = PN_MAIN_CHAR_LEFT_RIGHT_3; }
else if(anime == 3){pattern = PN_MAIN_CHAR_LEFT_RIGHT_4; }
else if(anime == 4){pattern = PN_MAIN_CHAR_LEFT_RIGHT_5; }
else if(anime == 5){pattern = PN_MAIN_CHAR_LEFT_RIGHT_6; }
else if(anime == 6){pattern = PN_MAIN_CHAR_LEFT_RIGHT_7; }
else if(anime == 7){pattern = PN_MAIN_CHAR_LEFT_RIGHT_8; }
else if(anime == 8){pattern = PN_MAIN_CHAR_LEFT_RIGHT_9; }
else if(anime == 9){pattern = PN_MAIN_CHAR_LEFT_RIGHT_10; }
else if(anime == 10){pattern = PN_MAIN_CHAR_LEFT_RIGHT_11; }
else if(anime == 11){pattern = PN_MAIN_CHAR_LEFT_RIGHT_11; }
else if(anime == 12){pattern = PN_MAIN_CHAR_LEFT_RIGHT_13; }
else if(anime == 13){pattern = PN_MAIN_CHAR_LEFT_RIGHT_14; }
else if(anime == 14){pattern = PN_MAIN_CHAR_LEFT_RIGHT_15; }
else if(anime == 15){pattern = PN_MAIN_CHAR_LEFT_RIGHT_16; endflg=true;}
anime ++;
えーと、PN_MAIN_CHAR_LEFT_RIGHT_1 …とかっていうのは、スプライトに表示されるパターンで、enum されたシンボルです。
左から右に振り返る、という 16 パターンのアニメを、1/60 秒ごとに表示するプログラム。
これ、
pattern = PN_MAIN_CHAR_LEFT_RIGHT_1 + anime;
if(anime==15){endflg=true;}
anime++;
で十分です。パターン名は enum なので、1づつ増加しているのですから。
もし単純増加ではなかったとしても、配列にしてしまえば if の羅列は不要になります。
さて、最初に書いたほうのプログラムにはバグがあります。それが「動きが悪い」原因。
PN_MAIN~ で示されるパターン番号、11 が2つあって、12 がありません。
指定を間違えて、アニメ表示が崩れてしまっているのです。
いちいち if で書いているから起きたバグで、計算で出せばバグなんて起きるわけがない。
気になって調べると、アニメーションするような個所は全部こんな感じ。
…どうしよう。直すべきか。しかし、締め切り間近なのに大きく手を加えると、全部チェックし直すことになる。
何よりも、彼女はまだ「退職」しておらず、新婚旅行に行っているだけでした。
プロジェクトの終了直前には戻ってくるはずなのに、僕が彼女の領分のプログラムに大きく手を入れるのは望ましくないでしょう。
…動いているプログラムは、美しいプログラム。たしか祝一平さんの言葉です。
この言葉を胸の中で唱えながら、結局必要な変更だけを行い、後は一切手をつけませんでした。
彼女はその後退職したとはいえ、主婦になったわけではなく「残業の少ない会社」に転職しただけです。
職種はそのままプログラマー。転職先でちゃんとやって行けたのか心配…
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
オーラ写真倶楽部の話の続きです。
オーラ撮影の仕組みを説明しましょう。
なんかこう…自分の作ったものを否定するみたいで嫌なんですけど、オーラなんてオカルトです。
科学現象として存在しませんし、撮影なんてできるわけありません。
オーラ占いやって信じてくれていた人たち、ホントごめんなさい。
でも、丸っきりの嘘ではなくて、それなりの根拠はあるので、この後の説明(いいわけ?)を読んでください。
まず、この頃街の占い館で流行していたオーラ写真から。
ただ、こちらに関しては僕は「推測」することしかできません。
カメラを入手して分解したわけではないので…
#オムロンの人達は「同じことをもっと上手にできる」と言っていたので、分解したのかもしれません。
推測の前提となる「事実」だけ書きましょう。
一般に、オーラは人の周囲に漂うような、薄く輝く光のベールで、感情などを反映してあらゆる色彩になると言われます。
しかし、占い館のオーラ写真は、薄く輝くというよりは、いくつかの点光源です。
その点光源の周囲に、すりガラスでも通したように光が広がっている感じ。
そして、色は赤・緑・橙の3色に限定されます。
…これ以上の説明は避けます。
だって、まだこれの改良版で商売しているお店あるのだもの。変な推測でご迷惑を掛けてはいけない。
ところで唐突ですが、この頃は青色 LED はまだ新開発の高価な品で、一般に使用されていませんでした。
LED は赤と緑しかなくて、光を混ぜても橙色にしかなりません。
さて、「オーラ倶楽部」で使った方法。
簡単にいえば、ポリグラフです。
左右の手を電極に乗せ、体に微弱電流を流して抵抗値を測ります。
このとき、左右それぞれで3カ所の電極があり、いろいろと複雑に抵抗を測っているのだそうです。
(ここら辺はオムロンが作ってブラックボックス化されているので、よく知りません)
嘘発見器とかラブテスターとか呼ばれるものがあるように、この抵抗値によって感情などを読み取れます。
…という、似非科学があります。相関が全くないわけではないのですが、「読み取れる」と言い切れるほどのものでもない。
しかしまぁ、ここでは読み取れることにしといてください。
オムロンの営業さんは「読み取れる」と言ってきたし、セガ側も読み取れる前提で作っているので。
オーラは、その人の感情によって輝きが変化するとされます。
また、上に書いたように、体の抵抗値を測ることで感情を読み取れます。
じゃぁ、体の抵抗値から読み取った感情を「オーラ」という形で表現すれば同じことなのでは?
これがオーラ倶楽部で行っている「オーラの撮影」です。
一応、業者さん向けのチラシには、次のように説明があります。
「※本機におけるオーラ写真とは、センサーより取得した生体データをもとにコンピューター処理し、作成したオーライメージのことです。」
オーラ占いでは、オーラから「本人も自覚していない願望などの感情」を読み取り、カウンセリングを行います。
占いと言っても、未来予知ではなく、よりよい未来に向けて何ができるか、というアドバイスです。
ただ、願望を実現するためのアドバイスと言っても、本人が信じて頑張ってくれないと効果が出ません。
そのため、多少「未来予知」めいた言い回しを行うことも多く、ここら辺が「占い」らしいところになります。
#未来を予知するのではなく、よりよい未来に導くためのカウンセリング。
多かれ少なかれ、占いというのはみな、そういうものです。
感情の読み取りはオムロンに任せ、占い文章はステラ薫子さんが担当しました。
セガとしては、この間を埋める「ゲーム」部分を作った形。
ここらへん、手相の時と役割分担が同じです。
ステラ薫子さんの会社、手相からオーラの間に社名変更しました。
なので、結果用紙に書かれている名前は変わっているのですが、同じ人です。
まぁ、オーラ撮影の「しくみ」としては以上で終わりですね。
体の抵抗変化から感情を読み取り、感情と密接な関係があるとされる、オーラの形や色を表現する。
しかし、この「オーラの色や形」がまた問題で、非常にあいまいなのです。
誰もオーラを見たことないですし、それを画面上で表現しろと言われても、どうしてよいのかわからない。
占い師さんが、オーラの形状について、柔らかいオーラ、とげとげとしたオーラ、勢いのあるオーラ、包み込むようなオーラ…って、大まかな分類を作ります。何種類かわすれたけど、5種類くらいあったのではないかな。
それをもとに、グラフィックの人が、「それらしい」画像を作ります。
このオーラ画像を自由変形 BG 面に描いて、色を「それらしく」変化させながら、全体に「それらしく」うねらせます。
…それらしい、ってなんだよ。
誰も見たことがないものを形にするので、メインプログラマーが試行錯誤していました。
描画の際には、オーラは大まかに「外側」「内側」「喉のあたり」の3層に分かれていて、この3つを別々のパーツとして描いています。
絵としてはグレースケールで描かれていて、表示の際に10種類の色に変化させています。
(色と感情の関係は、結果用紙の裏に解説されていました。この記事の冒頭に添付した画像をご覧ください。)
自由変形 BG 面、1枚しかないからね。単に絵を「表示」ではなくて、ソフト的に3枚の絵を半透明に重ね合わせて表示しないといけない。
でも、単に色演算するのではなく、アニメーションで色が変えられるように、パレットのままにしておかないといけない。
先輩が作った個所なので正確なことを理解していないのですが、外側と内側を8段階、喉を4段階のグレースケールにした、とかではないかな。
3bit 3bit 2bit になるので、合計 8bit 。256色のパレットとして描画できます。
あとは、上手にパレットを操作すれば、半透明で重ね合わさった感じのまま、パレットアニメーションできます。
最初に書いた通り、オーラなんてオカルトで、撮影できませんよ。
でも、エンターテインメントの「占いゲーム」としては、多くの人が考える「オーラ」を具現化しようとして、いろいろと考えて表現したのです。
オーラ占いがリリースされたのは、インターネットが普及し始めたころ。
当時は「日記サイト」が多数あったのですが、オーラ占いを見て、「どうやってオーラを撮影しているのだろう」と不思議に感じてくれている人は結構いました。
不思議に思ってくれるということは、ある程度信じてくれたということです。
苦労して「それらしさ」を表現したのは成功だった、と思います。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
オーラ写真倶楽部の話、これで最後の予定です。
オーラ測定センサー…手を置いて微弱電流を流し、体の抵抗値を計測するセンサーは、2つありました。
一人用では、片方しか使わなかったはず。
これが二人用の異性間の相性占いになると、それぞれが手を置いたうえで「手をつなぐ」ように指示されます。
センサーには、片方に3カ所の電極があり、手のひらに電流を流して抵抗値を測っています。
「両手」の間に電流を流しているわけではありません。
だから、二人用でも、それぞれが測ればいいだけ。手をつなぐ必要はありません。
実際、同性同士の相性も占えるのですが、その時は手をつなぐ指示は出ないのではないかな。
「異性と手をつなぐ」というのは、企画者の絶対に譲れなかった線。
企画者がおもちゃが好きで「白いたまごっち」を持っていた、と先に書きました。
当時非常に入手困難で自慢されたのですが、そもそも「合コンで目立とうと思って」プレミア価格付きの転売品を入手したものです。
ゲーム業界の人、オクテばかりで、こういうことに長けている人は少ない。
その彼が、ゲーム機からの指示で手を繋がせれば、絶対にスケベ心のある野郎が活用する、と主張したのです。
占い好きの女の子は結構多いので、男の方から「お金出すから二人用で占おうよ」と持ち掛ければ、乗ってくるだろう。
でも、占いを始めると「手をつないでください」と指示される。
この指示の前に性別や年齢のデータも入力しているので、今更別の人に変わったりはしにくい。
気になっている女の子と手を繋げられるなら、絶対に活用する男はいて、お金が入るというのです。
…いや、何よりも彼自身が「合コン帰りに絶対活用したい」と主張したのです。
この思惑がうまくいったかどうかは知りません。
ただ、筐体を作ってくれる4研の担当者が「最後の最後で手をつなぐ指示出すの、良いね」って感心していました。
少なくとも共感者はいたようです。
その4研の担当者、筐体に「豪華な部品を奢った」と自慢していました。
手を置くセンサーの部分、当時まだ高かった高輝度 LED を使用しているのです。
「1個5円もする」と言っていました。たしか、片側に4つ。(手を置く部分の左右と奥、それに親指と人差し指の間が光ったはず)
これを両側につけているので、40円もします。
通常の LED なら、1個 1円くらいと言っていたと思います。とても高価なのがお判りでしょうか?
ちなみに、筐体小売り価格は1台100万円以上ね。
カメラでの撮影表示は先輩プログラマが作っていたのですが、デモ画面も先輩が作っています。
「デモ画面でも、前で見ている人を写そう」ということになったため。
で、デモのループの中に、占い方の説明があります。
通常は「カメラで撮影するとオーラが写る」ということを説明しているのですが、非常に稀な確率で違うことを言うようになっています。
稀な確率って、8192分の1とか、そういうレベル。見ようと思って見られるものではないです。
いくつかあったはずなのですが、2つしか覚えていません。
1つは、サングラスと帽子だけが空中に浮いているような状態が表示されて「透明人間のかたはカメラに映りませんのでご了承ください」というもの。
もう一つは、当時作成中だった The House of The Dead 2 のゾンビの画像を表示して「ゾンビのかたはオーラが出ていませんのでご了承ください」というもの。
2つとも、仕様には書いてません。グラフィックの人と相談して画像をもらい、先輩が勝手に作ったもの。
企画者も知らなかったのではないかな。
だから、最終チェックで見つかったら大変。社内の公式文書で説明を求められてしまいますから。
出現確率が非常に低いのは、そのためです。
ゲームのタイトル、完成間近まで「占い オーラ写真館」でした。
でも、ほぼ完成してから役員の方が見て、「カメラもついていてプリクラっぽいから、倶楽部って入れろ」と言われました。
当時プリクラは大人気。
別にカメラが付いていなくても、スタンプ倶楽部とかアロマ倶楽部、とにかく「お土産が出てくる自動販売機カテゴリ」であれば、倶楽部とつけてシリーズ化しておけ、という感じでした。
#アロマ倶楽部は、確か同じショーでお披露目したもの。
いくつかの質問から現在のプレイヤーの気分を推し量り、ピッタリのアロマオイルを出してくれます。
そんなわけで、「メイキング倶楽部シリーズ オーラ写真倶楽部」に。
占いなのに、タイトル見ても一切占いってわからない。
「メイキング倶楽部」って言われても、なにかオリジナルグッズが作れるわけでもない。
すごく中途半端な印象になってしまいました。
この名前を強要されたのは、チーム全員が憤っていたと思います。
企画のおもちゃ好きの後輩、このプロジェクトが終わった後しばらくたって、転属願いを出しました。
元々おもちゃが好きで入社したのだし、配属されたのだからゲーム作成で頑張ろうと思っていたけど、実際1本作ってみて「やっぱりおもちゃをやりたい」と思ったみたい。
転属願いは無事受理され、おもちゃ部署に異動しました。
同じ社内なので時々会うこともありましたが、後におもちゃ部署がセガ・トイズとして独立したため、その後の消息は知りません。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
P10ってわかりにくい商品名だな。Huawei P10。いわゆるスマートホンだ。
今まで使っていた Honor6 Plus と同じ会社の、比較的最新の上位機種に当たる。
買い替えになるのだけど、Honor6 Plus に不満があったわけではない。
Honor6 Plus を購入したのは2年近く前。妻も一緒にスマホを購入した。
妻のスマホは Zenfon2 Laser 。
購入時点でのネットでの評価は悪くなかったし、値段の割に性能が良くて当時のベストセラー機種の一つなのだけど、その後評価が落ちた機種でもある。
Pokemon Go がブームになった時に、この機種ではうまく遊べなかったから。
Zenfon2 Laser は GPS のアンテナが弱く、位置データ取得が怪しい。
どうも「GPS を ON にしてから最初の位置測定」までが時間がかかるようで、バックグラウンドで常に GPS 測定をしているとそれなりに正しい位置を測定してくれる。
でも、それだと無茶苦茶電池を食う。
Pokemon Go を快適に遊ぶための電子ガジェット「Pokemon Go Plus」も公式に対応しておらず、実際うまく接続できない。
もう1年以上前、発売したばかりで入手困難な時期に購入したにもかかわらず、1度も使えていないまま。
さらに加えて、Zenfon2 Laser はカメラ性能が低い。
「レーザー測位するから暗がりでもピント合わせが速く、良い写真が撮れる」というのが名前の由来の機種だけど、肝心のカメラが暗がりに弱く、明るくても写真写りが悪い。
そんなわけで、我慢して使っていたのだけど、半年くらい前から買い替えを検討していた。
上のような理由なので、できることなら Go Plus が動く機種がいい。
でも、これが非常に難しい。
Go Plus は、Android での動作が壊滅的だ。
動く機種もあるのだけど、動かない機種が多い。動作報告されている機種でも、動かないという報告もある。
これに対し、iPhone は安定して動く…とされていた。iOS 11 が出るまでは。
先日 iOS 11 が出てからは、動かなくなったという報告が相次いでいるのだ。
…えーとつまり、iPhone を買っても Android を買っても、Go Plus を使うのはギャンブルだということになる。
ずっと妻は悩んでいたが、本格的に「思い切って買い換えようと思う」と相談を受けたのが1か月ほど前。
調べてみると、Android なら「最近の」Huawei 系の端末は動作しやすい、とわかる。
僕が使っている Honor 6 Plus は最近の機種ではないのでダメだ。
Go Plus の動作がギャンブルなら、それ以外の観点で選ぼう。
カメラ性能にも不満があるのだから、せめてカメラが満足いきそうな機種を選んだらどうだろう。
こうやって調べていた中で、Honor 9 の発売のニュースを知った。
Honor 9 の性能を調べるうち、これが P10 の廉価版に当たる。ということも分かった。
P10 を調べると、カメラ性能が少し上で、値段も少し高い。
カメラ性能が満足できるものを買おう、と考えていたので、少し高くても P10 にすると決定。
…で、購入決定の翌日には届いたのだけど、結論から言えば Go Plus は使えなかった。
多くの動作報告があるのになぜ? と思ったが、調べると動かないという報告もあった。
さらに調べると、他の機種での報告なのだけど、「発売してすぐに買った Go Plus はつながらなかったけど、最近買ったのはつながった」という報告を発見。
つまり、Go Plus にはバージョン違いがあり、初期バージョンはとにかく接続性が悪いらしい。
じゃぁ、Go Plus 買い直せばよかったんや!
と調べてみるが、どうも生産を停止しているようだ。売っているのは転売屋ばかり。
…これはあれだな。あまりにも「不良品」というクレームが多いので、設計直すことにしたかなにかで生産停止しているんだな。
ちなみに、Go Plus は「たとえ初期不良でも修理・交換に応じない」と最初から明言して販売している、という不思議な販売方法を取っている。
多分、発売前から何らかの不良品であることを、発売側が認識していたのではないかと思う。
#解析したわけではないので正確なことは言えないが、おそらく Bluetooth の標準的な規格に沿っていない。
iPhone しか繋がらなかったのは、iPhone のバグか何かに由来した接続方法をしていて、iOS 11 になって繋がらなくなった、というのはそのバグが修正されたためではないかと思う。
Android で接続できる機種・できない機種があったのは、同じようなバグを抱えていたかどうかによるのだろう。
(Huawei は、あるころのアップデートで Go Plus が動作するようになったので、わざわざバグを再現したのかもしれない。
また、同じバグを持った機種が偶然でそれほど多いとも思わないので、どこかのチップメーカーが提供した標準デバイスドライバがバグ含みで、そのチップを使った機種を中心にバグがあった…と想像)
とりあえず仕方がないから P10 を使おう、それでも、Zenfone2 Laser よりは GPS 感度良いのだし…と決めた翌日、妻の方から提案があった。
僕が P10 を使うことにして、中古の honor 6 plus を譲ってくれないか。
僕としては最新機種を使わせてもらうのはありがたい。
特にガジェット好きではないし、honor 6 plus に不満はなかったのだけど。
妻が Go Plus を使いたい一番の理由は、手の小さな妻では、スマホを持ちながら走り回っていると、良く落としてしまうからだった。
Go Plus があれば、スマホはカバンなどの中に入れたままでゲームの操作ができる。
ここで、Go Plus が使えないまま P10 を使うと、折角の新しい端末を落としまくってしまい、もったいないことになりそうだ、という懸念。
それなら、中古機種を最初から使っていたほうが、落としたとしても気が楽だそうだ。
と、説明が長かったが、そんな経緯で急に P10 を使うことになった。
Honor 6 Plus は micro SIM だったが、P10 は nano SIM 。なので、SIM 交換が必要だった。
ちなみに、Zenfone2 Laser は micro SIM なので、妻はそのまま乗り換えられる。
新しい SIM を待ちながら、P10 に乗り換えの準備。
同じ会社の上位機種なので、使い勝手はほとんど変わらない。特に戸惑いもなく移行できた。
Huawei は、iPhone を強く意識して端末を作っている。Android としてはかなり使い勝手を改造していて、Androidに慣れた人が使うと戸惑うだろう。
しかし、iPhone から Android に乗り換える際には良い端末だと言える。
そして、この改造のついでに、普通の Android では使えない「ちょっとした機能」をたくさん搭載している。
機能が多すぎて、設定するのが大変ではあるのだけど、何も設定しなければ普通の Android と同じように動くので気にしないでもいい。
たとえば、登録されている WiFi 局がないときは、WiFi を OFF にしてしまい、時々確認のために ON にする、という機能がある。
これにより、電池の持ちをよくできる。僕は以前、この動作を Llama でプログラムしていたのだけど、P10 は OS で持っている。
例えば、画面ロック…画面が消えて、パスワードなどの認証が必要な画面に戻る際に、アプリを「閉じて」しまう機能がある。
アプリごとに ON / OFF を設定できるのだけど、使っていない時は閉じてしまえば、動作しなくなるので電池の持ちをよくできる。
僕は以前、この動作を Llama でプログラムしていたのだけど、P10 は OS で持っている。
例えば、アプリごとの通信許可。本来通信が必要ないアプリで、広告を出すためだけに通信するのを「許可しない」ことができる。
僕は以前、この動作を Llama でプログラムしていたのだけど(以下略)
まぁ、こんな調子で、今まで Llama を使って実現していた「ちょっと便利な使い方」を、ほとんど OS レベルで持ってしまっている。
とりあえず Llama は入れたのだけど、今のところ何も動作していない。
(これから使っているうちに、必要だと思ったらプログラムを組むのだけど)
まぁ、Llama は作者さんが「最近の Android では役割を終えた」と感じたようで、メンテナンスが止まったままだ。
僕としても、そろそろ使うのをやめるべきかと思っている。
全然 P10 のレポートらしいこと書いてないな…
でも、本当に honor 6 plus とあまり変わらない、という実感。
・上に挙げたように、細かな使い勝手の良さは上がっている。
・CPU が良くなったので、軽快な動作感になっている。
・指紋認証は素晴らしい。ポケットからつまみ出そうとしただけで指が触れる位置にあるので、出したときには使えるようになっている。逆に言うと電源を切ってポケットに入れるときにも起動することがある。
・カメラは、少し暗がりに強くなった。これはレンズの良さによるのだろう。でも、honor6 plus も結構カメラ性能良かったので、ライカすげー、というような感覚はない。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
15年 古くて非力なマシンをLinuxBeanで再生してみた
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
コラムス97~オーラ写真の頃の話…だと思うのだけど、正確な時期は覚えていない。
また、いくつかの話があって、同じ時期だったと思うのだけど、これも正確には覚えていない。
ゲーム作成ではなく、当時の「人事」のお話。
確か、僕がいたころのセガの社員数は、3000人規模だった。
たしか、開発・生産・運営が、それぞれ1000人くらいづつじゃなかったかな。
僕が入ったのは 1994年なのだけど、その前の3年間で人数が3倍に増えた、と誰かが言っていた気がする。
正確な資料がないので間違っていたら申し訳ないのだけど、メガドライブのヒットや、店舗展開の好調などがあり、人員を大幅に増強したのだろう。
新卒採用だけでなく、小さな会社の吸収合併なども行っていたみたい。
僕の入社の前年には、業務用と家庭用の部署で、大規模な人材交換も行われている。
業務用部署に技術力の高い人が多く、家庭用部署をテコ入れしたかった、ということらしいのだけど、実際部内にも「家庭用部署から来た」という人が何人かいた。
これだけ増えた人数を統括するために、役員も大幅増員。
生え抜きでその人数を集めることなんてできないので、社外から来た人も多く、ゲーム開発なんて理解していない役員もいた。
(悪いことではない。業界の悪しき慣習を打ち破るなどの効果はあった)
ただ、急に会社の規模が3倍になったら、人事部は状況を把握しきれなくなり、迷走を始める。
ある時、「さん付け運動」という指示が出た。
各自の名札に貼り付ける、「さん付け運動実施中」というシールまで作られた。
(セガの当時の看板キャラクター、ソニックが配してあった)
部長、課長と言った役職で呼ぶことで、人間関係に壁を作ってしまい、相談などがしにくくなる。
仕事を進めるうえで相談は必須だから、こうした壁は仕事の邪魔になる。
役職名ではなく、「さん」をつけて名前を呼ぼう、という趣旨だった。
ところで、開発現場は基本的に実力主義。
もちろん部課長クラスは特別な地位にいたし、先輩社員は一目置かれた。
でも、AM1研では言われるまでもなく、役職名なんかで呼んでいなかったし、常に「さん」づけだった。
なので「全社を挙げて さん付け運動」と言われても困惑するだけ。
まぁ、これも「開発現場」とひとくくりにしてはいけないのだとは思うけど。
別の部署では役職名で呼んでいた可能性はある。
また別の時、人事の参考に、とアンケートが配られた。社員全員が必ず回答しなくてはならない。
現在仕事で行っている職能以外に、趣味などで持っている技術があれば書いてほしい、とのこと。
特にコンピューターを扱う能力に関しては質問が細かく、達しているレベルを答えさせるようになっていた。
1) ワープロを使って文章を書くことができる。
2) エクセルを使って計算シートを作ることができる
3) メールの送受信ができる。
4) パソコンにソフトウェアのインストールができる
5) 人にワードやエクセルの使い方を教えられる
: : :
10) VBやCを使って簡単なアプリケーションを作成できる
こんな感じのレベル分け。
プログラム課の人間は、もちろんCを使うことなんて当たり前。
でも、Windows の API なんて勉強してないから、「簡単な」と言われたって、なにも作れない。
エクセルだって持ってないから、使い方知らないし教えるなんて無理に決まってる。
#当時は Windows 95 が出たばかりで、ワープロもまだ一太郎のほうが人気のころ。
MS-Office も「仕事用」の位置づけで、事務仕事をする人の一部が使っている程度だった。
Personal エディションが作られ、プリインストール戦略で誰もが使うようになるのは Office 97 から。
みんな迷った挙句、「ワープロが使える」レベルであると申告するしかなかった。
AM1研のプログラマー全員、コンピューターを使う能力は最低ランクです。
また別の話。
机の上を整頓しよう、という運動が展開された。
毎日、帰る際には机の上に何もない状態にしてから帰ること。
書類などには企業秘密も含まれるだろうし、机の上に置きっぱなしで誰でも見られるような状態にしてはならない。
これも趣旨は分かるのだけど、開発には無理な話。
開発でも、もちろん書類は使います。でも、机の上は書類よりも、開発機材でいっぱいなのです。
開発機材は、設置するのも大変な作業。毎日片付けて「何もない状態」なんかにしていたら効率が悪くて仕方がない。
そして、この開発機材こそが、最大の「企業秘密」なわけです。
これは、運動が展開されても当然そのまま。
企画書・仕様書などで書類もあったが、こちらはあまりにも膨大なので、机の上に置くと開発機材が埋もれてしまう。
大抵の人が、ファイルとか書類封筒とか、工夫してまとめて、引き出しや棚に置いていた。
とはいえ、今作っている部分の2~3ページの仕様書程度は机の上に出しっぱなしの人もいたのは事実。
運動が展開されたので、仕様書数ページ分だけど、出しっぱなしにせずに片付けるようにはなった。
(数か月後には元に戻っていたように思うけど)
水曜日はノー残業デー、というのもあったな。
これは、完全無視。
以前も書いたけど、少なくともAM1研では、無駄な残業をしようという風潮はなかった。
むしろ、追い込みの際には嫌でも泊まり込みになるので、そうではない時期は積極的に早く帰ってしまうし、会社に来ないでも構わない。
つまり、「ノー残業デー」と言われて帰れる人は、言われないでも帰っている。
追い込み時期の人は、言われたとしても帰れないし、帰らない。
いろいろ例を挙げてきたけど、いろいろな指示を出す人事部が、開発現場の雰囲気を全く理解してなかった。
たぶん営業・店舗営業か…最悪の話、人事部のある事務方周辺の雰囲気だけで指示を出していたのじゃないかと思う。
会社規模が急に大きくなりすぎ、完全に迷走していました。
(この話、思い出を書き留めただけで、特にオチはない)
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
フリーのプログラマーとしてやっているので、仕事内容はどんどん変わる。
ここ数カ月は、ある企業の WEB サイトデザインの大規模変更を手伝っている。
すでに長年運用されているサイトで、Wordpress で構築されている。
プログラムは拡張を繰り返してスパゲッティ状態だが、今回は「デザイン改修」が趣旨なので、プログラムは出来るだけそのまま活かして…
という指示。
ほぼ完成していたのだが、今月の中ごろに、一部の Android 端末でスクロールがおかしい、というバグが報告された。
Chrome のアップデートで、スクロールがおかしくなるバグが混入したらしい
…と報じているサイトがあった。9月28日の記事で、アップデートは9月25日…ということになっているが、実際には19日。
#Android アプリを配布する Google Play ストアでは、バグやウィルス入りのアプリが一気に広まるのを防止するため、複数のサーバーで徐々に配信が開始される。
アプリの登録・公開は19日だったが、実際にアップデートが入るのは端末ごとに接続するサーバーにより異なり、25日が嘘だということではない。
あぁ、Chrome のバグならしょうがない。そのうちアップデートされるだろうから、この件は一時保留…となったのだが、大きなバグに思える割になかなか修正されない。
クライアントからの強い修正依頼もあり、たとえ Chrome に原因があろうとも、多少別の機能に影響が出ても回避・修正せよ、となったのが昨日。
徹底的に原因の解明が始まった。
改めて確認すると、自分の端末でもバグが出た。
先日新しい端末にしたばかりで、以前の端末では問題が出なかった…と思う。
普段は PC の Chrome で、スマホエミュレートして確認をしているが、やはり問題は出ていない。
ともかく、手元でバグを再現できるようになった。こんなに心強いことはない。
しばらくいじって、バグの出る状況を確認。
スマホのブラウザの場合、スクロールによってアドレスバー…URL を表示したり、入力したりするところが、現れたり消えたりする。
この状態が切り替わった後、最初の Idle 状態にブラウザがなった時に、スクロール位置がトップに戻ってしまう、というバグが出現した。
Idle 状態って表現は説明がいるだろう。
アドレスバーはスクロールに合わせて出入りするが、スクロールが「止まって」も、指が放されるまではスクロールが続いている、と考える。
また、指を放す際にフリックすると、慣性スクロールが始まる。この慣性スクロールが終わるまでは、スクロールが続いている。
そして、スクロールが終わった時が「Idle 状態になった時」だ。
この瞬間にバグが出る。
多少の心当たりはあった。
作製しているサイトでは、画面上にある「ナビゲーションボタン」を、スクロールに合わせて表示を切り替えていた。
ページ表示時には、ページのヘッダ部分があり、その下にナビゲーションがついている。
文章を読み進め、下に向かってスクロールすると、当然ヘッダとナビゲーションは上に消えていく。
…はずなのだが、ナビゲーションがちょうど画面の上に貼りついたタイミングから、ナビゲーションだけがその位置に固定される。
CSS を position:fixed に変えているわけだが、これは画面スクロールに合わせて行っている。
スクロールのタイミングに合わせてバグが出る、というのは、この一連のプログラムと関係があるのかもしれない。
そこで、Javascript の該当プログラムを動かないようにしてみる。
…それでもバグは出た。
サイトはすでに古いものだし、Wordpress で構築されている。
他にも無数の Javascript プログラムが動いている。
このどこかでおかしくなっているのかもしれないし、全く違うバグかもしれない。
いろいろとプログラムや CSS など、外部から読み込むプログラムを外しては、リロードしてみる。
この最中、不思議なことに気が付いた。
ある程度スクロールを進めた状態でリロードを行うと、まず画面のトップ位置が表示され、続いてリロード前の位置にジャンプし、さらにまたトップ位置に戻される。
…普通は、直前まで読み進めた位置にジャンプして終わりのはずだ。最後の「トップ位置に戻る」が余計だ。
何度かリロードして観察して、このタイミングは、画面上の全要素を配置し終わったタイミング、いわゆる「window.load」だ、と見きわめた。
Javascript で何か処理が行われている可能性が高い。
無数の Javascript ファイルのどこで処理が行われているのかわからないが、ステップ実行を延々と…10分以上も繰り返して、やっと最後の「おかしな動作」をするタイミングを見極めた。
ウィンドウのロード、リサイズ時に、document.body.scrollTop を調べ 0 ならば window.scrollTo(0,1) する、というプログラムがあった。
このプログラム、5年くらい WEB サイト構築をしている人なら何かわかるだろう。
5年ほど前に、「ページを開いた瞬間から、アドレスバーが消えて画面が広く読みやすい」という WEB デザインが流行したことがある。
アドレスバーは、下にスクロールすれば消える。これを Javascript で実現するのが、上のプログラムだ。
ロード・リサイズ時に画面の一番上を表示していたら…つまり、ページ読み込み直後なら、1ドットだけ下にずらしてやる。
すると、アドレスバーが消えた。
しかし、アドレスバーが消えると表示中のサイトの URL もわからなくなるわけで、フィッシング詐欺には好都合だった。
他のサイトと同じような動作なら疑問に思う人もいない。そういう詐欺サイトが横行した。
これをうけて、スマホのブラウザでは、人が操作しない、Javascript でのスクロールはアドレスバーに影響を与えないようになった。
つまり、先のプログラムは今となっては無意味だ。
無意味だけど、やっぱり読み込み直後には1ドットスクロールする。
それ以外は何もせず、無害なプログラム、のはずだった。
スクロール位置は、古くは document.body.scrollTop で調べられた。
しかし、body 要素は「ドキュメントの表示部分」を意味する。それに対し、スクロール位置というのは、表示ウィンドウの問題とか、もっと別の次元のものだ。
この論理的なおかしさをただすため、document.documentElement.scrollTop でスクロール位置を調べる、という方法が標準化された。
Chrome の元となっていた webkit にもこの変更は反映された。
だけど、コンパイル時のオプション設定により、新しい「標準モード」と、古い「互換モード」を、切り替えられるようになっていた。
Chrome では過去との互換性のため、body.scrollTop が使い続けられていた。
しかし、9月頭にアップデートされた Chrome で、body.scrollTop から documentElement.scrollTop に切り替えられたらしい。
…が、超巨大なページの上、技術者でないと意味が分からないので、特に興味が無ければ読まないのがお勧め。
で、このログで scrollTopLeftInterop を検索すると、default が Enable され、WebView が Disable されているのがわかる)
これは、「いつか行う、と予定されていた変更」が実行されたに過ぎない。
すでに documentElement を使用していたブラウザもあるし、「ブラウザを調べて」ではなく、「環境を調べて」動作を変えるプログラムを作っておかなくてはならなかった。
そのための期間も十分に与えられていたにもかかわらず、動作がおかしくなったサイトがあったとすれば、そのサイトに潜在バグがあったと言わざるを得ないだろう。
これは Chrome のバグなどではなく、もちろん今後のアップデートで修正されるものでもない。
上に書いたのはデスクトップ版の話で、同じ変更が9月下旬に Android 版 Chrome に入った。
今後、body.scrollTop は、実際のスクロール位置を反映せず、常に 0 となる。
これが、2012 年ごろに流行った「アドレスバーを消す」ための Javascript と、非常に相性が悪い。
画面ロード時・リサイズ時には、本来「現在のスクロール位置が 0 なら」、scrollTo(0,1) でアドレスバーを消していた。
これが、現在のスクロール位置に関わらず、いつでも scrollTo(0,1) で、ページトップに戻ることになる。
いや、これでもまだ、PC 版で同じプログラムが動いていたとしてもあまり害をなさない。
ロード時に動くのは問題ないし、ページ中でのウィンドウリサイズも、それほど行わないからだ。
スマホだと、スクロールしただけで、アドレスバーが表示・消去される。
アドレスバーを消す理由は、コンテンツの表示領域を広げるためだ。
このため、Chrome ではスクロールしただけでリサイズイベントが発行されることがある。
どうも、このイベントの発行は、Scroll イベントが置き続けている時は避けて、Idle 状態になった時に行われるようだ。
これで、最初に書いたバグの条件がすべて整った。
スクロールに伴い、アドレスバーの表示・非表示が切り替わると、その後最初に Idle 状態になったタイミングで、現在のスクロール位置に関わらず、画面トップに戻される。
原因が理解できれば、修正も簡単。
幸いなことに、「1ドットスクロールさせる」というプログラムは、2012年頃には意味のあるものだったが、今では全く意味をなさない。
このプログラム自体を消してしまおう。
これで正常な動作に戻った。
今回の仕事ではこれで終わりだったが、「スクロール位置を変更したい」場合の動作も変わっているらしい。
jquery 的表現だと、今まで Chrome は $('body').scrollTop(y) などでスクロール位置を指定できた。
これを、$('html').scrollTop(y) にする必要がある。
…FireFox では、html に指定しなくてはならなかったので、$('html,body').scrollTop(y) としているサイトも多いかもしれない。
この場合、特に問題は出ず、今まで通り動き続ける。
機種判別して使い分けていた場合は、修正が必要だ。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |
先週金曜日、昼頃に子供の小学校からの緊急連絡メールが入った。
鎌倉市内で未明にコンビニ強盗事件が発生。刃物を持った犯人は逃走している。
学校はいつもより予定を切り上げ、集団下校させる。
というもの。
強盗のあったコンビニは家からは遠いが、知っている店。
遠いので危険はないとは思うが、この日は妻も夜やっている日課のジョギングに出るのをやめた。
強盗のあったコンビニは交通の便の悪いところにあり、逃走にも不便だ。
そんなところを襲うのは近所の人で、どうせすぐ捕まるだろう…と思ったが、週明けになっても捕まったという続報はない。
どうなっているのかな…と調べると、続々とコンビニ強盗の情報が見つかった。
10/27 4:10 セブンイレブン鎌倉深沢店(これが、金曜日の強盗事件)
10/25 3:50 ファミリーマート日野南6丁目店(上の店から車で30分くらいの範囲)
10/18 2:30 セブンイレブン西日暮里6丁目店(これは東京。ちょっと遠いかも)
10/18 0:20 セブンイレブン横浜磯子原町店(日野の店からだと、20分くらい)
10/ 6 不明 25日の日野南店から「1.7km離れた場所」(詳細不明。後述)
10/ 2 4:30 ローソン和田河原店(神奈川県内だが、南足柄。2時間かかる)
いずれも、犯人は男性、160~170cm くらいで、黒い上下を着ている。
頭も、サングラス、マスク、タオルや帽子で隠している。
そして、手口は刃物を突き付けての「金を出せ」。
ただ、年齢がバラバラ20代から50代まで。
もっとも、この年齢は被害者証言によるものだから、あまりあてにはならない。
…あてにはならないのだけど、地理的な範囲も広すぎるし「別人」だろう。
ちなみに、コンビニ強盗をキーワードに探していたら、ここ1カ月に絞っても、大阪、京都、富山、静岡などで「160~170cmの黒い男が深夜から未明にかけ、刃物を持って金を出せ」とやっているのが引っかかった。
つまりは、平均的な強盗スタイルで、これだけで同一犯と考えるのは根拠希薄すぎるようだ。
25日のファミリーマート日野南6丁目店は、犯人は50代とみられる。
黒ジャンパーにズボン、手袋、頭に白いタオルを巻いている。
18日のセブンイレブン横浜磯子原町店はすぐ隣の区で、やはり 50代とみられる。
黒いジャンパーにニット帽、サングラスをつけている。
6日は、探しても報道がないし、警察のWEBページを見ても書かれていない。
25日の事件があった時点で、「6日にも1.7km離れたコンビニで、同様の手口で強盗事件があり、同一犯とみられる」という言及だけがあった。
同一犯とみているのだから、年齢などの特徴も一致するのだろう。
この3つについては、報道によれば、警察は同一犯ではないか、と見ている節がある。
先週金曜日、27日のセブンイレブン鎌倉深沢店は、報道では「近くでも今月2件のコンビニ強盗が~」となっていた。
これはどうやら、25日と6日の事件のことのようだ。警察が同一犯かも、と見たのかもしれない。
でも、27日の犯人は20代とみられる。
黒いフード付き上着とズボン姿で、サングラス・マスクを着用。
「ジャンパー」と「フード付き上着」は微妙に違う気がするし、年齢も20代と50代はかけ離れすぎている。
同一犯なら、神奈川南部を広範囲に荒らしている犯人、ということで、すでに近所には潜んでいないだろう。
同一犯ではなさそうな気がするが、それだと実は近所にいるかもしれない、という危険性があることになる。
まぁ、すでに3日もたっているので、犯人も犯行直後の興奮状態ではないはず。
街を歩いていていきなり襲われるような危険は過ぎたとみてよさそうだ。
ちなみに、調べていたら 2014年2~3月にも、横浜市緑区で連続コンビニ強盗があった。
1か月間に、半径 2.5Km以内で5件、「平均的な強盗スタイル」で同一犯とみられる。
これが逮捕された、という話はないようだ。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |