setFlags(\SplFileObject::READ_CSV | \SplFileObject::SKIP_EMPTY | \SplFileObject::READ_AHEAD); $file->setCsvControl("\t") ; foreach ($file as $lno => $line) { # if ( preg_match( '/^#/', $line[$lno][0] ) ) { if ( preg_match( '/^##/', $line[0] ) ) { // comment line continue ; } else if ( preg_match( '/^#[0-9a-zA-Z]/', $line[0] ) ) { // comment lines (dummy event) $wk_evid = $line[0] ; $wk_evid = preg_replace( '/^#/', "", $wk_evid ) ; $dmyevents[$wk_evid] = array() ; $dmyevents[$wk_evid]["event_id"] = $wk_evid ; $dmyevents[$wk_evid]["event_title"] = $line[1] ; $dmyevents[$wk_evid]["event_start"] = $line[2] ; $dmyevents[$wk_evid]["event_end"] = $line[3] ; $dmyevents[$wk_evid]["event_log_interval"] = $line[4] ; $dmyevents[$wk_evid]["event_log_preset"] = $line[5] ; $dmyevents[$wk_evid]["event_log_detailat"] = $line[6] ; $dmyevents[$wk_evid]["append_comment"] = $line[7] ; $dmyevents[$wk_evid]["event_env"] = $line[8] ; continue ; } else if ( preg_match( '/^#-/', $line[0] ) ) { // comment lines (pre event) $wk_evid = $line[0] ; $wk_evid = preg_replace( '/^#-/', "", $wk_evid ) ; $preevents[$wk_evid] = array() ; $preevents[$wk_evid]["event_id"] = $wk_evid ; $preevents[$wk_evid]["event_title"] = $line[1] ; $preevents[$wk_evid]["event_start"] = $line[2] ; $preevents[$wk_evid]["event_end"] = $line[3] ; $preevents[$wk_evid]["event_log_interval"] = $line[4] ; $preevents[$wk_evid]["event_log_preset"] = $line[5] ; $preevents[$wk_evid]["event_log_detailat"] = $line[6] ; $preevents[$wk_evid]["append_comment"] = $line[7] ; continue ; } else { $wk_evid = $line[0] ; $events[$wk_evid] = array() ; $events[$wk_evid]["event_id"] = $wk_evid ; $events[$wk_evid]["event_title"] = $line[1] ; $events[$wk_evid]["event_start"] = $line[2] ; $events[$wk_evid]["event_end"] = $line[3] ; $events[$wk_evid]["event_log_interval"] = $line[4] ; $events[$wk_evid]["event_log_preset"] = $line[5] ; $events[$wk_evid]["event_log_detailat"] = $line[6] ; $events[$wk_evid]["append_comment"] = $line[7] ; } } function puts_normalevent( $event_id, $events_array, $short_title = "" ) { global $base_host ; $ev_endstr = $events_array[$event_id]["event_end"] ; $ev_endstr = preg_replace( '/^[0-9][0-9][0-9][0-9]\//', "", $ev_endstr ) ; $ev_title = ( $short_title == "" ) ? $events_array[$event_id]["event_title"] : $short_title ; $szrtn= sprintf('%s (%s~%s) SRページ', $base_host, $event_id, $event_id, $ev_title, // $event_id, $events_array[$event_id]["event_start"], $ev_endstr, $event_id ) ; return $szrtn ; } function puts_subevent( $event_id, $events_array, $with_period, $short_title = "" ) { global $base_host ; $ev_endstr = $events_array[$event_id]["event_end"] ; $ev_endstr = preg_replace( '/^[0-9][0-9][0-9][0-9]\//', "", $ev_endstr ) ; if ( $short_title != "" ) { $ev_title = $short_title ; } else { $ev_title = $events_array[$event_id]["event_title"] ; // $ev_title = preg_replace( '/^(【[^】][^】]*】).*$/', "$1", $ev_title ) ; // $ev_title = preg_replace( '/^(【[^】]+】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(【.*】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(《.*》).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^([^:]*):.*$/', "$1", $ev_title ) ; } if ( $with_period == 1 ) { $ev_period = sprintf( " (%s~%s) ", $events_array[$event_id]["event_start"], $ev_endstr ) ; } else { $ev_period = " " ; } $szrtn= sprintf('%s%sSRページ', $base_host, $event_id, $event_id, $ev_title, // $event_id, $ev_period, $event_id ) ; return $szrtn ; } // normal event with hover function puts_normaleventR( $event_id, $events_array, $short_title = "" ) { global $base_host ; $ev_endstr = $events_array[$event_id]["event_end"] ; $ev_endstr = preg_replace( '/^[0-9][0-9][0-9][0-9]\//', "", $ev_endstr ) ; $ev_title = ( $short_title == "" ) ? $events_array[$event_id]["event_title"] : $short_title ; $szrtn= sprintf('%s (%s~%s) SRページ', $base_host, $event_id, $event_id, $ev_title, $event_id, $events_array[$event_id]["event_start"], $ev_endstr, $event_id ) ; return $szrtn ; } // sub event with hover function puts_subeventR( $event_id, $events_array, $with_period, $short_title = "" ) { global $base_host ; $ev_endstr = $events_array[$event_id]["event_end"] ; $ev_endstr = preg_replace( '/^[0-9][0-9][0-9][0-9]\//', "", $ev_endstr ) ; if ( $short_title != "" ) { $ev_title = $short_title ; } else { $ev_title = $events_array[$event_id]["event_title"] ; // $ev_title = preg_replace( '/^(【[^】][^】]*】).*$/', "$1", $ev_title ) ; // $ev_title = preg_replace( '/^(【[^】]+】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(【.*】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(《.*》).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^([^:]*):.*$/', "$1", $ev_title ) ; } if ( $with_period == 1 ) { $ev_period = sprintf( " (%s~%s) ", $events_array[$event_id]["event_start"], $ev_endstr ) ; } else { $ev_period = " " ; } $szrtn= sprintf('%s%sSRページ', $base_host, $event_id, $event_id, $ev_title, $event_id, $ev_period, $event_id ) ; return $szrtn ; } // pre event ( announced and not start yet, not yet registerd ) function puts_normaldmyevent( $event_id, $events_array, $short_title = "", $sr_linked = 0, $is_dmy = 0 ) { global $base_host ; global $events ; global $dmyevents ; global $preevents ; if ( array_key_exists( $event_id, $events ) ) { $is_dmy = 0 ; $sr_linked = 1 ; $events_array = $events ; } else if ( array_key_exists( $event_id, $dmyevents ) ) { $is_dmy = 1 ; // $sr_linked = 1 ; // both value supposed, so use function's parameter . // ' $events_array = $dmyevents ; } else if ( array_key_exists( $event_id, $preevents ) ) { $is_dmy = 0 ; // $sr_linked = 1 ; // both value supposed, so use function's parameter . // ' $events_array = $preevents ; } $ev_endstr = $events_array[$event_id]["event_end"] ; $ev_endstr = preg_replace( '/^[0-9][0-9][0-9][0-9]\//', "", $ev_endstr ) ; $ev_title = ( $short_title == "" ) ? $events_array[$event_id]["event_title"] : $short_title ; if ( $sr_linked == 1 ) { $sr_link = sprintf( ' SRページ', $event_id ) ; } else { $sr_link = "" ; } if ( $is_dmy == 1 ) { $dmy_font_s = "" ; $dmy_font_e = "" ; $pre_str = '' ; } else { $dmy_font_s = '' ; $dmy_font_e = '' ; $pre_str = ' [予定]' ; } $szrtn= sprintf('%s%s (%s~%s)%s%s%s', $dmy_font_s, $event_id, $ev_title, $events_array[$event_id]["event_start"], $ev_endstr, $sr_link, $pre_str, $dmy_font_e ) ; return $szrtn ; } function puts_subdmyevent( $event_id, $events_array, $with_period, $short_title = "" , $sr_linked = 0, $is_dmy = 0 ) { global $base_host ; global $events ; global $dmyevents ; global $preevents ; if ( array_key_exists( $event_id, $events ) ) { $is_dmy = 0 ; // $sr_linked = 1 ; $events_array = $events ; } else if ( array_key_exists( $event_id, $dmyevents ) ) { $is_dmy = 1 ; // $sr_linked = 1 ; // both value supposed, so use function's parameter . // ' $events_array = $dmyevents ; } else if ( array_key_exists( $event_id, $preevents ) ) { $is_dmy = 0 ; // $sr_linked = 1 ; // both value supposed, so use function's parameter . // ' $events_array = $preevents ; } $ev_endstr = $events_array[$event_id]["event_end"] ; $ev_endstr = preg_replace( '/^[0-9][0-9][0-9][0-9]\//', "", $ev_endstr ) ; if ( $short_title != "" ) { $ev_title = $short_title ; } else { $ev_title = $events_array[$event_id]["event_title"] ; // $ev_title = preg_replace( '/^(【[^】][^】]*】).*$/', "$1", $ev_title ) ; // $ev_title = preg_replace( '/^(【[^】]+】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(【.*】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(《.*》).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^([^:]*):.*$/', "$1", $ev_title ) ; } if ( $with_period == 1 ) { $ev_period = sprintf( " (%s~%s) ", $events_array[$event_id]["event_start"], $ev_endstr ) ; } else { $ev_period = " " ; } if ( $sr_linked == 1 ) { $sr_link = sprintf( 'SRページ ', $event_id ) ; } else { $sr_link = "" ; } if ( $is_dmy == 1 ) { $dmy_font_s = "" ; $dmy_font_e = "" ; $pre_str = '' ; } else { $dmy_font_s = '' ; $dmy_font_e = '' ; $pre_str = '[予定]' ; } $szrtn= sprintf('%s%s%s%s%s%s', $dmy_font_s, $event_id, $ev_title, $ev_period, $sr_link, $pre_str, $dmy_font_e ) ; return $szrtn ; } // ----- block event function puts_subblkeventR( $event_id, $events_array, $with_period, $short_title = "", $sr_linked = 0, $is_dmy = 0 ) { global $base_host ; global $dmyevents ; $events_array = $dmyevents ; /// Note: block event registerd like #major_debut_sf/block_ranking/29665-901 $ev_endstr = $events_array[$event_id]["event_end"] ; $ev_endstr = preg_replace( '/^[0-9][0-9][0-9][0-9]\//', "", $ev_endstr ) ; if ( $short_title != "" ) { $ev_title = $short_title ; } else { $ev_title = $events_array[$event_id]["event_title"] ; // $ev_title = preg_replace( '/^(【[^】][^】]*】).*$/', "$1", $ev_title ) ; // $ev_title = preg_replace( '/^(【[^】]+】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(【.*】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(《.*》).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^([^:]*):.*$/', "$1", $ev_title ) ; } if ( $with_period == 1 ) { $ev_period = sprintf( " (%s~%s) ", $events_array[$event_id]["event_start"], $ev_endstr ) ; } else { $ev_period = " " ; } $event_id_base = preg_replace( '/^([^\/]*)\/*$/', "$1", $event_id ) ; $event_id_out_block = preg_replace( '/\//', "-_-", $event_id ) ; $event_id_out_direct = preg_replace( '/-_-block_ranking/', "", $event_id_out_block ) ; $srlnkstr="" ; if ( $sr_linked == 1 ) { $tmp_pos = strpos( $events_array[$event_id]["event_env"], "SRURL=" ) ; $tmp_srurl = "" ; if ( $tmp_pos !== false ) { $tmp_evenvs = explode( ';', $events_array[$event_id]["event_env"] ) ; $tmp_evenv_kv = array() ; foreach ( $tmp_evenvs as $evenv ) { $tmp_env_kv = explode('=', $evenv, 2 ) ; $tmp_evenv_kv[$tmp_env_kv[0]] = $tmp_env_kv[1] ; if ( $tmp_env_kv[0] == "SRURL" ) { $tmp_srurl = $tmp_env_kv[1] ; $tmp_srurl = preg_replace( '/"/', '', $tmp_srurl ) ; break ; } } $srlnkstr= sprintf('SRページ', $tmp_srurl ) ; } else { $srlnkstr= sprintf('SRページ', $event_id ) ; } } if ( $is_dmy == 0 ) { $szrtn= sprintf('%s%s%s', $base_host, $event_id_out_block, $event_id_out_block, $ev_title, $event_id_out_block, $ev_period, $srlnkstr ) ; } else { ### dmy not has puimg class $szrtn= sprintf('%s%s%s', $event_id_out_block, $ev_title, $ev_period, $srlnkstr ) ; } /* $szrtn= sprintf('%s%s', $base_host, $event_id_out_block, $event_id_out_block, $ev_title, $event_id_out_block, $ev_period ) ; */ return $szrtn ; } function puts_subblkevent( $event_id, $events_array, $with_period, $short_title = "", $sr_linked = 0, $is_dmy = 0 ) { global $base_host ; global $dmyevents ; $events_array = $dmyevents ; /// Note: block event registerd like #major_debut_sf/block_ranking/29665-901 $ev_endstr = $events_array[$event_id]["event_end"] ; $ev_endstr = preg_replace( '/^[0-9][0-9][0-9][0-9]\//', "", $ev_endstr ) ; if ( $short_title != "" ) { $ev_title = $short_title ; } else { $ev_title = $events_array[$event_id]["event_title"] ; // $ev_title = preg_replace( '/^(【[^】][^】]*】).*$/', "$1", $ev_title ) ; // $ev_title = preg_replace( '/^(【[^】]+】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(【.*】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(《.*》).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^([^:]*):.*$/', "$1", $ev_title ) ; } if ( $with_period == 1 ) { $ev_period = sprintf( " (%s~%s) ", $events_array[$event_id]["event_start"], $ev_endstr ) ; } else { $ev_period = " " ; } $event_id_base = preg_replace( '/^([^\/]*)\/*$/', "$1", $event_id ) ; $event_id_out_block = preg_replace( '/\//', "-_-", $event_id ) ; $event_id_out_direct = preg_replace( '/-_-block_ranking/', "", $event_id_out_block ) ; $srlnkstr="" ; if ( $sr_linked == 1 ) { $tmp_pos = strpos( $events_array[$event_id]["event_env"], "SRURL=" ) ; $tmp_srurl = "" ; if ( $tmp_pos !== false ) { $tmp_evenvs = explode( ';', $events_array[$event_id]["event_env"] ) ; $tmp_evenv_kv = array() ; foreach ( $tmp_evenvs as $evenv ) { $tmp_env_kv = explode('=', $evenv, 2 ) ; $tmp_evenv_kv[$tmp_env_kv[0]] = $tmp_env_kv[1] ; if ( $tmp_env_kv[0] == "SRURL" ) { $tmp_srurl = $tmp_env_kv[1] ; $tmp_srurl = preg_replace( '/"/', '', $tmp_srurl ) ; break ; } } $srlnkstr= sprintf('SRページ', $tmp_srurl ) ; } else { $srlnkstr= sprintf('SRページ', $event_id ) ; } } if ( $is_dmy == 0 ) { /* $szrtn= sprintf('%s%s%s', $base_host, $event_id_out_block, $event_id_out_block, $ev_title, $event_id_out_block, $ev_period, $srlnkstr ) ; */ $szrtn= sprintf('%s%s%s', $base_host, $event_id_out_block, $event_id_out_block, $ev_title, $ev_period, $srlnkstr ) ; } else { ### dmy not has puimg class $szrtn= sprintf('%s%s%s', $event_id_out_block, $ev_title, $ev_period, $srlnkstr ) ; } /* $szrtn= sprintf('%s%s', $base_host, $event_id_out_block, $event_id_out_block, $ev_title, $event_id_out_block, $ev_period ) ; */ return $szrtn ; } // ----- gift ranking event function puts_subgifteventR( $event_id, $events_array, $with_period, $short_title = "", $sr_linked = 0, $is_dmy = 0 ) { global $base_host ; global $dmyevents ; $events_array = $dmyevents ; /// Note: gift_ranking event registerd like #major_debut_sf/gift_ranking/29665 $ev_endstr = $events_array[$event_id]["event_end"] ; $ev_endstr = preg_replace( '/^[0-9][0-9][0-9][0-9]\//', "", $ev_endstr ) ; if ( $short_title != "" ) { $ev_title = $short_title ; } else { $ev_title = $events_array[$event_id]["event_title"] ; // $ev_title = preg_replace( '/^(【[^】][^】]*】).*$/', "$1", $ev_title ) ; // $ev_title = preg_replace( '/^(【[^】]+】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(【.*】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(《.*》).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^([^:]*):.*$/', "$1", $ev_title ) ; } if ( $with_period == 1 ) { $ev_period = sprintf( " (%s~%s) ", $events_array[$event_id]["event_start"], $ev_endstr ) ; } else { $ev_period = " " ; } $event_id_base = preg_replace( '/^([^\/]*)\/*$/', "$1", $event_id ) ; $event_id_out_block = preg_replace( '/\//', "-_-", $event_id ) ; $event_id_out_direct = preg_replace( '/-_-block_ranking/', "", $event_id_out_block ) ; $srlnkstr="" ; if ( $sr_linked == 1 ) { $tmp_pos = strpos( $events_array[$event_id]["event_env"], "SRURL=" ) ; $tmp_srurl = "" ; if ( $tmp_pos !== false ) { $tmp_evenvs = explode( ';', $events_array[$event_id]["event_env"] ) ; $tmp_evenv_kv = array() ; foreach ( $tmp_evenvs as $evenv ) { $tmp_env_kv = explode('=', $evenv, 2 ) ; $tmp_evenv_kv[$tmp_env_kv[0]] = $tmp_env_kv[1] ; if ( $tmp_env_kv[0] == "SRURL" ) { $tmp_srurl = $tmp_env_kv[1] ; $tmp_srurl = preg_replace( '/"/', '', $tmp_srurl ) ; break ; } } $srlnkstr= sprintf('SRページ', $tmp_srurl ) ; } else { $srlnkstr= sprintf('SRページ', $event_id ) ; } } if ( $is_dmy == 0 ) { $szrtn= sprintf('%s%s%s', $base_host, $event_id_out_block, $event_id_out_block, $ev_title, $event_id_out_block, $ev_period, $srlnkstr ) ; } else { ### dmy not has puimg class $szrtn= sprintf('%s%s%s', $event_id_out_block, $ev_title, $ev_period, $srlnkstr ) ; } return $szrtn ; } function puts_subgiftevent( $event_id, $events_array, $with_period, $short_title = "", $sr_linked = 0, $is_dmy = 0 ) { global $base_host ; global $dmyevents ; $events_array = $dmyevents ; /// Note: gift_ranking event registerd like #major_debut_sf/gift_ranking/29665 $ev_endstr = $events_array[$event_id]["event_end"] ; $ev_endstr = preg_replace( '/^[0-9][0-9][0-9][0-9]\//', "", $ev_endstr ) ; if ( $short_title != "" ) { $ev_title = $short_title ; } else { $ev_title = $events_array[$event_id]["event_title"] ; // $ev_title = preg_replace( '/^(【[^】][^】]*】).*$/', "$1", $ev_title ) ; // $ev_title = preg_replace( '/^(【[^】]+】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(【.*】).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^(《.*》).*$/', "$1", $ev_title ) ; $ev_title = preg_replace( '/^([^:]*):.*$/', "$1", $ev_title ) ; } if ( $with_period == 1 ) { $ev_period = sprintf( " (%s~%s) ", $events_array[$event_id]["event_start"], $ev_endstr ) ; } else { $ev_period = " " ; } $event_id_base = preg_replace( '/^([^\/]*)\/*$/', "$1", $event_id ) ; $event_id_out_block = preg_replace( '/\//', "-_-", $event_id ) ; $event_id_out_direct = preg_replace( '/-_-block_ranking/', "", $event_id_out_block ) ; $srlnkstr="" ; if ( $sr_linked == 1 ) { $tmp_pos = strpos( $events_array[$event_id]["event_env"], "SRURL=" ) ; $tmp_srurl = "" ; if ( $tmp_pos !== false ) { $tmp_evenvs = explode( ';', $events_array[$event_id]["event_env"] ) ; $tmp_evenv_kv = array() ; foreach ( $tmp_evenvs as $evenv ) { $tmp_env_kv = explode('=', $evenv, 2 ) ; $tmp_evenv_kv[$tmp_env_kv[0]] = $tmp_env_kv[1] ; if ( $tmp_env_kv[0] == "SRURL" ) { $tmp_srurl = $tmp_env_kv[1] ; $tmp_srurl = preg_replace( '/"/', '', $tmp_srurl ) ; break ; } } $srlnkstr= sprintf('SRページ', $tmp_srurl ) ; } else { $srlnkstr= sprintf('SRページ', $event_id ) ; } } if ( $is_dmy == 0 ) { // $szrtn= sprintf('%s%s%s', $szrtn= sprintf('%s%s%s', $base_host, $event_id_out_block, $event_id_out_block, $ev_title, $ev_period, $srlnkstr ) ; } else { ### dmy not has puimg class $szrtn= sprintf('%s%s%s', $event_id_out_block, $ev_title, $ev_period, $srlnkstr ) ; } return $szrtn ; } ?>
ここでは、SHOWROOM で開催されるイベントのポイント推移グラフと数値データを公開しています。 リアルタイム(約5分毎更新)でのポイントの推移をグラフでご覧いただき、どういった時間帯・曜日・配信内容を行った場合にどういうポイント推移をしたのか、などの傾向分析もできてタイムテーブル作成時の参考にもなるかと思いますので、有効活用していただけましたら幸いです。 (当サイト運営者はSHOWROOM社とは全く関係がありませんので、このサイトにルーム間の(過度の)競争・課金を煽る意図は一切ありません。寧ろ、昨今 目に余る、不必要なまでにスタート~決勝・本選まで分割したイベント(敗者復活イベントを別トーナメントにして更に数戦に分割するまでありますよね…)、無闇と枠を分割して枠数を稼いでいるイベント、敗者復活を含め配信者を疲弊させる長期間にわたるイベント等の増加は如何なものかと思っています。当サイトがそういう過競争を助長するという事であれば、早々に閉鎖させて頂く所存です) ○長いイベントが増えてきて見辛く、またページ表示に時間がかかるようになってきたので、<details>タグによる折りたたみ機能を利用する事に致しました。これにより、これまでページ内検索でピックアップできていたイベントが、必要な部分の折りたたみを展開しないとピックアップできなくなりました。過去ログ検索機能はいずれ実装する予定なのですが、それまではお手数をお掛け致して申し訳ないのですが折りたたみを展開して検索して頂けますよう、お願い致します。(2020.08.05) ※プレミアムライブについてですが、その性質上、プレミアムライブ配信中(~次回の通常ライブ配信まで?)はポイントデータが取得できません。イベント期間中にプレミアムライブを実施した場合、ポイントデータが取得できなくなったり異常値となる可能性が有りますので、予めご了承ください。--- 序文等
※各グラフは最後に取得できたポイントを元に描画されておりますので、グラフ上に表示されている順位は暫定順位とは異なります。暫定順位はSRページ(公式ページ)でご確認ください。
※当サイトでは過去のSRの結果発表経緯をふまえ、イベント終了~翌日 12:00 頃まで最終取得ポイント・順位で表示(≠暫定順位)、同 12:00 ~ 12:11 頃に(暫定的)確定発表データでの表示に切り替え、同12:36 頃に最終確定表示として更新を停止しています。
(開始日時はSRの設定上のデータの通りで、何故かこのイベントは 00分ではなく、09分開始になっています)
(流石に重くなってきたので任意読み込みに致しました)