20200328-1

関連記事

デフォルト画像
2017.07.15
今日のハマりごと、lity.jsと右クリック禁止

自分の力での解決は不可能でした 今週はハマりごとが大量にありましたけど、クソ面倒だったのは多分今日。 動画周りのお話です。 備忘録代わりに書きますが、詳細な技術面の話は一切しません。 自分で理解できてないことが多いし、再現しろと言われてもできないからです。 HTML5からなのかは知識不足で知らないけど、videoタグがありますよね。 直接mp4とかの動画を埋め込んでくれる便利なやつです。 その辺で大分やられました、主に5時間ほど。 今日やろうとしたのは、動画の埋め込み。 やったこととハマったことは以下の通り。 ・動画を埋め込む、埋め込みにはLity.jsを使う Lity採用理由:colorboxがクソダサだからもっとシンプルなやつっていう指示 ・Chromeはvideoタグにダウンロードボタンが付いたのでそれを削除 理由:多分ダウンロードをされたくないから、Chrome氏ね ついでに右クリックも禁止、ダウンロードされるから ・PC/Android/iPhoneすべてで問題なく見れること 理由:それなりにデカイ案件だったし、そもそもその三機種で見れるのは最低条件 主に下2つでハマりました。 とりあえずまずは一番下のやつから Android PCとiPhoneは問題なく見れたんですよね。 前者はLityのボックスで、後者はフルスクリーンで。 んだけども、なぜかAndroidは見れないわけですよ。 色々と調べてみると、どうやら4系は標準メディアプレーヤーがゴミカスな模様。 Lityで頑張って出そうとするのになぜかダウンロードをしはじめる始末です。 そのくせただvideoタグで埋め込むだけだと再生ボタンすら表示させないというクソ仕様。 誰だよAndroid4系を開発したのは、開発者出てこい。 仕方がないので、Androidに関してはJSで対処しました。 やったのはPlay()とPause()を交互に繰り返すこと。  (多分書き方は合ってる) って感じで、videoにidを振って、クリックしたときに関数を呼びました。 JS側では function play_movide() { } みたいな感じで作った関数の中で、 ・クリックされた要素のidを取得 ・それがPlay中ならPause() ・それがPause中ならPlay() ってのをやっただけです。 Androidくんの場合だけで適用され、表示的にはフルスクリーンにならずにその場で再生されます。 タップをすると再生、もう一度タップで停止。 便利なのは、HTML5のおかげか、再生中と停止中の状態をJSで取得できることですね。 なのでif文でPlayかPauseかを判断することができるわけですよ。 このことに気づくまで3時間ぐらい掛かりました。 オイオイオイ死ぬわ俺とか思いながらやってましたよ? Chromeのダウンロードボタン Chromeは標準のメディアプレーヤーに、56?ぐらいからダウンロードボタンがつきました。 それをクリックすることで簡単に動画を落とすことができます。 クソ仕様です、クソ仕様。 何がクソって、そういうのは基本的にしてほしくないからです。 そもそもいらねえでしょ、そんな機能。 まあそんな文句ばかりは言えないので、対処のお話です。 何やら調べてみると、 ・CSSでwebkitを用いてダウンロードボタンを消滅させる(無理やり消失) ・ver58から、videoタグにcontrolListだかでnodownloadを指定すると消えるようになった の二通りがあるようです。 後者はすごく便利ですが、なんと58系のChromeからしか適用されません。 それにしたって57以下はコンマ以下の%の人間しか使ってないから問題ないんですけどね。 で、「だったら付けて解決じゃねえか」って思うかもしれませんが、そうは問屋が卸さない。 ここに使っていたプラグイン、Lity.jsが立ちはだかります。 という本題に入る前に、ついでのお話。 もう一つの指示があって、それは右クリックを禁止するというものです。 いくらダウンロードが消えたといっても、右クリックされるようでは簡単にダウンロードはされます。 開発者ツール開かれたら簡単に落とされますけど、そこまでする人間はそういない。 右クリック禁止のやり方については調べてください。 この2点、 ・nodownloadかwebkitでボタンを消す ・右クリックを禁止する ということをしようとするとLity.jsが邪魔するわけです。 何が邪魔かって、クリックするまではそのオブジェクトが存在しないんです。 最初は ってあるんだからbodyかvideoにかけりゃええやろって思いました。 webkitだってvideo::webkit~でなんとかなるやろって思いました。 はい違います。 ぼくも良くは知りませんが、Lity.jsは画面内でiframeとbodyを生成するんですよね。 要は別画面を生成して、その中に動画をcolorbox化して読み込むみたいな? 読み込まれるのは標準プレーヤーなんですが、iframe内のせいでJSをが入り込めません。 なんていうか、iframeの中をJSを操作することってできないらしいです。 CSSは理由がよくわからん。 要は、生成されてないんだからそのDOM操作できねえよバーカ! iframeだからJSで疑似要素を操作することもできねえよアーホ! って感じでハマりました。 助けてもらって解決しましたが。 解決案は、Lity.jsを使用するために付けるdata-lityを利用すること。 これを持ったDOMをクリックするときにfunction()して色々やります。 クリック関数になるので、生成されたiframe内からvideo要素を取得。 そこらへんで右クリック禁止したり、removeAttributeしたり、setAttributeしました。 という感じで解決。 氏ねって思ったのはLity.jsが想像以上に難解な仕様をしてくれたからです。 素直にHTML上で設置したvideoタグを使えって思いますよほんとに。 なにはともあれ、お陰様でダウンロードボタンを消すこともできました。 もーまんたい!もーまんたい! ほとんどぼくの力じゃないけど!! もうこんなんはコリゴリだよ、氏ね。 それでは今日はここらでサヨウナラー

デフォルト画像
2018.10.21
M3のカタログ買ったのでサークルチェックしてます

一週間前 驚くべきことに、なんとM3まであと一週間なんですよ。 つまり来週の土曜日夜にはもう出発するんですよ! どうしましょうかね。 現在、ゲームをやることなくサークルチェックを行っております。 M3は想像以上にサークル数が多いので、全部チェックするのはかなり時間がかかります。 ある程度ジャンルは絞ってるのですけど、それでも多いですよねぇ。 除外ジャンルとして捉えてるのは、クラブ系でもハードコアとかユーロビートとか。 後ボイスドラマ系とか。 ただ、たまにその中に混じって良いものがあったりするので侮れなかったりします。 そういう場合、大抵はそれ以外のジャンルのサークルTwitterがRTしたものを拾っています。 そんな感じでやらないと正直やってらんねえな!って感じなので。 道をそれていっています それでまあ、頑張ってるわけですけど、今はちょっと、休憩しています…。 休憩として、ひとつページを作っています。 それは、「行くサークルさんリスト」です! 最近会社で「UIkit」なるものを知ったので、そのテンプレートを使いながらやってるってとこですね。 基本的にガイドラインが英語なのでかなり手探り状態です。 正直こんなことをやってる場合じゃないんですけども。 前々から考えてたのですけど、要はこれからのイベント参加で便利に使えればいいなーってのを目標にしています。 例えばコミケとか他のイベントとか、そういう場面でjsonに入力するだけで出力できる感じで作りたいなと思ってます。 Wordpressとかには頼らずローカルでなんとか解決する予定です。 その理由としては PHPが使えない(Github pagesで作ってるから) ページは極力軽くしたい(生成をローカルだけで済ませたい) というのがあります。 これ結構重要。 あとアレですね、過去に行った所とかを見直すってのも目的にしています。 サークルカットとかその辺はまあ…適当に…。 なぜかこれ作るのに今のところ3時間くらいかけてるので、そろそろ戻らないといけないです。 多分今回のM3には間に合わないんだろうなー(間に合わせる気がない)。 もし完成したら公開します。 それでは今日はここらでサヨウナラー

2020.11.21
【パニグレ】CBTやってた

https://twitter.com/saikofall/status/1330111086205546498 中華強し 香港かどっかの会社が作成・運営している「パニシング:グレイレイヴン」というゲームが日本にもやってきました。以前CBTをやっていたのですが、昨日から第二回ということで、またテストを行っています。 ぼくも申し込みをしており、抽選に当たったみたいなのでプレイしています。 12月4日が正式版リリース日みたいなので、ほぼほぼ最終系みたいな感じですね。これで問題なければ本番やるべ、みたいな? CTBのデータは正式版には引き継がれないので、本当にただのテスターって感じですが、かなり先のデータまでちゃんと入っている様子。まあ既に大陸のほうで先行してるゲームですので、シナリオの実装具合も翻訳次第なんでしょうけど。 カワイイ よくあるソシャゲ味を感じるゲームですが、全体的に非常によくできてると思います。特に!!!個人的には!!!!宿舎のミニキャラがとてもかわいい!!!(オナホ妖精) キャラクターはあんまりいないっぽいですが、一人ひとりが色々しっかり作りこまれてる辺り、それなりに金かかってそうだなと思いますね。こんな2頭身キャラまで作っちゃってよぉ!!!どこぞの色んな誰かの性癖にヒットしそう。 冒頭にそっとプレイ動画を載せましたが、結構良い動きをしてくれます。個人的に、これをスマホじゃなくてPCでもやらせてくれって思うんですけどね。実はPC版が存在したりしない? 課金はエグそう プレイして2日ばかりですが、結構頑張りました。その中で分かったこととしては、ガチでやるにはかなり課金が必要そうですよ? 別に無課金でも遊べる程度には難易度調整されていますが、キャラ愛を語るなら武器から装備品からキャラ自身にまで「重ね」の要素があるのでエグいです。 基本的に、「キャラ」「武器」「装備」の3種類があります。キャラでも武器種が決まっているので、装備できるものとできないものがあります。「装備」は【意識】とか呼ばれてて、ガチャ以外にも入手手段がありますので多分そっちでなんとかなりそう?でも良い武器は基本ガチャからしか出なさそうなので、これがまた中々…。 キャラは(多分)最大SSSぐらいまであって、ガチャから出るキャラの最高ランクはSスタート、重ねを経てSSSとかになる。ランクが上がるとスキルを得られるので、原神と一緒ですね。 ただし、キャラ重ねが具合が悪くなる感じで、 Sランク内でキャラ突破素材を使用→「Sランクが1つ進む」Sランクを進めていく→一定の段階まで来ると「SSランクになる」 みたいな?Sランク→SSランクに一直線ではなく、Sランクの中で突破素材を使うことで「攻撃力+〇%」みたいなのが解放されていって、全部解放しきるとやっとSSランクになれます。 なので、ゲーム内でガチャ以外の入手手段があるかどうかは置いといて、Sランクキャラの育成はかなりキツそうです。まあでも、エンドコンテンツ(多分プレイヤー同士の争い系?)に手を出すとかでない限りはその辺を考える必要はないと思います。強くはなりますが、通常シナリオとかイベントを遊ぶ程度であれば問題なくできそうだったので。 ちなみに、この「Sランク→SSランク」の要素が「進化」です。進化に手を出すのは、やめようね! 武器は武器で、「共鳴」というシステムがあるみたいで、同じ武器?を重ねるとより強くなったりするっぽいですね。今のところ、同武器以外で共鳴できるのかはわかんないです。中華wikiとか漁れば情報出てきそうですけどね。 とはいえやりたいことは確か でもでもでもでも、プレイしてて非常に楽しいです。PC版でもっと遊びやすくさせてくれ、スマホでやらせないでくれ。 最近遊んでる原神とは違って、とってもスマホでやりやすい(原神基準)ことは確かなので、リリースされたらとりあえずは遊びます。 リリース後、Sランク構造体(キャラのこと)が1体確定みたいなので、ぜひとも「リーフ(来光)」で遊ぼうな!プレイのしやすさが段違いだ!(キャラごとに「型番」があって、型番ごとにプレイアブルになってる) 早く12月4日にならないか!?