From 1c40093f82966092f7b31209828430a73ea07931 Mon Sep 17 00:00:00 2001 From: Hiroshiba Date: Fri, 6 Oct 2023 18:00:13 +0900 Subject: [PATCH] Updates --- ...389603b2d9e852aa88-760e36e5d477befc5250.js | 2 + ...03b2d9e852aa88-760e36e5d477befc5250.js.map | 1 + 404.html | 2 +- 404/index.html | 2 +- _gatsby/slices/_gatsby-scripts-1.html | 2 +- _headers.json | 2 +- assets-manifest.json | 9 ++-- ...ages-index-tsx-10ff1acecaba3ffb822d.js.map | 2 +- ...d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js | 2 + ...444cca9f42ccc6-4d5666bfc3a739ffb85c.js.map | 1 + dormitory/aierutan/index.html | 4 +- dormitory/amehare_hau/index.html | 4 +- dormitory/aoyama_ryusei/index.html | 4 +- dormitory/call_names/index.html | 4 +- dormitory/chibishikiji/index.html | 4 +- dormitory/chugoku_usagi/index.html | 4 +- dormitory/goki/index.html | 4 +- dormitory/haruka_nana/index.html | 4 +- dormitory/horinaito_benizakura/index.html | 4 +- dormitory/index.html | 4 +- dormitory/kasukabe_tsumugi/index.html | 4 +- dormitory/kenzaki_mesuo/index.html | 4 +- dormitory/kigashima_sourin/index.html | 4 +- dormitory/kotoyomi_nia/index.html | 4 +- dormitory/kurita_maron/index.html | 4 +- dormitory/kurono_takehiro/index.html | 4 +- dormitory/kyushu_sora/index.html | 4 +- dormitory/manbetsu_hanamaru/index.html | 4 +- dormitory/meimei_himari/index.html | 4 +- dormitory/mochikosan/index.html | 4 +- dormitory/namine_ritsu/index.html | 4 +- dormitory/nekotsuka_aru/index.html | 4 +- dormitory/nekotsuka_bi/index.html | 4 +- dormitory/number_seven/index.html | 4 +- dormitory/nurserobo_typet/index.html | 4 +- dormitory/ouka_miko/index.html | 4 +- dormitory/sayo/index.html | 4 +- dormitory/shikoku_metan/index.html | 4 +- dormitory/shirakami_kotarou/index.html | 4 +- dormitory/wakamatsu_akashi/index.html | 4 +- dormitory/white_cul/index.html | 4 +- dormitory/zundamon/index.html | 4 +- how_to_use/index.html | 52 +++++++++---------- index.html | 4 +- page-data/app-data.json | 2 +- page-data/sq/d/2556604404.json | 2 +- page-data/sq/d/4236442321.json | 2 +- product/aierutan/index.html | 6 +-- product/amehare_hau/index.html | 4 +- product/aoyama_ryusei/index.html | 4 +- product/chibishikiji/index.html | 4 +- product/chugoku_usagi/index.html | 4 +- product/goki/index.html | 4 +- product/haruka_nana/index.html | 4 +- product/horinaito_benizakura/index.html | 4 +- product/kasukabe_tsumugi/index.html | 4 +- product/kenzaki_mesuo/index.html | 4 +- product/kigashima_sourin/index.html | 4 +- product/kotoyomi_nia/index.html | 6 +-- product/kurita_maron/index.html | 6 +-- product/kurono_takehiro/index.html | 4 +- product/kyushu_sora/index.html | 4 +- product/manbetsu_hanamaru/index.html | 6 +-- product/meimei_himari/index.html | 4 +- product/mochikosan/index.html | 4 +- product/namine_ritsu/index.html | 4 +- product/nekotsuka_aru/index.html | 4 +- product/nekotsuka_bi/index.html | 4 +- product/number_seven/index.html | 4 +- product/nurserobo_typet/index.html | 4 +- product/ouka_miko/index.html | 4 +- product/sayo/index.html | 4 +- product/shikoku_metan/index.html | 4 +- product/shirakami_kotarou/index.html | 4 +- product/wakamatsu_akashi/index.html | 4 +- product/white_cul/index.html | 4 +- product/zundamon/index.html | 4 +- qa/index.html | 4 +- .../linuxInstallNvidia.sh | 41 +++++++++++++++ .../linuxInstallCpu.sh | 41 +++++++++++++++ term/index.html | 4 +- update_history/index.html | 4 +- webpack-runtime-c0c962b82cb49a55df5c.js | 2 + webpack-runtime-c0c962b82cb49a55df5c.js.map | 1 + webpack.stats.json | 2 +- 85 files changed, 268 insertions(+), 174 deletions(-) create mode 100644 026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js create mode 100644 026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js.map create mode 100644 d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js create mode 100644 d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js.map create mode 100644 static/4ce73278d6843ac53e009a4b45bff72a/linuxInstallNvidia.sh create mode 100644 static/fc70af03e46d5bd83329e61236a9cd3d/linuxInstallCpu.sh create mode 100644 webpack-runtime-c0c962b82cb49a55df5c.js create mode 100644 webpack-runtime-c0c962b82cb49a55df5c.js.map diff --git a/026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js b/026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js new file mode 100644 index 000000000..81fe371ae --- /dev/null +++ b/026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkvoicevox_blog=self.webpackChunkvoicevox_blog||[]).push([[331],{3204:function(e){const a=/[\p{Lu}]/u,r=/[\p{Ll}]/u,l=/^[\p{Lu}](?![\p{Lu}])/gu,i=/([\p{Alpha}\p{N}_]|$)/u,t=/[_.\- ]+/,o=new RegExp("^"+t.source),n=new RegExp(t.source+i.source,"gu"),s=new RegExp("\\d+"+i.source,"gu"),c=(e,i)=>{if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");if(i={pascalCase:!1,preserveConsecutiveUppercase:!1,...i},0===(e=Array.isArray(e)?e.map((e=>e.trim())).filter((e=>e.length)).join("-"):e.trim()).length)return"";const t=!1===i.locale?e=>e.toLowerCase():e=>e.toLocaleLowerCase(i.locale),c=!1===i.locale?e=>e.toUpperCase():e=>e.toLocaleUpperCase(i.locale);if(1===e.length)return i.pascalCase?c(e):t(e);return e!==t(e)&&(e=((e,l,i)=>{let t=!1,o=!1,n=!1;for(let s=0;s(l.lastIndex=0,e.replace(l,(e=>a(e)))))(e,t):t(e),i.pascalCase&&(e=c(e.charAt(0))+e.slice(1)),((e,a)=>(n.lastIndex=0,s.lastIndex=0,e.replace(n,((e,r)=>a(r))).replace(s,(e=>a(e)))))(e,c)};e.exports=c,e.exports.default=c},8032:function(e,a,r){r.d(a,{G:function(){return j},L:function(){return y},M:function(){return k},P:function(){return U},S:function(){return M},_:function(){return n},a:function(){return o},b:function(){return d},d:function(){return u},e:function(){return m},g:function(){return b},h:function(){return s}});var l=r(7294),i=(r(3204),r(5697)),t=r.n(i);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var a=1;a=0||(i[r]=e[r]);return i}const s=()=>"undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;const c=e=>{var a;return(e=>{var a,r;return Boolean(null==e||null==(a=e.images)||null==(r=a.fallback)?void 0:r.src)})(e)?e:(e=>Boolean(null==e?void 0:e.gatsbyImageData))(e)?e.gatsbyImageData:(e=>Boolean(null==e?void 0:e.gatsbyImage))(e)?e.gatsbyImage:null==e||null==(a=e.childImageSharp)?void 0:a.gatsbyImageData},u=e=>{var a,r,l;return null==(a=c(e))||null==(r=a.images)||null==(l=r.fallback)?void 0:l.src},m=e=>{var a,r,l;return null==(a=c(e))||null==(r=a.images)||null==(l=r.fallback)?void 0:l.srcSet};function p(e,a,r){const l={};let i="gatsby-image-wrapper";return"fixed"===r?(l.width=e,l.height=a):"constrained"===r&&(i="gatsby-image-wrapper gatsby-image-wrapper-constrained"),{className:i,"data-gatsby-image-wrapper":"",style:l}}function d(e,a,r,l,i){return void 0===i&&(i={}),o({},r,{loading:l,shouldLoad:e,"data-main-image":"",style:o({},i,{opacity:a?1:0})})}function b(e,a,r,l,i,t,n,s){const c={};t&&(c.backgroundColor=t,"fixed"===r?(c.width=l,c.height=i,c.backgroundColor=t,c.position="relative"):("constrained"===r||"fullWidth"===r)&&(c.position="absolute",c.top=0,c.left=0,c.bottom=0,c.right=0)),n&&(c.objectFit=n),s&&(c.objectPosition=s);const u=o({},e,{"aria-hidden":!0,"data-placeholder-image":"",style:o({opacity:a?0:1,transition:"opacity 500ms linear"},c)});return u}const h=["children"],v=function(e){let{layout:a,width:r,height:i}=e;return"fullWidth"===a?l.createElement("div",{"aria-hidden":!0,style:{paddingTop:i/r*100+"%"}}):"constrained"===a?l.createElement("div",{style:{maxWidth:r,display:"block"}},l.createElement("img",{alt:"",role:"presentation","aria-hidden":"true",src:"data:image/svg+xml;charset=utf-8,%3Csvg%20height='"+i+"'%20width='"+r+"'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E",style:{maxWidth:"100%",display:"block",position:"static"}})):null},y=function(e){let{children:a}=e,r=n(e,h);return l.createElement(l.Fragment,null,l.createElement(v,o({},r)),a,null)},g=["src","srcSet","loading","alt","shouldLoad"],f=["fallback","sources","shouldLoad"],z=function(e){let{src:a,srcSet:r,loading:i,alt:t="",shouldLoad:s}=e,c=n(e,g);return l.createElement("img",o({},c,{decoding:"async",loading:i,src:s?a:void 0,"data-src":s?void 0:a,srcSet:s?r:void 0,"data-srcset":s?void 0:r,alt:t}))},C=function(e){let{fallback:a,sources:r=[],shouldLoad:i=!0}=e,t=n(e,f);const s=t.sizes||(null==a?void 0:a.sizes),c=l.createElement(z,o({},t,a,{sizes:s,shouldLoad:i}));return r.length?l.createElement("picture",null,r.map((e=>{let{media:a,srcSet:r,type:t}=e;return l.createElement("source",{key:a+"-"+t+"-"+r,type:t,media:a,srcSet:i?r:void 0,"data-srcset":i?void 0:r,sizes:s})})),c):c};var I;z.propTypes={src:i.string.isRequired,alt:i.string.isRequired,sizes:i.string,srcSet:i.string,shouldLoad:i.bool},C.displayName="Picture",C.propTypes={alt:i.string.isRequired,shouldLoad:i.bool,fallback:i.exact({src:i.string.isRequired,srcSet:i.string,sizes:i.string}),sources:i.arrayOf(i.oneOfType([i.exact({media:i.string.isRequired,type:i.string,sizes:i.string,srcSet:i.string.isRequired}),i.exact({media:i.string,type:i.string.isRequired,sizes:i.string,srcSet:i.string.isRequired})]))};const w=["fallback"],U=function(e){let{fallback:a}=e,r=n(e,w);return a?l.createElement(C,o({},r,{fallback:{src:a},"aria-hidden":!0,alt:""})):l.createElement("div",o({},r))};U.displayName="Placeholder",U.propTypes={fallback:i.string,sources:null==(I=C.propTypes)?void 0:I.sources,alt:function(e,a,r){return e[a]?new Error("Invalid prop `"+a+"` supplied to `"+r+"`. Validation failed."):null}};const k=function(e){return l.createElement(l.Fragment,null,l.createElement(C,o({},e)),l.createElement("noscript",null,l.createElement(C,o({},e,{shouldLoad:!0}))))};k.displayName="MainImage",k.propTypes=C.propTypes;const N=["as","className","class","style","image","loading","imgClassName","imgStyle","backgroundColor","objectFit","objectPosition"],A=["style","className"],S=e=>e.replace(/\n/g,""),E=function(e,a,r){for(var l=arguments.length,i=new Array(l>3?l-3:0),o=3;oJSON.stringify(i.images)),[i.images]);m&&(u=m);const N=function(e,a,r){let l="";return"fullWidth"===e&&(l=''),"constrained"===e&&(l='
"),l}(f,y,g);return(0,l.useEffect)((()=>{_||(_=r.e(731).then(r.bind(r,6731)).then((e=>{let{renderImageToString:a,swapPlaceholderImage:r}=e;return D=a,{renderImageToString:a,swapPlaceholderImage:r}})));const e=U.current.querySelector("[data-gatsby-image-ssr]");if(e&&s())return e.complete?(null==d||d({wasCached:!0}),null==b||b({wasCached:!0}),setTimeout((()=>{e.removeAttribute("data-gatsby-image-ssr")}),0)):(null==d||d({wasCached:!0}),e.addEventListener("load",(function a(){e.removeEventListener("load",a),null==b||b({wasCached:!0}),setTimeout((()=>{e.removeAttribute("data-gatsby-image-ssr")}),0)}))),void T.add(k);if(D&&T.has(k))return;let a,l;return _.then((e=>{let{renderImageToString:r,swapPlaceholderImage:n}=e;U.current&&(U.current.innerHTML=r(o({isLoading:!0,isLoaded:T.has(k),image:i},v)),T.has(k)||(a=requestAnimationFrame((()=>{U.current&&(l=n(U.current,k,T,t,d,b,h))}))))})),()=>{a&&cancelAnimationFrame(a),l&&l()}}),[i]),(0,l.useLayoutEffect)((()=>{T.has(k)&&D&&(U.current.innerHTML=D(o({isLoading:T.has(k),isLoaded:T.has(k),image:i},v)),null==d||d({wasCached:!0}),null==b||b({wasCached:!0}))}),[i]),(0,l.createElement)(a,o({},w,{style:o({},C,t,{backgroundColor:c}),className:I+(u?" "+u:""),ref:U,dangerouslySetInnerHTML:{__html:N},suppressHydrationWarning:!0}))},j=(0,l.memo)((function(e){return e.image?(0,l.createElement)(O,e):null}));j.propTypes=x,j.displayName="GatsbyImage";const W=["src","__imageData","__error","width","height","aspectRatio","tracedSVGOptions","placeholder","formats","quality","transformOptions","jpgOptions","pngOptions","webpOptions","avifOptions","blurredOptions","breakpoints","outputPixelDensities"];function B(e){return function(a){let{src:r,__imageData:i,__error:t}=a,s=n(a,W);return t&&console.warn(t),i?l.createElement(e,o({image:i},s)):(console.warn("Image not loaded",r),null)}}const Y=B((function(e){let{as:a="div",className:r,class:i,style:t,image:s,loading:c="lazy",imgClassName:u,imgStyle:m,backgroundColor:h,objectFit:v,objectPosition:g}=e,f=n(e,N);if(!s)return console.warn("[gatsby-plugin-image] Missing image prop"),null;i&&(r=i),m=o({objectFit:v,objectPosition:g,backgroundColor:h},m);const{width:z,height:C,layout:I,images:w,placeholder:E,backgroundColor:x}=s,L=p(z,C,I),{style:F,className:T}=L,_=n(L,A),D={fallback:void 0,sources:[]};return w.fallback&&(D.fallback=o({},w.fallback,{srcSet:w.fallback.srcSet?S(w.fallback.srcSet):void 0})),w.sources&&(D.sources=w.sources.map((e=>o({},e,{srcSet:S(e.srcSet)})))),l.createElement(a,o({},_,{style:o({},F,t,{backgroundColor:h}),className:T+(r?" "+r:"")}),l.createElement(y,{layout:I,width:z,height:C},l.createElement(U,o({},b(E,!1,I,z,C,x,v,g))),l.createElement(k,o({"data-gatsby-image-ssr":"",className:u},f,d("eager"===c,!1,D,c,m)))))})),V=function(e,a){for(var r=arguments.length,l=new Array(r>2?r-2:0),i=2;i{if(void 0!==e.layout&&!R.has(e.layout))return new Error("Invalid value "+e.layout+'" provided for prop "layout". Defaulting to "constrained". Valid values are "fixed", "fullWidth" or "constrained".')}};Y.displayName="StaticImage",Y.propTypes=q;const M=B(j);M.displayName="StaticImage",M.propTypes=q},4484:function(e,a,r){r.d(a,{H:function(){return t}});var l=r(1883),i=r(7294);const t=()=>{const e=(0,l.useStaticQuery)("1426492921"),{getCharacterInfo:a}=(()=>{const e=(0,l.useStaticQuery)("1712426221");return{getCharacterInfo:(0,i.useCallback)((a=>e.character.nodes.find((e=>e.key===a))),[e])}})(),r={"四国めたん":[{name:"ノーマル",id:"normal"},{name:"あまあま",id:"ama"},{name:"ツンツン",id:"tsun"},{name:"セクシー",id:"sexy"},{name:"ささやき",id:"whis"},{name:"ヒソヒソ",id:"hiso"}],"ずんだもん":[{name:"ノーマル",id:"normal"},{name:"あまあま",id:"ama"},{name:"ツンツン",id:"tsun"},{name:"セクシー",id:"sexy"},{name:"ささやき",id:"whis"},{name:"ヒソヒソ",id:"hiso"}],"春日部つむぎ":[{name:"ノーマル",id:"normal"}],"雨晴はう":[{name:"ノーマル",id:"normal"}],"波音リツ":[{name:"ノーマル",id:"normal"},{name:"クイーン",id:"queen"}],"玄野武宏":[{name:"ノーマル",id:"normal"},{name:"喜び",id:"fun"},{name:"ツンギレ",id:"angry"},{name:"悲しみ",id:"sad"}],"白上虎太郎":[{name:"ふつう",id:"normal"},{name:"わーい",id:"joy"},{name:"おこ",id:"angry"},{name:"びくびく",id:"biku"},{name:"びえーん",id:"cry"}],"青山龍星":[{name:"ノーマル",id:"normal"}],"冥鳴ひまり":[{name:"ノーマル",id:"normal"}],"九州そら":[{name:"ノーマル",id:"normal"},{name:"あまあま",id:"ama"},{name:"ツンツン",id:"tsun"},{name:"セクシー",id:"sexy"},{name:"ささやき",id:"whis"}],"モチノキョウコ":[{name:"ノーマル",id:"normal"},{name:"セクシー/あん子",id:"sexy"}],"剣崎雌雄":[{name:"ノーマル",id:"normal"}],WhiteCUL:[{name:"ノーマル",id:"normal"},{name:"たのしい",id:"joy"},{name:"かなしい",id:"sad"},{name:"びえーん",id:"cry"}],"後鬼":[{name:"人間ver.",id:"normal"},{name:"ぬいぐるみver.",id:"nuigurumi"}],No7:[{name:"ノーマル",id:"normal"},{name:"アナウンス",id:"announce"},{name:"読み聞かせ",id:"reading"}],"ちび式じい":[{name:"ノーマル",id:"normal"}],"櫻歌ミコ":[{name:"ノーマル",id:"normal"},{name:"第二形態",id:"2nd"},{name:"ロリ",id:"loli"}],"小夜_SAYO":[{name:"ノーマル",id:"normal"}],"ナースロボ_タイプT":[{name:"ノーマル",id:"normal"},{name:"楽々",id:"fun"},{name:"恐怖",id:"fear"},{name:"内緒話",id:"whis"}],"聖騎士紅桜":[{name:"ノーマル",id:"normal"}],"雀松朱司":[{name:"ノーマル",id:"normal"}],"麒ヶ島宗麟":[{name:"ノーマル",id:"normal"}],"春歌ナナ":[{name:"ノーマル",id:"normal"}],"猫使アル":[{name:"ノーマル",id:"normal"},{name:"おちつき",id:"ochitsuki"},{name:"うきうき",id:"fun"}],"猫使ビィ":[{name:"ノーマル",id:"normal"},{name:"おちつき",id:"ochitsuki"},{name:"人見知り",id:"shy"}],"中国うさぎ":[{name:"ノーマル",id:"normal"},{name:"おどろき",id:"surprise"},{name:"こわがり",id:"fear"},{name:"へろへろ",id:"tired"}],"栗田まろん":[{name:"ノーマル",id:"normal"}],"藍田ノエル":[{name:"ノーマル",id:"normal"}],"満別花丸":[{name:"ノーマル",id:"normal"},{name:"元気",id:"fun"},{name:"ささやき",id:"whis"},{name:"ぶりっ子",id:"cute"},{name:"ボーイ",id:"boy"}],"琴詠ニア":[{name:"ノーマル",id:"normal"}]},t=a=>{var l,i,t,o;let n=e.dormitoryAudio.nodes.filter((e=>e.name.includes(""+a.characterId))).sort(((e,a)=>e.name.localeCompare(a.name))).map((e=>e.publicURL));0==n.length&&(n=void 0);const s={bustupImageSmall:null===(l=e.bustup.nodes.find((e=>e.name==="bustup-"+a.characterId)).childImageSharp320px)||void 0===l?void 0:l.gatsbyImageData,bustupImage:null===(i=e.bustup.nodes.find((e=>e.name==="bustup-"+a.characterId)).childImageSharp640px)||void 0===i?void 0:i.gatsbyImageData,portraitImage:null===(t=e.portrait.nodes.find((e=>e.name==="portrait-"+a.characterId)).childImageSharp)||void 0===t?void 0:t.gatsbyImageData,ogpImage:null===(o=e.ogp.nodes.find((e=>e.name==="bustup-"+a.characterId)).childImageSharp)||void 0===o?void 0:o.gatsbyImageData,styleVoiceUrls:r[a.key].map((r=>({style:r.name,urls:e.styleAudio.nodes.filter((e=>e.name.includes(""+a.characterId))).filter((e=>e.name.includes(""+r.id))).sort(((e,a)=>e.name.localeCompare(a.name))).map((e=>e.publicURL))}))),dormitoryVoiceUrls:n,infoImages:e.dormitoryImage.nodes.filter((e=>e.name.includes(""+a.characterId))).sort(((e,a)=>e.name.localeCompare(a.name))).map((e=>{var a;return null===(a=e.childImageSharp)||void 0===a?void 0:a.gatsbyImageData}))};if(null==s.bustupImage)throw new Error("bustupImage is undefined. "+a.characterId);if(null==s.portraitImage)throw new Error("portraitImage is undefined. "+a.characterId);if(null==s.ogpImage)throw new Error("ogpImage is undefined. "+a.characterId);if(0==s.styleVoiceUrls.length&&console.warn("styleVoiceUrls is empty. "+a.characterId),s.styleVoiceUrls.some((e=>3!=e.urls.length)))throw new Error("styleVoiceUrls is invalid. "+a.characterId);return null!=s.dormitoryVoiceUrls&&0==s.dormitoryVoiceUrls.length&&console.warn("dormitoryVoiceUrls is empty. "+a.characterId),s},n={"四国めたん":{name:a("四国めたん").name,id:a("四国めたん").characterId,...t(a("四国めたん")),rubyName:"四国(しこく)めたん",voiceFeature:"はっきりした芯のある声",color:"#DF4C94",lightColor:"#E3ADD5",description:"高等部二年生。常に金欠。趣味は中二病妄想。
誰にでも遠慮しないので、基本的にタメ口。",labelInfos:[{label:"年齢",value:"17 歳",size:1},{label:"身長",value:"150 cm",size:1},{label:"性格",value:"若干ツンデレ気味",size:2}],policyUrl:"https://zunko.jp/con_ongen_kiyaku.html",detailUrl:"https://zunko.jp/#charaSM"},"ずんだもん":{name:a("ずんだもん").name,id:a("ずんだもん").characterId,...t(a("ずんだもん")),rubyName:"ずんだもん",voiceFeature:"子供っぽい高めの声",color:"#33A65E",lightColor:"#CCEBC5",description:"ずんだ餅の精。やや不幸属性が備わっており、
ないがしろにされることもしばしば。",labelInfos:[{label:"趣味",value:"ずんだ餅にかかわることはだいたい好き",size:2},{label:"将来の夢",value:"ずんだ餅のさらなる普及",size:2}],policyUrl:"https://zunko.jp/con_ongen_kiyaku.html",detailUrl:"https://zunko.jp/#charaZM"},"春日部つむぎ":{name:a("春日部つむぎ").name,id:a("春日部つむぎ").characterId,...t(a("春日部つむぎ")),rubyName:"春日部(かすかべ)つむぎ",voiceFeature:"元気な明るい声",color:"#FF9914",lightColor:"#FEE6AA",description:"埼玉県内の高校に通うギャルの女の子。
やんちゃに見えて実は真面目な一面もある。",labelInfos:[{label:"年齢",value:"18 歳",size:1},{label:"身長",value:"155 cm",size:1},{label:"出身",value:"埼玉",size:1},{label:"好きなもの",value:"カレー",size:1},{label:"チャームポイント",value:"目元のほくろ",size:2},{label:"趣味",value:"動画配信サイトの巡回",size:2}],policyUrl:"https://tsumugi-official.studio.site/rule",detailUrl:"https://tsumugi-official.studio.site/top"},"雨晴はう":{name:a("雨晴はう").name,id:a("雨晴はう").characterId,...t(a("雨晴はう")),rubyName:"雨晴(あめはれ)はう",voiceFeature:"優しく可愛い声",color:"#1D86AE",lightColor:"#B3D7DD",description:"現役看護師です!
看護師のあれこれお伝えします!",labelInfos:[{label:"誕生日",value:"10月30日",size:1},{label:"身長",value:"152 cm",size:1},{label:"色",value:"#28c4ec",size:1},{label:"CV",value:"結崎このみ",size:1},{label:"好きなもの",value:"ラーメン",size:2},{label:"趣味",value:"食べ歩き",size:2}],policyUrl:"https://amehau.com/?page_id=225",detailUrl:"https://amehau.com/"},"波音リツ":{name:a("波音リツ").name,id:a("波音リツ").characterId,...t(a("波音リツ")),rubyName:"波音(なみね)リツ",voiceFeature:"低めのクールな声",color:"#FC4E32",lightColor:"#FDCDB7",description:"地獄のような安価を踏み抜いて生まれた、
2ch・VIP発のキャラクター。",labelInfos:[{label:"年齢",value:"6 歳",size:2},{label:"身長",value:"156 cm",size:2},{label:"体重",value:"25 トン",size:2},{label:"好きなもの",value:"チョコクリスピー",size:2}],policyUrl:"http://canon-voice.com/kiyaku.html",detailUrl:"https://www.canon-voice.com/"},"玄野武宏":{name:a("玄野武宏").name,id:a("玄野武宏").characterId,...t(a("玄野武宏")),rubyName:"玄野(くろの)武宏(たけひろ)",voiceFeature:"爽やかな青年の声",color:"#1AA18E",lightColor:"#B3E2D8",description:"サッパリした青年。
やや短気だが面倒見は良い。",labelInfos:[{label:"身長",value:"177 cm",size:2},{label:"体重",value:"66 kg",size:2},{label:"年齢",value:"20代前後",size:2},{label:"誕生日",value:"12月24日",size:2}],policyUrl:"https://virvoxproject.wixsite.com/official/voicevoxの利用規約",detailUrl:"https://virvoxproject.wixsite.com/official/玄野武宏"},"白上虎太郎":{name:a("白上虎太郎").name,id:a("白上虎太郎").characterId,...t(a("白上虎太郎")),rubyName:"白上(しらかみ)虎太郎(こたろう)",voiceFeature:"声変わり直後の少年の声",color:"#99D02B",lightColor:"#E6F5B0",description:"まっすぐで人懐っこい青年。
愛嬌はあるものの少しおばか。",labelInfos:[{label:"身長",value:"146 cm",size:2},{label:"体重",value:"42 kg",size:2},{label:"年齢",value:"18 歳",size:2},{label:"誕生日",value:"秋生まれ",size:2}],policyUrl:"https://virvoxproject.wixsite.com/official/voicevoxの利用規約",detailUrl:"https://virvoxproject.wixsite.com/official/白上虎太郎"},"青山龍星":{name:a("青山龍星").name,id:a("青山龍星").characterId,...t(a("青山龍星")),rubyName:"青山(あおやま)龍星(りゅうせい)",voiceFeature:"重厚で低音な声",color:"#386CB0",lightColor:"#B3CDE3",description:"とにかく大柄で無骨な青年。
寡黙で冷静なストッパー枠。",labelInfos:[{label:"身長",value:"194 cm",size:2},{label:"体重",value:"94 kg",size:2},{label:"年齢",value:"24 歳",size:2},{label:"誕生日",value:"春生まれ",size:2}],policyUrl:"https://virvoxproject.wixsite.com/official/voicevoxの利用規約",detailUrl:"https://virvoxproject.wixsite.com/official/青山龍星"},"冥鳴ひまり":{name:a("冥鳴ひまり").name,id:a("冥鳴ひまり").characterId,...t(a("冥鳴ひまり")),rubyName:"冥鳴(めいめい)ひまり",voiceFeature:"柔らかく温かい声",color:"#A45AAA",lightColor:"#CAB2D6",description:"冥界から来た死神。
可愛いものに目がない。",labelInfos:[{label:"年齢",value:"18 歳",size:1},{label:"種族",value:"死神",size:1},{label:"誕生日",value:"9月1日",size:1},{label:"好きな日本語",value:"不渡り",size:1},{label:"好きなもの",value:"可愛い女の子",size:2},{label:"性格",value:"優しくて清楚(自称)",size:2}],policyUrl:"https://meimeihimari.wixsite.com/himari/terms-of-use",detailUrl:"https://meimeihimari.wixsite.com/himari/voicevox"},"九州そら":{name:a("九州そら").name,id:a("九州そら").characterId,...t(a("九州そら")),rubyName:"九州(きゅうしゅう)そら",voiceFeature:"気品のある大人な声",color:"#6964AD",lightColor:"#B2B6D8",description:"宇宙開拓用に開発されたアンドロイド。
正式名称は「九州そらmk=II」(まーくつー)。",labelInfos:[{label:"年齢",value:"0 歳(外見年齢は17歳)",size:2},{label:"身長",value:"173 cm(ヒールなしだと160cm)",size:2}],policyUrl:"https://zunko.jp/con_ongen_kiyaku.html",detailUrl:"https://zunko.jp/#charaKS2"},"モチノキョウコ":{name:a("モチノキョウコ").name,id:a("モチノキョウコ").characterId,...t(a("モチノキョウコ")),rubyName:"もち()さん",voiceFeature:"明瞭で穏やかな声",color:"#1D86AE",lightColor:"#B3D7DD",description:"小さい背丈で頑張る君を応援!
福島県生まれのプラモ好き犬系ヲタ娘です",labelInfos:[{label:"本名",value:"モチノ・キョウコ",size:1},{label:"CV",value:"明日葉よもぎ",size:1},{label:"相棒(?)",value:"あん子ちゃん",size:1},{label:"身長",value:"142 cm",size:1}],policyUrl:"https://vtubermochio.wixsite.com/mochizora/利用規約",detailUrl:"https://vtubermochio.wixsite.com/mochizora/もち子さんとは-設定資料"},"剣崎雌雄":{name:a("剣崎雌雄").name,id:a("剣崎雌雄").characterId,...t(a("剣崎雌雄")),rubyName:"剣崎(けんざき)雌雄(めすお)",voiceFeature:"安心感のある落ち着いた声",color:"#33A65E",lightColor:"#CCEBC5",description:"メスお兄さんじゃねえ!メスのお兄さんだ!
(人類滅亡を目論む医療用メスの付喪神)",labelInfos:[{label:"種族",value:"医療用メス(付喪神)",size:2},{label:"好物",value:"人間のクソデカ感情・砥石",size:2},{label:"身長",value:"2m超",size:1},{label:"誕生日",value:"7月7日",size:1},{label:"目的",value:"人類滅亡",size:1},{label:"年齢",value:"3600 歳",size:1}],policyUrl:"https://frontier.creatia.cc/fanclubs/413/posts/4507",detailUrl:"https://frontier.creatia.cc/fanclubs/413/posts/4507"},WhiteCUL:{name:a("WhiteCUL").name,id:a("WhiteCUL").characterId,...t(a("WhiteCUL")),rubyName:"WhiteCUL(ほわいとかる)",voiceFeature:"聞き心地のよい率直な声",color:"#1D86AE",lightColor:"#B3D7DD",description:"CULの姉。風雪月花四姉妹の雪。冷静に見えるが、
実は小心者のクールビューティー。",labelInfos:[{label:"年齢",value:"20 歳",size:1},{label:"身長",value:"165 cm",size:1},{label:"体重",value:"内緒",size:1},{label:"誕生日",value:"9月30日",size:1},{label:"愛称",value:"雪さん",size:1},{label:"相棒",value:"雪おこじょ",size:1},{label:"好物",value:"バニラソフトクリーム",size:2}],policyUrl:"https://www.whitecul.com/guideline",detailUrl:"https://www.whitecul.com/"},"後鬼":{name:a("後鬼").name,id:a("後鬼").characterId,...t(a("後鬼")),rubyName:"後鬼(ごき)",voiceFeature:"包容力のある奥ゆかしい声",color:"#386CB0",lightColor:"#B3CDE3",description:"鬼っ子ハンターついなちゃんの式神。
人間態では色っぽい大人の女性の話し方になる。",labelInfos:[{label:"CV",value:"七海映子",size:1},{label:"年齢",value:"少なくとも1300歳以上",size:2},{label:"身長",value:"ヒール込みで170cm",size:2},{label:"体重",value:"スイカ2つ分(某部分が)",size:2}],policyUrl:"https://ついなちゃん.com/voicevox_terms/",detailUrl:"https://ついなちゃん.com/character/?goki"},No7:{name:a("No7").name,id:a("No7").characterId,...t(a("No7")),rubyName:"No.7(なんばーせぶん)",voiceFeature:"しっかりした凛々しい声",color:"#A45AAA",lightColor:"#CAB2D6",description:"正体がつかめない不思議な女性。
得意のメイクで複数の「顔」を持つ。",labelInfos:[{label:"年齢",value:"23 歳",size:1},{label:"身長",value:"165 cm",size:1},{label:"CV",value:"小岩井ことり",size:1},{label:"好きなもの",value:"子供",size:1},{label:"性格",value:"ミニマリストで部屋の明かりは蝋燭のみ",size:2},{label:"趣味",value:"かいわれ大根の栽培",size:2}],policyUrl:"https://voiceseven.com/#j0200",detailUrl:"https://voiceseven.com/"},"ちび式じい":{name:a("ちび式じい").name,id:a("ちび式じい").characterId,...t(a("ちび式じい")),rubyName:"ちび(しき)じい",voiceFeature:"親しみのある嗄れ声",color:"#1D86AE",lightColor:"#B3D7DD",description:"式じいに似た姿の小さい妖精さん。
世界各地に様々な個体が生息している。",labelInfos:[{label:"身長",value:"20 cm前後",size:1},{label:"CV",value:"こんぺえる",size:1},{label:"好きなもの",value:"ジャガイモ",size:1},{label:"種族",value:"ちび式じい",size:1}],policyUrl:"https://docs.google.com/presentation/d/1AcD8zXkfzKFf2ertHwWRwJuQXjNnijMxhz7AJzEkaI4",detailUrl:"https://shiki-rowen-taigen.com/%e5%88%a9%e7%94%a8%e8%a6%8f%e7%b4%84%e3%83%bb%e3%82%ac%e3%82%a4%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3/"},"櫻歌ミコ":{name:a("櫻歌ミコ").name,id:a("櫻歌ミコ").characterId,...t(a("櫻歌ミコ")),rubyName:"櫻歌(おうか)ミコ",voiceFeature:"かわいらしい少女の声",color:"#F9344C",lightColor:"#FBB4C4",description:"ニホンオオカミの女の子。
もうひとりのミコ(通称:第二ちゃん)がいる。",labelInfos:[{label:"年齢",value:"3.5 歳",size:1},{label:"身長",value:"135 cm",size:1},{label:"体重",value:"35 kg",size:1},{label:"誕生日",value:"12月24日",size:1},{label:"性格",value:"ガブデレ",size:1},{label:"持ち物",value:"りんご/骨",size:1},{label:"愛称",value:"みこみこ/第二ちゃん",size:2}],policyUrl:"https://voicevox35miko.studio.site/rule",detailUrl:"https://voicevox35miko.studio.site/"},"小夜_SAYO":{name:a("小夜_SAYO").name,id:a("小夜_SAYO").characterId,...t(a("小夜_SAYO")),rubyName:"小夜(さよ)/SAYO",voiceFeature:"和やかで温厚な声",color:"#FF6687",lightColor:"#FBB4C4",description:"おしゃべりがすきなねこの女の子。
おいしいものを与えると懐きやすい。",labelInfos:[{label:"誕生日",value:"9月29日",size:1},{label:"好きなもの",value:"缶詰",size:1},{label:"体長",value:"135 cm(猫耳を含む)",size:2}],policyUrl:"https://316soramegu.wixsite.com/sayo-official/guideline",detailUrl:"https://316soramegu.wixsite.com/sayo-official"},"ナースロボ_タイプT":{name:a("ナースロボ_タイプT").name,id:a("ナースロボ_タイプT").characterId,...t(a("ナースロボ_タイプT")),rubyName:"ナースロボ_タイプ(てぃー)",voiceFeature:"冷静で慎み深い声",color:"#FF9914",lightColor:"#FEE6AA",description:"医者に作られたナース形ロボット。
人格は少女と設定されている。",labelInfos:[{label:"年齢",value:"五ヶ月",size:1},{label:"誕生日",value:"12月3日",size:1},{label:"身長",value:"150~160 cm(パーツによる)",size:2},{label:"愛称",value:"TT",size:2},{label:"製造者",value:"そばの小型ロボット(医者)",size:2}],policyUrl:"https://www.krnr.top/rules",detailUrl:"https://www.krnr.top/blank"},"聖騎士紅桜":{name:a("聖騎士紅桜").name,id:a("聖騎士紅桜").characterId,...t(a("聖騎士紅桜")),rubyName:"聖騎士(ほーりーないと)紅桜(べにざくら)",voiceFeature:"快活でハキハキした声",color:"#F9344C",lightColor:"#FBB4C4",description:"黒き歴史を背負いし
孤高の聖騎士",labelInfos:[{label:"年齢",value:"永遠ノLv.14",size:1},{label:"誕生日",value:"1月22日",size:1},{label:"種族",value:"聖騎士",size:1},{label:"好きなもの",value:"戦い",size:1},{label:"チャームポイント",value:"鎧に着いた返り血",size:2},{label:"相棒",value:"聖剣「紅」(クリムゾン)",size:2}],policyUrl:"https://commons.nicovideo.jp/material/nc296132",detailUrl:"https://commons.nicovideo.jp/material/nc296132"},"雀松朱司":{name:a("雀松朱司").name,id:a("雀松朱司").characterId,...t(a("雀松朱司")),rubyName:"雀松(わかまつ)朱司(あかし)",voiceFeature:"物静かで安定した声",color:"#FC4E32",lightColor:"#FDCDB7",description:"温厚なしっかり者の青年。
ちょっぴり天然で抜けている面も・・・。",labelInfos:[{label:"身長",value:"182 cm",size:1},{label:"体重",value:"68 kg",size:1},{label:"年齢",value:"26 歳",size:1},{label:"誕生日",value:"7月17日",size:1},{label:"趣味",value:"読書、掃除、買い物",size:2}],policyUrl:"https://virvoxproject.wixsite.com/official/voicevoxの利用規約",detailUrl:"https://virvoxproject.wixsite.com/official/雀松朱司"},"麒ヶ島宗麟":{name:a("麒ヶ島宗麟").name,id:a("麒ヶ島宗麟").characterId,...t(a("麒ヶ島宗麟")),rubyName:"麒ヶ島(きがしま)宗麟(そうりん)",voiceFeature:"渋いおじさん声",color:"#FF9914",lightColor:"#FEE6AA",description:"流行に敏感ないぶし銀おじいちゃん。
非常にミーハーでノリが良い。",labelInfos:[{label:"身長",value:"175 cm",size:1},{label:"体重",value:"79 kg",size:1},{label:"年齢",value:"50 歳(見た目年齢)※実年齢不明",size:2},{label:"趣味1",value:"パワースポット(霊脈?)巡り",size:2},{label:"趣味2",value:"入浴、SNS投稿",size:2}],policyUrl:"https://virvoxproject.wixsite.com/official/voicevoxの利用規約",detailUrl:"https://virvoxproject.wixsite.com/official/麒ヶ島宗麟"},"春歌ナナ":{name:a("春歌ナナ").name,id:a("春歌ナナ").characterId,...t(a("春歌ナナ")),rubyName:"春歌(はるか)ナナ",voiceFeature:"はつらつとした力強い声",color:"#DF4C94",lightColor:"#E3ADD5",description:"いつだって元気いっぱいな女の子です。",labelInfos:[{label:"年齢",value:"10 歳",size:1},{label:"誕生日",value:"1月30日",size:1},{label:"身長",value:"137 cm(アホ毛込み)",size:2},{label:"好物",value:"サラミ、わらびもち",size:2},{label:"CV",value:"ななひら",size:2}],policyUrl:"https://nanahira.jp/haruka_nana/guideline.html",detailUrl:"https://nanahira.jp/haruka_nana/"},"猫使アル":{name:a("猫使アル").name,id:a("猫使アル").characterId,...t(a("猫使アル")),rubyName:"猫使(ねこつか)アル",voiceFeature:"厚みのある気さくな声",color:"#F9344C",lightColor:"#FBB4C4",description:"謎の研究所で作られた
猫使シリーズの タイプ:Red",labelInfos:[{label:"身長",value:"140 cm",size:1},{label:"誕生日",value:"6月17日",size:1},{label:"年齢",value:"外見年齢10代前半",size:2},{label:"性格",value:"マイペース",size:1},{label:"好きなもの",value:"はまち",size:1},{label:"苦手なもの",value:"ねずみ",size:1},{label:"趣味",value:"噛むこと",size:1}],policyUrl:"https://nekotukarb.wixsite.com/nekonohako/利用規約",detailUrl:"https://nekotukarb.wixsite.com/nekonohako"},"猫使ビィ":{name:a("猫使ビィ").name,id:a("猫使ビィ").characterId,...t(a("猫使ビィ")),rubyName:"猫使(ねこつか)ビィ",voiceFeature:"ピュアであどけない声",color:"#1D86AE",lightColor:"#B3D7DD",description:"謎の研究所で作られた
猫使シリーズの タイプ:Blue",labelInfos:[{label:"身長",value:"140 cm",size:1},{label:"誕生日",value:"6月17日",size:1},{label:"年齢",value:"外見年齢10代前半",size:2},{label:"性格",value:"シャイで臆病",size:1},{label:"好きなもの",value:"サーモン",size:1},{label:"苦手なもの",value:"おばけ",size:1},{label:"趣味",value:"おひるね",size:1}],policyUrl:"https://nekotukarb.wixsite.com/nekonohako/利用規約",detailUrl:"https://nekotukarb.wixsite.com/nekonohako"},"中国うさぎ":{name:a("中国うさぎ").name,id:a("中国うさぎ").characterId,...t(a("中国うさぎ")),rubyName:"中国(ちゅうごく)うさぎ",voiceFeature:"幽玄で初々しい声",color:"#FC4E32",lightColor:"#FDCDB7",description:"巫女みこネットワークの一員で、日本各地で怪異の情報を集める。ぼそぼそしゃべるタイプの無口キャラ",labelInfos:[{label:"身長",value:"147 cm",size:1},{label:"年齢",value:"14 歳",size:1},{label:"相棒",value:"ぬいぐるみ「いなば」",size:2}],policyUrl:"https://zunko.jp/con_ongen_kiyaku.html",detailUrl:"https://zunko.jp/#charaCU"},"栗田まろん":{name:a("栗田まろん").name,id:a("栗田まろん").characterId,...t(a("栗田まろん")),rubyName:"栗田(くりた)まろん",voiceFeature:"深みのある中性的な声",color:"#1AA18E",lightColor:"#B3E2D8",description:"友人たちに乗せられて女装したら好評だった
男子高生。図書委員所属。",labelInfos:[{label:"身長",value:"165 cm",size:1},{label:"誕生日",value:"10月9日",size:1},{label:"色",value:"栗色",size:1},{label:"CV",value:"栗田穣崇",size:1},{label:"趣味",value:"読書",size:2},{label:"好物",value:"モンブラン、マロンパフェ",size:2}],policyUrl:"https://aivoice.jp/character/maron/",detailUrl:"https://aivoice.jp/character/maron/"},"藍田ノエル":{name:a("藍田ノエル").name,id:a("藍田ノエル").characterId,...t(a("藍田ノエル")),rubyName:"あいえるたん",voiceFeature:"心地よい物柔らかな声",color:"#FF9914",lightColor:"#FEE6AA",description:"札幌市内の高校に通う元気な女子高生。
IT企業でマスコット/アルバイトとして活躍中。",labelInfos:[{label:"本名",value:"藍田ノエル",size:1},{label:"CV",value:"Milia",size:1},{label:"年齢",value:"16 歳",size:1},{label:"誕生日",value:"7月1日",size:1},{label:"身長",value:"154.8 cm",size:1},{label:"好物",value:"コーラ",size:1},{label:"趣味",value:"プログラミング、ゲーム",size:2}],policyUrl:"https://www.infiniteloop.co.jp/special/iltan/terms/",detailUrl:"https://www.infiniteloop.co.jp/special/iltan/"},"満別花丸":{name:a("満別花丸").name,id:a("満別花丸").characterId,...t(a("満別花丸")),rubyName:"満別(まんべつ)花丸(はなまる)",voiceFeature:"生き生きとした際立つ声",color:"#99D02B",lightColor:"#E6F5B0",description:"全人類みんなにはなまるをあげる音声キャラクター",labelInfos:[{label:"身長",value:"138 cm",size:2},{label:"誕生日",value:"8月7日",size:2},{label:"出身",value:"北海道",size:2},{label:"好物",value:"うめぼし",size:2}],policyUrl:"https://100hanamaru.wixsite.com/manbetsu-hanamaru/rule",detailUrl:"https://100hanamaru.wixsite.com/manbetsu-hanamaru"},"琴詠ニア":{name:a("琴詠ニア").name,id:a("琴詠ニア").characterId,...t(a("琴詠ニア")),rubyName:"琴詠(ことよみ)ニア",voiceFeature:"滑らかで無機質な声",color:"#FB8028",lightColor:"#FFD6B8",description:"N Airのシルエットが推し。ニコ生のコメントを
読み上げている、宇宙を旅する女の子。",labelInfos:[{label:"誕生日",value:"11月25日",size:1},{label:"CV",value:"ドワンゴの中の人",size:1},{label:"趣味",value:"グッズ制作",size:1},{label:"ルーティン",value:"配信チェック",size:1}],policyUrl:"https://commons.nicovideo.jp/works/nc315435",detailUrl:"https://n-air-app.nicovideo.jp/"}};return{characterInfos:(0,i.useMemo)((()=>n),[]),callNameInfos:(0,i.useMemo)((()=>o),[])}},o={"四国めたん":{me:["わたくし"],you:["貴女(たち)","アンタ(ら)"],"ずんだもん":"ずんだもん","春日部つむぎ":"つむぎさん","雨晴はう":"はうさん","波音リツ":"リツさん","玄野武宏":"玄野さん","白上虎太郎":"白上さん","青山龍星":"青山さん","冥鳴ひまり":"ひまりさん","九州そら":"そら","モチノキョウコ":"もち子さん","剣崎雌雄":"剣崎さん",WhiteCUL:"雪さん","後鬼":"後鬼さん",No7:"セブンさん","ちび式じい":"ちび式じいさん","櫻歌ミコ":"ミコさん","小夜_SAYO":"小夜さん","ナースロボ_タイプT":"TTさん","聖騎士紅桜":"聖騎士さん","雀松朱司":"雀松さん","麒ヶ島宗麟":"麒ヶ島さん","春歌ナナ":"ナナさん","猫使アル":"アルさん","猫使ビィ":"ビィさん","中国うさぎ":"うさぎ","栗田まろん":"栗田さん","藍田ノエル":"あいえるさん","満別花丸":"花丸さん","琴詠ニア":"ニアさん"},"ずんだもん":{me:["ずんだもん","僕"],you:["オマエ","みんな"],"四国めたん":"めたん","春日部つむぎ":"つむぎ","雨晴はう":"はう","波音リツ":"リツ","玄野武宏":"たけひろ","白上虎太郎":"こたろう","青山龍星":"りゅうせい","冥鳴ひまり":"ひまり","九州そら":"そら","モチノキョウコ":"もち子","剣崎雌雄":"めすお",WhiteCUL:"雪","後鬼":"後鬼",No7:"セブン","ちび式じい":"ちび式じい","櫻歌ミコ":"ミコ","小夜_SAYO":"小夜","ナースロボ_タイプT":"TT","聖騎士紅桜":"紅桜","雀松朱司":"朱司","麒ヶ島宗麟":"宗麟","春歌ナナ":"ナナ","猫使アル":"アル","猫使ビィ":"ビィ","中国うさぎ":"うさぎ","栗田まろん":"まろん","藍田ノエル":"あいえる","満別花丸":"はなまる","琴詠ニア":"ニア"},"春日部つむぎ":{me:["あーし"],you:["きみ","きみたち"],"四国めたん":"めたん先輩","ずんだもん":"ずんだもん先輩","雨晴はう":"はうちゃん","波音リツ":"りっちゃん","玄野武宏":"武宏くん","白上虎太郎":"虎太郎くん","青山龍星":"龍星くん","冥鳴ひまり":"ひまっち","九州そら":"そらさん","モチノキョウコ":"もち子ちゃん","剣崎雌雄":"めすおちゃん",WhiteCUL:"ゆきちゃん","後鬼":"後鬼せんせー",No7:"ななっち","ちび式じい":"ちびじい","櫻歌ミコ":"みこっち","小夜_SAYO":"さよち","ナースロボ_タイプT":"TTちゃん","聖騎士紅桜":"聖騎士くん","雀松朱司":"赤司くん","麒ヶ島宗麟":"宗麟おじ","春歌ナナ":"ナナっち","猫使アル":"アルにゃん","猫使ビィ":"ビィにゃん","中国うさぎ":"うさぎちゃん","栗田まろん":"まろんちゃん","琴詠ニア":"ニアちゃん"},"雨晴はう":{me:["僕"],you:["あなた","あなた達"],"四国めたん":"めたんさん","ずんだもん":"ずんだもん","春日部つむぎ":"つむぎさん","波音リツ":"リツさん","玄野武宏":"玄野さん","白上虎太郎":"白上さん","青山龍星":"青山さん","冥鳴ひまり":"ひまりさん","九州そら":"そらさん","モチノキョウコ":"もち子さん","剣崎雌雄":"剣崎さん",WhiteCUL:"ゆきさん","後鬼":"ごきさん",No7:"ななさん","ちび式じい":"お式さん","櫻歌ミコ":"ミコちゃん","小夜_SAYO":"小夜さん","ナースロボ_タイプT":"Tちゃん","聖騎士紅桜":"紅桜さん","雀松朱司":"雀松さん","麒ヶ島宗麟":"麒ヶ島さん","春歌ナナ":"春歌さん","猫使アル":"アルちゃん","猫使ビィ":"ビィちゃん","中国うさぎ":"うさちゃん","栗田まろん":"栗田さん","琴詠ニア":"ニアちゃん"},"波音リツ":{me:["あたし"],you:["アンタ","アンタら"],"四国めたん":"めたん","ずんだもん":"ずんだもん","春日部つむぎ":"つむぎ","雨晴はう":"はう","玄野武宏":"くろの","白上虎太郎":"こたろう","青山龍星":"りゅうせい","冥鳴ひまり":"ひまり","九州そら":"そら","モチノキョウコ":"もち子","剣崎雌雄":"めすお",WhiteCUL:"ゆき","後鬼":"ごき",No7:"なな","ちび式じい":"式じい","櫻歌ミコ":"ミコ","小夜_SAYO":"さよ","ナースロボ_タイプT":"TT","聖騎士紅桜":"べにざくら","雀松朱司":"あかし","麒ヶ島宗麟":"そうりん","春歌ナナ":"ナナ","猫使アル":"アル","猫使ビィ":"ビィ","中国うさぎ":"うさぎ","栗田まろん":"まろん","藍田ノエル":"あいえる","満別花丸":"花丸","琴詠ニア":"ニア"},"玄野武宏":{me:["俺"],you:["お前","お前ら"],"四国めたん":"めたん","ずんだもん":"ずんだもん","春日部つむぎ":"つむぎ","雨晴はう":"はう","波音リツ":"リツ","白上虎太郎":"虎太郎","青山龍星":"龍星","冥鳴ひまり":"ひまり","九州そら":"そら","モチノキョウコ":"もち子","剣崎雌雄":"雌雄",WhiteCUL:"雪","後鬼":"後鬼",No7:"なな","ちび式じい":"小さいじいさん","櫻歌ミコ":"ミコ","小夜_SAYO":"小夜","ナースロボ_タイプT":"タイプT","聖騎士紅桜":"紅桜","雀松朱司":"朱司","麒ヶ島宗麟":"おっさん","春歌ナナ":"ナナ","猫使アル":"アル","猫使ビィ":"ビィ"},"白上虎太郎":{me:["おれ"],you:["きみ","きみ達"],"四国めたん":"めたんちゃん","ずんだもん":"ずんずん","春日部つむぎ":"つむぎちゃん","雨晴はう":"はうさん","波音リツ":"リツさん","玄野武宏":"タケヒロ","青山龍星":"リューセー","冥鳴ひまり":"ひまりちゃん","九州そら":"そらさん","モチノキョウコ":"もち子さん","剣崎雌雄":"シユー",WhiteCUL:"ユキさん","後鬼":"ゴキさん",No7:"ナナちゃんさん","ちび式じい":"ちっちゃい式じい","櫻歌ミコ":"ミコちゃん","小夜_SAYO":"サヨちゃん","ナースロボ_タイプT":"Tちゃん","聖騎士紅桜":"ベニザクラさん","雀松朱司":"アカシさん","麒ヶ島宗麟":"おっちゃん","春歌ナナ":"ナナちゃん","猫使アル":"アルちゃん","猫使ビィ":"ビィちゃん"},"青山龍星":{me:["オレ"],you:["アンタ","アンタ達","お前達"],"四国めたん":"めたん","ずんだもん":"ずんだもん","春日部つむぎ":"つむぎ","雨晴はう":"はう","波音リツ":"リツ","玄野武宏":"武宏","白上虎太郎":"虎太郎","冥鳴ひまり":"ひまり","九州そら":"そら","モチノキョウコ":"もち子","剣崎雌雄":"雌雄",WhiteCUL:"雪","後鬼":"後鬼",No7:"セブン","ちび式じい":"小さい大元さん","櫻歌ミコ":"ミコ","小夜_SAYO":"小夜","ナースロボ_タイプT":"T","聖騎士紅桜":"紅桜","雀松朱司":"朱司","麒ヶ島宗麟":"親父","春歌ナナ":"ナナ","猫使アル":"アル","猫使ビィ":"ビィ"},"冥鳴ひまり":{me:["私"],you:["君たち"],"四国めたん":"めたん先輩","ずんだもん":"ずんだもん先輩","春日部つむぎ":"つむぎ先輩","雨晴はう":"はう先輩","波音リツ":"リツ先輩","玄野武宏":"武宏くん","白上虎太郎":"虎太郎くん","青山龍星":"龍星くん","九州そら":"そらちゃん","モチノキョウコ":"もち子ちゃん","剣崎雌雄":"メスオジ",WhiteCUL:"ゆきちゃん","後鬼":"後鬼ちゃん",No7:"ななちゃん","ちび式じい":"ちびじい","櫻歌ミコ":"ミコちゃん","小夜_SAYO":"小夜ちゃん","ナースロボ_タイプT":"TTちゃん","聖騎士紅桜":"聖騎士さん","雀松朱司":"朱司くん","麒ヶ島宗麟":"宗麟くん","春歌ナナ":"ナナちゃん","猫使アル":"アルちゃん","猫使ビィ":"ビィちゃん","中国うさぎ":"うさちゃん","栗田まろん":"まろんちゃん","琴詠ニア":"ニアちゃん"},"九州そら":{me:["まーくつー"],you:["あなたさま","みなさま"],"四国めたん":"めたんさま","ずんだもん":"ずんだもん","春日部つむぎ":"つむぎさま","雨晴はう":"はうさま","波音リツ":"リツさま","玄野武宏":"武宏さま","白上虎太郎":"虎太郎さま","青山龍星":"龍星さま","冥鳴ひまり":"ひまりさま","モチノキョウコ":"もち子さま","剣崎雌雄":"雌雄さま",WhiteCUL:"雪さま","後鬼":"後鬼さま",No7:"セブンさま","ちび式じい":"ちび式じいさま","櫻歌ミコ":"ミコさま","小夜_SAYO":"小夜さま","ナースロボ_タイプT":"TTさま","聖騎士紅桜":"紅桜さま","雀松朱司":"朱司さま","麒ヶ島宗麟":"宗麟さま","春歌ナナ":"ナナさま","猫使アル":"アルさま","猫使ビィ":"ビィさま","中国うさぎ":"うさぎさま","栗田まろん":"まろんさま","藍田ノエル":"あいえるさま","満別花丸":"花丸様","琴詠ニア":"ニアさま"},"モチノキョウコ":{me:["私","もち子"],you:["あなた","あなた達"],"四国めたん":"めたんさん","ずんだもん":"ずんだもんちゃん","春日部つむぎ":"つむぎさん","雨晴はう":"はうちゃん","波音リツ":"リッちゃん先輩","玄野武宏":"玄野くん","白上虎太郎":"白上くん","青山龍星":"青山くん","冥鳴ひまり":"ひまり先輩","九州そら":"そらさん","剣崎雌雄":"剣崎さん",WhiteCUL:"ユキさん","後鬼":"後鬼お姉さん",No7:"セブンちゃん","ちび式じい":"ちび式さん","櫻歌ミコ":"ミコちゃん","小夜_SAYO":"小夜ちゃん","ナースロボ_タイプT":"ティーさん(Tさん)","聖騎士紅桜":"紅桜","雀松朱司":"雀松くん","麒ヶ島宗麟":"麒ヶ島さん","春歌ナナ":"ナナちゃん","猫使アル":"アルちゃん","猫使ビィ":"ビィちゃん","中国うさぎ":"うさぎちゃん","栗田まろん":"まろんくん","藍田ノエル":"えるさん","満別花丸":"花丸ちゃん","琴詠ニア":"ニアちゃん"},"剣崎雌雄":{me:["僕"],you:["君等"],"四国めたん":"くにさん","ずんだもん":"だーもん","春日部つむぎ":"べっつー","雨晴はう":"はーさん","波音リツ":"ねりさん","玄野武宏":"くーろん","白上虎太郎":"こっちゃん","青山龍星":"りゅうさん","冥鳴ひまり":"めまりちゃん","九州そら":"らーさん","モチノキョウコ":"もっちー",WhiteCUL:"とかっち","後鬼":"ごっさん",No7:"ぶんぶん丸","ちび式じい":"小元","櫻歌ミコ":"カミッコ","小夜_SAYO":"小夜","ナースロボ_タイプT":"助手","聖騎士紅桜":"我が強敵(とも)スカーレットチェリーブロッサム","雀松朱司":"かっしー","麒ヶ島宗麟":"りんちゃん","春歌ナナ":"るかなん","猫使アル":"カール","猫使ビィ":"カービィ","中国うさぎ":"ごくう","栗田まろん":"まろん","藍田ノエル":"L","満別花丸":"まんまる","琴詠ニア":"おことさん"},WhiteCUL:{me:["わたし"],you:["あなた","あなたたち"],"四国めたん":"めたんちゃん","ずんだもん":"ずんだもん","春日部つむぎ":"つむぎ","雨晴はう":"はうちゃん","波音リツ":"リツちゃん","玄野武宏":"武弘さん","白上虎太郎":"虎太郎くん","青山龍星":"りゅうちゃん","冥鳴ひまり":"ひまりん","九州そら":"そらさん","モチノキョウコ":"もちこさん","剣崎雌雄":"剣崎さん","後鬼":"後鬼さん",No7:"ななさん","ちび式じい":"ちびじい","櫻歌ミコ":"ミコちゃん","小夜_SAYO":"小夜ちゃん","ナースロボ_タイプT":"TTちゃん","聖騎士紅桜":"紅桜さん","雀松朱司":"朱司くん","麒ヶ島宗麟":"そうりん","春歌ナナ":"ナナちゃん","猫使アル":"アルさん","猫使ビィ":"ビィさん"},"後鬼":{me:["私/ワテ"],you:["あなたorキミ/あんたはん"],"四国めたん":"四国さん/めたんはん","ずんだもん":"ずんだもん","春日部つむぎ":"春日部さん/つむぎはん","雨晴はう":"雨晴さん/はうはん","波音リツ":"波音さん/リツはん","玄野武宏":"玄野くん/玄野はん","白上虎太郎":"白上くん/白上はん","青山龍星":"青山くん/龍星はん","冥鳴ひまり":"冥鳴さん/ひまりはん","九州そら":"九州さん/九州はん","モチノキョウコ":"もち子さん/もち子はん","剣崎雌雄":"剣崎くん/剣崎はん",WhiteCUL:"雪さん/雪はん",No7:"セブンさん/セブンはん","ちび式じい":"おちびさん/ちび式じいはん","櫻歌ミコ":"櫻歌さん/ミコはん","小夜_SAYO":"小夜さん/小夜はん","ナースロボ_タイプT":"TTさん/TTはん","聖騎士紅桜":"紅桜さん/紅桜はん","雀松朱司":"雀松くん/雀松はん","麒ヶ島宗麟":"宗麟さん/宗麟はん","春歌ナナ":"春歌さん/ナナはん","猫使アル":"アルさん/アルはん","猫使ビィ":"ビィさん/ビィはん","中国うさぎ":"中国さん/中国はん","栗田まろん":"栗田くん/栗田はん","藍田ノエル":"あいえるさん/あいえるはん","満別花丸":"満別さん/花丸はん","琴詠ニア":"琴詠さん/ニアはん"},No7:{me:["私","僕"],you:["そちら様","皆様"],"四国めたん":"四国さん","ずんだもん":"ずんだもん様","春日部つむぎ":"春日部さん","雨晴はう":"雨晴さん","波音リツ":"波音さん","玄野武宏":"玄野さん","白上虎太郎":"白上さん","青山龍星":"青山さん","冥鳴ひまり":"冥鳴さん","九州そら":"九州さん","モチノキョウコ":"モチノさん","剣崎雌雄":"剣崎さん",WhiteCUL:"雪さん","後鬼":"後鬼さん","ちび式じい":"ちび式さん","櫻歌ミコ":"櫻歌さん","小夜_SAYO":"小夜さん","ナースロボ_タイプT":"TTさん","聖騎士紅桜":"紅桜さん","雀松朱司":"雀松さん","麒ヶ島宗麟":"麒ヶ島さん","春歌ナナ":"春歌さん","猫使アル":"アルさん","猫使ビィ":"ビィさん","中国うさぎ":"中国さん","栗田まろん":"栗田さん","藍田ノエル":"あいえるさん","満別花丸":"満別さん","琴詠ニア":"琴詠さん"},"ちび式じい":{me:["わし"],you:["おぬし","おぬしら"],"四国めたん":"めたんちゃん","ずんだもん":"ずんだの精さん","春日部つむぎ":"つむぎちゃん","雨晴はう":"はうちゃん","波音リツ":"りっちゃん","玄野武宏":"たけひろさん","白上虎太郎":"こたろうくん","青山龍星":"りゅうせいさん","冥鳴ひまり":"めいめいちゃん/死神さん","九州そら":"そらさん","モチノキョウコ":"もちこさん","剣崎雌雄":"メスの付喪神さん/メスのひと",WhiteCUL:"ゆきさん","後鬼":"ごきさん",No7:"なな号さん","櫻歌ミコ":"みこみこ","小夜_SAYO":"小夜ちゃん","ナースロボ_タイプT":"TTちゃん","聖騎士紅桜":"ほーりーないとべにざくらさん","雀松朱司":"あかしさん","麒ヶ島宗麟":"そうりんさん","春歌ナナ":"はるななさん","猫使アル":"あるさん","猫使ビィ":"びぃさん","中国うさぎ":"うさぎさん"},"櫻歌ミコ":{me:["ミコ/私"],you:["あなた","あなたたち"],"四国めたん":"めたんちゃん","ずんだもん":"もんちゃん","春日部つむぎ":"つむぎちゃん","雨晴はう":"はうちゃん","波音リツ":"りっちゃん","玄野武宏":"武宏くん","白上虎太郎":"虎太郎くん","青山龍星":"龍星くん","冥鳴ひまり":"ひまりちゃん","九州そら":"そらちゃん","モチノキョウコ":"もち子ちゃん","剣崎雌雄":"剣崎先生",WhiteCUL:"雪ちゃん","後鬼":"後鬼ちゃん",No7:"セブンちゃん","ちび式じい":"ちいおじいちゃん","小夜_SAYO":"小夜ちゃん","ナースロボ_タイプT":"TTちゃん","聖騎士紅桜":"紅桜さん","雀松朱司":"朱司くん","麒ヶ島宗麟":"宗麟おじちゃん","春歌ナナ":"ナナちゃん","猫使アル":"アルちゃん","猫使ビィ":"ビィちゃん","中国うさぎ":"うさぎちゃん","栗田まろん":"まろんくん","藍田ノエル":"えるちゃん","満別花丸":"花丸ちゃん","琴詠ニア":"ニアちゃん"},"小夜_SAYO":{me:["小夜"],you:["あなた","あなたたち"],"四国めたん":"めたんちゃん","ずんだもん":"ずんだもん","春日部つむぎ":"つむぎちゃん","雨晴はう":"はうさん","波音リツ":"リツさん","玄野武宏":"武宏さん","白上虎太郎":"虎太郎くん","青山龍星":"龍星さん","冥鳴ひまり":"ひまりちゃん","九州そら":"そらさん","モチノキョウコ":"もち子さん","剣崎雌雄":"剣崎先生",WhiteCUL:"雪さん","後鬼":"後鬼さん",No7:"ななさん","ちび式じい":"ちびじい","櫻歌ミコ":"ミコちゃん","ナースロボ_タイプT":"TTちゃん","聖騎士紅桜":"騎士さん(ないとさん)","雀松朱司":"朱司さん","麒ヶ島宗麟":"宗麟おじちゃん","春歌ナナ":"ナナちゃん","猫使アル":"アルちゃん","猫使ビィ":"ビィちゃん","中国うさぎ":"うさぎちゃん","栗田まろん":"まろんさん","琴詠ニア":"ニアさん"},"ナースロボ_タイプT":{me:["わたし"],you:["あなた","あなたたち"],"四国めたん":"四国さん","ずんだもん":"ずんだもんさん","春日部つむぎ":"春日部さん","雨晴はう":"雨晴さん","波音リツ":"波音さん","玄野武宏":"玄野さん","白上虎太郎":"白上さん","青山龍星":"青山さん","冥鳴ひまり":"冥鳴さん","九州そら":"まーくつーさん","モチノキョウコ":"モチノさん","剣崎雌雄":"剣崎先生",WhiteCUL:"ゆきさん","後鬼":"後鬼さん",No7:"セブンさん","ちび式じい":"おじいさん","櫻歌ミコ":"櫻歌さん","小夜_SAYO":"小夜さん","聖騎士紅桜":"紅桜さん","雀松朱司":"雀松さん","麒ヶ島宗麟":"麒ヶ島さん","春歌ナナ":"ナナさん","猫使アル":"アルさん","猫使ビィ":"ビーさん","中国うさぎ":"うさぎさん","栗田まろん":"栗田さん","藍田ノエル":"あいえるはん","満別花丸":"満別さん","琴詠ニア":"琴詠さん"},"聖騎士紅桜":{me:["我"],you:["お前","お前ら"],"四国めたん":"めたん殿","ずんだもん":"ずんだもん殿","春日部つむぎ":"つむぎ殿","雨晴はう":"はう殿","波音リツ":"リツ殿","玄野武宏":"武宏殿","白上虎太郎":"虎太郎殿","青山龍星":"龍星殿","冥鳴ひまり":"ひまり殿","九州そら":"そら殿","モチノキョウコ":"もち子殿","剣崎雌雄":"雌雄",WhiteCUL:"雪殿","後鬼":"後鬼殿",No7:"なな殿","ちび式じい":"ちびじい殿","櫻歌ミコ":"ミコ殿","小夜_SAYO":"小夜殿","ナースロボ_タイプT":"TT殿","雀松朱司":"朱司殿","麒ヶ島宗麟":"麒ヶ島殿","春歌ナナ":"ナナ殿","猫使アル":"アル殿","猫使ビィ":"ビィ殿","中国うさぎ":"うさ殿","栗田まろん":"まろん殿"},"雀松朱司":{me:["僕"],you:["あなた","あなたたち"],"四国めたん":"めたんさん","ずんだもん":"ずんだもんさん","春日部つむぎ":"春日部さん","雨晴はう":"雨晴さん","波音リツ":"波音さん","玄野武宏":"玄野くん","白上虎太郎":"白上くん","青山龍星":"龍星","冥鳴ひまり":"冥鳴さん","九州そら":"九州さん","モチノキョウコ":"もちのさん","剣崎雌雄":"剣崎さん",WhiteCUL:"雪さん","後鬼":"後鬼さん",No7:"ななさん","ちび式じい":"小さい方の式じいさん","櫻歌ミコ":"櫻花さん","小夜_SAYO":"小夜さん","ナースロボ_タイプT":"TTさん","聖騎士紅桜":"紅桜さん","麒ヶ島宗麟":"麒ヶ島さん","春歌ナナ":"春歌さん","猫使アル":"アルさん","猫使ビィ":"ビィさん"},"麒ヶ島宗麟":{me:["私"],you:["おまえ","お前たち"],"四国めたん":"めたんちゃん","ずんだもん":"ずんだもんちゃん","春日部つむぎ":"つむぎちゃん","雨晴はう":"はうちゃん","波音リツ":"リッちゃん","玄野武宏":"武宏","白上虎太郎":"虎坊(とらぼん)","青山龍星":"龍","冥鳴ひまり":"ひまりちゃん","九州そら":"そらちゃん","モチノキョウコ":"もち子ちゃん","剣崎雌雄":"雌雄くん",WhiteCUL:"雪ちゃん","後鬼":"後鬼ちゃん",No7:"ななちゃん","ちび式じい":"小さい式じい殿","櫻歌ミコ":"ミコちゃん","小夜_SAYO":"小夜ちゃん","ナースロボ_タイプT":"TTちゃん","聖騎士紅桜":"桜花くん","雀松朱司":"朱司くん","春歌ナナ":"ナナちゃん","猫使アル":"アルちゃん","猫使ビィ":"ビィちゃん"},"春歌ナナ":{me:["ナナ","わたし"],you:["あなた","あなたたち"],"四国めたん":"めたんちゃん","ずんだもん":"ずんだもん","春日部つむぎ":"つむぎちゃん","雨晴はう":"はうちゃん","波音リツ":"りっちゃん","玄野武宏":"武宏くん","白上虎太郎":"虎太郎くん","青山龍星":"龍星くん","冥鳴ひまり":"ひまりちゃん","九州そら":"そらちゃん","モチノキョウコ":"もち子ちゃん","剣崎雌雄":"剣崎せんせー",WhiteCUL:"ゆきちゃん","後鬼":"後鬼ちゃん",No7:"セブンちゃん","ちび式じい":"ちびおじいちゃん","櫻歌ミコ":"ミコちゃん","小夜_SAYO":"小夜ちゃん","ナースロボ_タイプT":"ティーちゃん(Tちゃん)","聖騎士紅桜":"紅さん","雀松朱司":"朱司くん","麒ヶ島宗麟":"宗麟おじちゃんおじちゃん","猫使アル":"アルちゃん","猫使ビィ":"ビィちゃん"},"猫使アル":{me:["アル","おれ","ボク"],you:["~さん","先輩","きみ等"],"四国めたん":"めたん先輩","ずんだもん":"ずんだ先輩","春日部つむぎ":"つむぎ先輩","雨晴はう":"はう先輩","波音リツ":"リツ先輩","玄野武宏":"たけ先輩","白上虎太郎":"こた先輩","青山龍星":"りゅう先輩","冥鳴ひまり":"ひまり先輩","九州そら":"そら先輩","モチノキョウコ":"もちこ先輩","剣崎雌雄":"めすお先輩",WhiteCUL:"ゆき先輩","後鬼":"ごき先輩",No7:"セブン先輩","ちび式じい":"しきじいちゃん","櫻歌ミコ":"ミコ先輩","小夜_SAYO":"さよ先輩","ナースロボ_タイプT":"T先輩","聖騎士紅桜":"黒歴史先輩","雀松朱司":"あかしさん","麒ヶ島宗麟":"そうりんおじさん","春歌ナナ":"ナナ","猫使ビィ":"ビィ","中国うさぎ":"うさぎさん","栗田まろん":"まろんさん","藍田ノエル":"えるさん","満別花丸":"まるさん","琴詠ニア":"ニアさん"},"猫使ビィ":{me:["ビィ","私","ボク"],you:["~さん","先輩","あなた等"],"四国めたん":"めたん先輩","ずんだもん":"ずんだもん先輩","春日部つむぎ":"つむぎ先輩","雨晴はう":"はう先輩","波音リツ":"りつ先輩","玄野武宏":"たけ先輩","白上虎太郎":"こたろー先輩","青山龍星":"りゅうせー先輩","冥鳴ひまり":"ひまり先輩","九州そら":"そら先輩","モチノキョウコ":"もちこ先輩","剣崎雌雄":"めすお先輩",WhiteCUL:"ゆき先輩","後鬼":"ごき先輩",No7:"せぶん先輩","ちび式じい":"しきおじいちゃん","櫻歌ミコ":"みこみこ先輩","小夜_SAYO":"さよ先輩","ナースロボ_タイプT":"TT先輩","聖騎士紅桜":"黒歴史先輩","雀松朱司":"あかしさん","麒ヶ島宗麟":"そーりんおじさん","春歌ナナ":"ナナちゃん","猫使アル":"アル","中国うさぎ":"うさぎさん","栗田まろん":"まろんさん","藍田ノエル":"えるさん","満別花丸":"まるさん","琴詠ニア":"ニアさん"},"中国うさぎ":{me:["わたし"],you:["あなた","みんな"],"四国めたん":"メタンハイドレートの人/めたんの人","ずんだもん":"ずんだもん","春日部つむぎ":"埼玉の人","雨晴はう":"看護の人","波音リツ":"波の人","玄野武宏":"玄の人","白上虎太郎":"虎の人","青山龍星":"龍の人","冥鳴ひまり":"死に神の人","九州そら":"そらの人","モチノキョウコ":"もちの人","剣崎雌雄":"メスの人",WhiteCUL:"白の人","後鬼":"後鬼の人",No7:"七(なな)の人","ちび式じい":"じいの人","櫻歌ミコ":"オオカミの人","小夜_SAYO":"ねこみみの人","ナースロボ_タイプT":"ロボTの人","聖騎士紅桜":"聖騎士の人","雀松朱司":"朱(あか)の人","麒ヶ島宗麟":"麒麟(きりん)の人","春歌ナナ":"春の人","猫使アル":"猫Aの人","猫使ビィ":"猫Bの人","栗田まろん":"栗の人","藍田ノエル":"エルの人","満別花丸":"花丸の人","琴詠ニア":"琴の人"},"栗田まろん":{me:["僕"],you:["君","みなさん"],"四国めたん":"めたんさん","ずんだもん":"ずんだもん","春日部つむぎ":"つむぎさん","雨晴はう":"はうさん","波音リツ":"リツさん","玄野武宏":"武宏くん","白上虎太郎":"虎太郎くん","青山龍星":"龍星くん","冥鳴ひまり":"ひまりさん","九州そら":"そらさん","モチノキョウコ":"もち子さん","剣崎雌雄":"雌雄さん",WhiteCUL:"ゆきさん","後鬼":"後鬼さん",No7:"ななさん","ちび式じい":"式さん","櫻歌ミコ":"ミコさん","小夜_SAYO":"小夜さん","ナースロボ_タイプT":"TTさん","聖騎士紅桜":"紅桜くん","雀松朱司":"朱司くん","麒ヶ島宗麟":"麒ヶ島さん","春歌ナナ":"ナナさん","猫使アル":"アルさん","猫使ビィ":"ビィさん","中国うさぎ":"うさぎさん","琴詠ニア":"ニアさん"},"藍田ノエル":{me:["あいえるたん","わたし"],you:["あなた","みんな"],"四国めたん":"めたんちゃん","ずんだもん":"ずんだもん","春日部つむぎ":"つむぎちゃん","雨晴はう":"はうちゃん","波音リツ":"リッちゃん","玄野武宏":"武宏くん","白上虎太郎":"虎太郎くん","青山龍星":"龍星くん","冥鳴ひまり":"ひまりちゃん","九州そら":"そらちゃん","モチノキョウコ":"もち子ちゃん","剣崎雌雄":"雌雄くん",WhiteCUL:"ゆきちゃん","後鬼":"後鬼さん",No7:"セブンちゃん","ちび式じい":"ちびじいさん","櫻歌ミコ":"ミコちゃん","小夜_SAYO":"小夜ちゃん","ナースロボ_タイプT":"Tちゃん","聖騎士紅桜":"紅桜さん","雀松朱司":"朱司くん","麒ヶ島宗麟":"宗麟さん","春歌ナナ":"ナナちゃん","猫使アル":"アルちゃん","猫使ビィ":"ビィちゃん","中国うさぎ":"うさぎちゃん","栗田まろん":"まろんちゃん","満別花丸":"花丸ちゃん","琴詠ニア":"ニアちゃん"},"満別花丸":{me:["ぼく"],you:["君","みんな"],"四国めたん":"めたんちゃん","ずんだもん":"ずんだもん","春日部つむぎ":"つむぎちゃん","雨晴はう":"はうちゃん","波音リツ":"リツさん","玄野武宏":"武宏くん","白上虎太郎":"虎太郎","青山龍星":"龍星くん","冥鳴ひまり":"ひまりちゃん","九州そら":"そらさん","モチノキョウコ":"もち子さん","剣崎雌雄":"雌雄",WhiteCUL:"ゆきちゃん","後鬼":"後鬼さん",No7:"セブンさん","ちび式じい":"ちび式じい","櫻歌ミコ":"ミコちゃん","小夜_SAYO":"小夜ちゃん","ナースロボ_タイプT":"TTちゃん","聖騎士紅桜":"紅桜","雀松朱司":"朱司くん","麒ヶ島宗麟":"きりんのおじちゃん","春歌ナナ":"ナナちゃん","猫使アル":"アル","猫使ビィ":"ビィ","中国うさぎ":"うさぎちゃん","栗田まろん":"栗田","藍田ノエル":"あいえるたん","琴詠ニア":"ニア"},"琴詠ニア":{me:["私"],you:["きみ","きみ達"],"四国めたん":"めたん先輩","ずんだもん":"ずんだもん先輩","春日部つむぎ":"つむぎちゃん","雨晴はう":"はう先輩","波音リツ":"リツさん","玄野武宏":"玄野さん","白上虎太郎":"白上くん","青山龍星":"青山さん","冥鳴ひまり":"ひまり先輩","九州そら":"そらさん","モチノキョウコ":"もち子さん","剣崎雌雄":"剣崎先生",WhiteCUL:"ゆき先輩","後鬼":"後鬼さん",No7:"ナナ先輩","ちび式じい":"ちびじい","櫻歌ミコ":"みこみこ先輩","小夜_SAYO":"さよ先輩","ナースロボ_タイプT":"Tちゃん","聖騎士紅桜":"ほーりーさん","雀松朱司":"朱司さん","麒ヶ島宗麟":"麒ヶ島さん","春歌ナナ":"ナナちゃん","猫使アル":"アルさん","猫使ビィ":"ビィさん","中国うさぎ":"うさぎさん","栗田まろん":"まろんちゃん","藍田ノエル":"あいえるたん","満別花丸":"花丸ちゃん"}}}}]); +//# sourceMappingURL=026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js.map \ No newline at end of file diff --git a/026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js.map b/026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js.map new file mode 100644 index 000000000..d0b3ea22d --- /dev/null +++ b/026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js.map @@ -0,0 +1 @@ +{"version":3,"file":"026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js","mappings":"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","sources":["webpack://voicevox-blog/./node_modules/camelcase/index.js","webpack://voicevox-blog/../src/image-utils.ts","webpack://voicevox-blog/../src/components/hooks.ts","webpack://voicevox-blog/../src/components/layout-wrapper.tsx","webpack://voicevox-blog/../src/components/picture.tsx","webpack://voicevox-blog/../src/components/placeholder.tsx","webpack://voicevox-blog/../src/components/main-image.tsx","webpack://voicevox-blog/../src/components/gatsby-image.server.tsx","webpack://voicevox-blog/../src/components/gatsby-image.browser.tsx","webpack://voicevox-blog/../src/components/static-image.server.tsx","webpack://voicevox-blog/../src/components/static-image.tsx","webpack://voicevox-blog/./src/hooks/useCharacterInfo.ts","webpack://voicevox-blog/./src/hooks/useDetailedCharacterInfo.ts"],"sourcesContent":["'use strict';\n\nconst UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\n\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\n\nconst preserveCamelCase = (string, toLowerCase, toUpperCase) => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && UPPERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n\tLEADING_CAPITAL.lastIndex = 0;\n\n\treturn input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1));\n};\n\nconst postProcess = (input, toUpperCase) => {\n\tSEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n\tNUMBERS_AND_IDENTIFIER.lastIndex = 0;\n\n\treturn input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier))\n\t\t.replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m));\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = {\n\t\tpascalCase: false,\n\t\tpreserveConsecutiveUppercase: false,\n\t\t...options\n\t};\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst toLowerCase = options.locale === false ?\n\t\tstring => string.toLowerCase() :\n\t\tstring => string.toLocaleLowerCase(options.locale);\n\tconst toUpperCase = options.locale === false ?\n\t\tstring => string.toUpperCase() :\n\t\tstring => string.toLocaleUpperCase(options.locale);\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n\t}\n\n\tconst hasUpperCase = input !== toLowerCase(input);\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input, toLowerCase, toUpperCase);\n\t}\n\n\tinput = input.replace(LEADING_SEPARATORS, '');\n\n\tif (options.preserveConsecutiveUppercase) {\n\t\tinput = preserveConsecutiveUppercase(input, toLowerCase);\n\t} else {\n\t\tinput = toLowerCase(input);\n\t}\n\n\tif (options.pascalCase) {\n\t\tinput = toUpperCase(input.charAt(0)) + input.slice(1);\n\t}\n\n\treturn postProcess(input, toUpperCase);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","import camelCase from \"camelcase\"\nimport type { IGatsbyImageData } from \"./index\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n outputPixelDensities?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.slice(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(`\nThe requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* global GATSBY___IMAGE */\nimport { generateImageData, EVERY_BREAKPOINT } from \"../image-utils\"\nimport type { CSSProperties, HTMLAttributes, ImgHTMLAttributes } from \"react\"\nimport type { Node } from \"gatsby\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport type {\n IGatsbyImageHelperArgs,\n Layout,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent = T & {\n gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial & {\n childImageSharp?: IGatsbyImageDataParent>\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageParent | any\n): node is IGatsbyImageParent => Boolean(node?.gatsbyImage)\n\nexport type ImageDataLike =\n | FileNode\n | IGatsbyImageDataParent\n | IGatsbyImageParent\n | IGatsbyImageData\n\nexport const getImage = (\n node: ImageDataLike | null\n): IGatsbyImageData | undefined => {\n // This checks both for gatsbyImageData and gatsbyImage\n if (isGatsbyImageData(node)) {\n return node\n }\n // gatsbyImageData GraphQL field\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n // gatsbyImage GraphQL field for Gatsby's Image CDN service\n if (isGatsbyImageParent(node)) {\n return node.gatsbyImage\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n style: CSSProperties = {}\n): Partial {\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","import React, { Fragment, FunctionComponent, PropsWithChildren } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer = ``\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent<\n PropsWithChildren\n> = function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {SERVER ? : null}\n \n )\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture: React.FC = function Picture({\n fallback,\n sources = [],\n shouldLoad = true,\n ...props\n}) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n}\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage: React.FC = function MainImage(props) {\n return (\n <>\n \n \n \n )\n}\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React from \"react\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\nimport type { FunctionComponent, WeakValidationMap } from \"react\"\nimport type { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as = `div`,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n\n if (preactClass) {\n className = preactClass\n }\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return React.createElement(\n as,\n {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n },\n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n imgStyle\n )}\n />\n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n\n return PropTypes.string(props, propName, componentName, ...rest)\n}\n\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","import {\n createElement,\n memo,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n} from \"react\"\nimport {\n getWrapperProps,\n gatsbyImageIsInstalled,\n hasNativeLazyLoadSupport,\n} from \"./hooks\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport type {\n FC,\n ElementType,\n FunctionComponent,\n ImgHTMLAttributes,\n CSSProperties,\n ReactEventHandler,\n} from \"react\"\nimport type { renderImageToString } from \"./lazy-hydrate\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { Layout } from \"../image-utils\"\n\nconst imageCache = new Set()\nlet renderImageToStringPromise\nlet renderImage: typeof renderImageToString | undefined\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: (props: { wasCached: boolean }) => void\n onError?: ReactEventHandler\n onStartLoad?: (props: { wasCached: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nconst GatsbyImageHydrator: FC = function GatsbyImageHydrator({\n as = `div`,\n image,\n style,\n backgroundColor,\n className,\n class: preactClass,\n onStartLoad,\n onLoad,\n onError,\n ...props\n}) {\n const { width, height, layout } = image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n const root = useRef()\n const cacheKey = useMemo(() => JSON.stringify(image.images), [image.images])\n\n // Preact uses class instead of className so we need to check for both\n if (preactClass) {\n className = preactClass\n }\n\n const sizer = getSizer(layout, width, height)\n\n useEffect(() => {\n if (!renderImageToStringPromise) {\n renderImageToStringPromise = import(`./lazy-hydrate`).then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n renderImage = renderImageToString\n\n return {\n renderImageToString,\n swapPlaceholderImage,\n }\n }\n )\n }\n\n // The plugin image component is a bit special where if it's server-side rendered, we add extra script tags to support lazy-loading without\n // In this case we stop hydration but fire the correct events.\n const ssrImage = root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n if (ssrImage && hasNativeLazyLoadSupport()) {\n if (ssrImage.complete) {\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n } else {\n onStartLoad?.({\n wasCached: true,\n })\n\n ssrImage.addEventListener(`load`, function onLoadListener() {\n ssrImage.removeEventListener(`load`, onLoadListener)\n\n onLoad?.({\n wasCached: true,\n })\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n })\n }\n\n imageCache.add(cacheKey)\n\n return\n }\n\n if (renderImage && imageCache.has(cacheKey)) {\n return\n }\n\n let animationFrame\n let cleanupCallback\n renderImageToStringPromise.then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n if (!root.current) {\n return\n }\n\n root.current.innerHTML = renderImageToString({\n isLoading: true,\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n if (!imageCache.has(cacheKey)) {\n animationFrame = requestAnimationFrame(() => {\n if (root.current) {\n cleanupCallback = swapPlaceholderImage(\n root.current,\n cacheKey,\n imageCache,\n style,\n onStartLoad,\n onLoad,\n onError\n )\n }\n })\n }\n }\n )\n\n // eslint-disable-next-line consistent-return\n return (): void => {\n if (animationFrame) {\n cancelAnimationFrame(animationFrame)\n }\n if (cleanupCallback) {\n cleanupCallback()\n }\n }\n }, [image])\n\n // useLayoutEffect is ran before React commits to the DOM. This allows us to make sure our HTML is using our cached image version\n useLayoutEffect(() => {\n if (imageCache.has(cacheKey) && renderImage) {\n root.current.innerHTML = renderImage({\n isLoading: imageCache.has(cacheKey),\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n }\n }, [image])\n\n // By keeping all props equal React will keep the component in the DOM\n return createElement(as, {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n ref: root,\n dangerouslySetInnerHTML: {\n __html: sizer,\n },\n suppressHydrationWarning: true,\n })\n}\n\nexport const GatsbyImage: FunctionComponent = memo(\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n\n return createElement(GatsbyImageHydrator, props)\n }\n)\n\nGatsbyImage.propTypes = propTypes\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n filename?: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n breakpoints,\n outputPixelDensities,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import { graphql, useStaticQuery } from \"gatsby\"\nimport { useCallback } from \"react\"\nimport { CharacterKey } from \"../types/dormitoryCharacter\"\n\nexport const useCharacterInfo = () => {\n const query: {\n character: {\n nodes: { key: CharacterKey; name: string; characterId: string }[]\n }\n } = useStaticQuery(graphql`\n query CharacterInfo {\n character: allCharacter {\n nodes {\n key\n name\n characterId\n }\n }\n }\n `)\n\n const getCharacterInfo = useCallback(\n (key: CharacterKey) =>\n query.character.nodes.find(node => node.key === key)!,\n [query]\n )\n\n return { getCharacterInfo }\n}\n","import { graphql, useStaticQuery } from \"gatsby\"\nimport { useMemo } from \"react\"\nimport { CharacterInfo, CharacterKey } from \"../types/dormitoryCharacter\"\nimport { useCharacterInfo } from \"./useCharacterInfo\"\n\nexport const useDetailedCharacterInfo = () => {\n const query: Queries.DetailedCharacterInfoQuery = useStaticQuery(graphql`\n query DetailedCharacterInfo {\n portrait: allFile(filter: { relativePath: { regex: \"/portrait/\" } }) {\n nodes {\n name\n childImageSharp {\n gatsbyImageData(\n height: 1280\n aspectRatio: 1\n transformOptions: { fit: CONTAIN }\n backgroundColor: \"#0000\"\n )\n }\n }\n }\n bustup: allFile(filter: { relativePath: { regex: \"/bustup/\" } }) {\n nodes {\n name\n childImageSharp320px: childImageSharp {\n gatsbyImageData(height: 320)\n }\n childImageSharp640px: childImageSharp {\n gatsbyImageData(height: 640)\n }\n }\n }\n dormitoryImage: allFile(\n filter: {\n sourceInstanceName: { regex: \"/image/\" }\n relativePath: { regex: \"/dormitory/\" }\n }\n ) {\n nodes {\n name\n childImageSharp {\n gatsbyImageData(height: 320)\n }\n }\n }\n styleAudio: allFile(\n filter: {\n sourceInstanceName: { eq: \"audio\" }\n relativePath: { regex: \"/^(?!dormitory)/\" }\n }\n ) {\n nodes {\n name\n publicURL\n }\n }\n dormitoryAudio: allFile(\n filter: {\n sourceInstanceName: { eq: \"audio\" }\n relativePath: { regex: \"/^dormitory/\" }\n }\n ) {\n nodes {\n name\n publicURL\n }\n }\n ogp: allFile(filter: { relativePath: { regex: \"/bustup/\" } }) {\n nodes {\n name\n childImageSharp {\n # バストアップ画像のトップ部分から1200x630をクロップ\n gatsbyImageData(\n width: 1200\n height: 630\n transformOptions: { cropFocus: NORTH }\n )\n }\n }\n }\n }\n `)\n\n const { getCharacterInfo } = useCharacterInfo()\n\n // キャラごとのスタイル一覧\n const styleNames: { [key in CharacterKey]: { name: string; id: string }[] } =\n {\n 四国めたん: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"あまあま\", id: \"ama\" },\n { name: \"ツンツン\", id: \"tsun\" },\n { name: \"セクシー\", id: \"sexy\" },\n { name: \"ささやき\", id: \"whis\" },\n { name: \"ヒソヒソ\", id: \"hiso\" },\n ],\n ずんだもん: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"あまあま\", id: \"ama\" },\n { name: \"ツンツン\", id: \"tsun\" },\n { name: \"セクシー\", id: \"sexy\" },\n { name: \"ささやき\", id: \"whis\" },\n { name: \"ヒソヒソ\", id: \"hiso\" },\n ],\n 春日部つむぎ: [{ name: \"ノーマル\", id: \"normal\" }],\n 雨晴はう: [{ name: \"ノーマル\", id: \"normal\" }],\n 波音リツ: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"クイーン\", id: \"queen\" },\n ],\n 玄野武宏: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"喜び\", id: \"fun\" },\n { name: \"ツンギレ\", id: \"angry\" },\n { name: \"悲しみ\", id: \"sad\" },\n ],\n 白上虎太郎: [\n { name: \"ふつう\", id: \"normal\" },\n { name: \"わーい\", id: \"joy\" },\n { name: \"おこ\", id: \"angry\" },\n { name: \"びくびく\", id: \"biku\" },\n { name: \"びえーん\", id: \"cry\" },\n ],\n 青山龍星: [{ name: \"ノーマル\", id: \"normal\" }],\n 冥鳴ひまり: [{ name: \"ノーマル\", id: \"normal\" }],\n 九州そら: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"あまあま\", id: \"ama\" },\n { name: \"ツンツン\", id: \"tsun\" },\n { name: \"セクシー\", id: \"sexy\" },\n { name: \"ささやき\", id: \"whis\" },\n ],\n モチノキョウコ: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"セクシー/あん子\", id: \"sexy\" },\n ],\n 剣崎雌雄: [{ name: \"ノーマル\", id: \"normal\" }],\n WhiteCUL: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"たのしい\", id: \"joy\" },\n { name: \"かなしい\", id: \"sad\" },\n { name: \"びえーん\", id: \"cry\" },\n ],\n 後鬼: [\n { name: \"人間ver.\", id: \"normal\" },\n { name: \"ぬいぐるみver.\", id: \"nuigurumi\" },\n ],\n No7: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"アナウンス\", id: \"announce\" },\n { name: \"読み聞かせ\", id: \"reading\" },\n ],\n ちび式じい: [{ name: \"ノーマル\", id: \"normal\" }],\n 櫻歌ミコ: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"第二形態\", id: \"2nd\" },\n { name: \"ロリ\", id: \"loli\" },\n ],\n 小夜_SAYO: [{ name: \"ノーマル\", id: \"normal\" }],\n ナースロボ_タイプT: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"楽々\", id: \"fun\" },\n { name: \"恐怖\", id: \"fear\" },\n { name: \"内緒話\", id: \"whis\" },\n ],\n 聖騎士紅桜: [{ name: \"ノーマル\", id: \"normal\" }],\n 雀松朱司: [{ name: \"ノーマル\", id: \"normal\" }],\n 麒ヶ島宗麟: [{ name: \"ノーマル\", id: \"normal\" }],\n 春歌ナナ: [{ name: \"ノーマル\", id: \"normal\" }],\n 猫使アル: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"おちつき\", id: \"ochitsuki\" },\n { name: \"うきうき\", id: \"fun\" },\n ],\n 猫使ビィ: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"おちつき\", id: \"ochitsuki\" },\n { name: \"人見知り\", id: \"shy\" },\n ],\n 中国うさぎ: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"おどろき\", id: \"surprise\" },\n { name: \"こわがり\", id: \"fear\" },\n { name: \"へろへろ\", id: \"tired\" },\n ],\n 栗田まろん: [{ name: \"ノーマル\", id: \"normal\" }],\n 藍田ノエル: [{ name: \"ノーマル\", id: \"normal\" }],\n 満別花丸: [\n { name: \"ノーマル\", id: \"normal\" },\n { name: \"元気\", id: \"fun\" },\n { name: \"ささやき\", id: \"whis\" },\n { name: \"ぶりっ子\", id: \"cute\" },\n { name: \"ボーイ\", id: \"boy\" },\n ],\n 琴詠ニア: [{ name: \"ノーマル\", id: \"normal\" }],\n }\n\n const getDatas = (info: { key: CharacterKey; characterId: string }) => {\n let dormitoryVoiceUrls: string[] | undefined = query.dormitoryAudio.nodes\n .filter(node => node.name.includes(`${info.characterId}`))\n .sort((a, b) => a.name.localeCompare(b.name))\n .map(node => node.publicURL!)\n if (dormitoryVoiceUrls.length == 0) dormitoryVoiceUrls = undefined\n const item = {\n bustupImageSmall: query.bustup.nodes.find(\n node => node.name === `bustup-${info.characterId}`\n )!.childImageSharp320px?.gatsbyImageData!,\n bustupImage: query.bustup.nodes.find(\n node => node.name === `bustup-${info.characterId}`\n )!.childImageSharp640px?.gatsbyImageData!,\n portraitImage: query.portrait.nodes.find(\n node => node.name === `portrait-${info.characterId}`\n )!.childImageSharp?.gatsbyImageData!,\n ogpImage: query.ogp.nodes.find(\n node => node.name === `bustup-${info.characterId}`\n )!.childImageSharp?.gatsbyImageData!,\n styleVoiceUrls: styleNames[info.key].map(v => {\n return {\n style: v.name,\n urls: query.styleAudio.nodes\n .filter(node => node.name.includes(`${info.characterId}`))\n .filter(node => node.name.includes(`${v.id}`))\n .sort((a, b) => a.name.localeCompare(b.name))\n .map(node => node.publicURL!),\n }\n }),\n dormitoryVoiceUrls,\n infoImages: query.dormitoryImage.nodes\n .filter(node => node.name.includes(`${info.characterId}`))\n .sort((a, b) => a.name.localeCompare(b.name))\n .map(node => node.childImageSharp?.gatsbyImageData!),\n }\n if (item.bustupImage == undefined)\n throw new Error(`bustupImage is undefined. ${info.characterId}`)\n if (item.portraitImage == undefined)\n throw new Error(`portraitImage is undefined. ${info.characterId}`)\n if (item.ogpImage == undefined)\n throw new Error(`ogpImage is undefined. ${info.characterId}`)\n if (item.styleVoiceUrls.length == 0)\n console.warn(`styleVoiceUrls is empty. ${info.characterId}`)\n if (item.styleVoiceUrls.some(v => v.urls.length != 3))\n throw new Error(`styleVoiceUrls is invalid. ${info.characterId}`)\n if (\n item.dormitoryVoiceUrls != undefined &&\n item.dormitoryVoiceUrls.length == 0\n )\n console.warn(`dormitoryVoiceUrls is empty. ${info.characterId}`)\n return item\n }\n\n // キャラクターの詳細情報\n // ネストを浅くするために一旦変数に格納\n const _characterInfos: {\n [key in CharacterKey]: CharacterInfo\n } = {\n 四国めたん: {\n name: getCharacterInfo(\"四国めたん\").name,\n id: getCharacterInfo(\"四国めたん\").characterId,\n ...getDatas(getCharacterInfo(\"四国めたん\")),\n rubyName: \"四国(しこく)めたん\",\n voiceFeature: \"はっきりした芯のある声\",\n color: \"#DF4C94\",\n lightColor: \"#E3ADD5\",\n description:\n \"高等部二年生。常に金欠。趣味は中二病妄想。
誰にでも遠慮しないので、基本的にタメ口。\",\n labelInfos: [\n { label: \"年齢\", value: \"17 歳\", size: 1 },\n { label: \"身長\", value: \"150 cm\", size: 1 },\n { label: \"性格\", value: \"若干ツンデレ気味\", size: 2 },\n ],\n policyUrl: \"https://zunko.jp/con_ongen_kiyaku.html\",\n detailUrl: \"https://zunko.jp/#charaSM\",\n },\n\n ずんだもん: {\n name: getCharacterInfo(\"ずんだもん\").name,\n id: getCharacterInfo(\"ずんだもん\").characterId,\n ...getDatas(getCharacterInfo(\"ずんだもん\")),\n rubyName: \"ずんだもん\",\n voiceFeature: \"子供っぽい高めの声\",\n color: \"#33A65E\",\n lightColor: \"#CCEBC5\",\n description:\n \"ずんだ餅の精。やや不幸属性が備わっており、
ないがしろにされることもしばしば。\",\n labelInfos: [\n {\n label: \"趣味\",\n value: \"ずんだ餅にかかわることはだいたい好き\",\n size: 2,\n },\n { label: \"将来の夢\", value: \"ずんだ餅のさらなる普及\", size: 2 },\n ],\n policyUrl: \"https://zunko.jp/con_ongen_kiyaku.html\",\n detailUrl: \"https://zunko.jp/#charaZM\",\n },\n\n 春日部つむぎ: {\n name: getCharacterInfo(\"春日部つむぎ\").name,\n id: getCharacterInfo(\"春日部つむぎ\").characterId,\n ...getDatas(getCharacterInfo(\"春日部つむぎ\")),\n rubyName:\n \"春日部(かすかべ)つむぎ\",\n voiceFeature: \"元気な明るい声\",\n color: \"#FF9914\",\n lightColor: \"#FEE6AA\",\n description:\n \"埼玉県内の高校に通うギャルの女の子。
やんちゃに見えて実は真面目な一面もある。\",\n labelInfos: [\n { label: \"年齢\", value: \"18 歳\", size: 1 },\n { label: \"身長\", value: \"155 cm\", size: 1 },\n { label: \"出身\", value: \"埼玉\", size: 1 },\n { label: \"好きなもの\", value: \"カレー\", size: 1 },\n { label: \"チャームポイント\", value: \"目元のほくろ\", size: 2 },\n { label: \"趣味\", value: \"動画配信サイトの巡回\", size: 2 },\n ],\n policyUrl: \"https://tsumugi-official.studio.site/rule\",\n detailUrl: \"https://tsumugi-official.studio.site/top\",\n },\n\n 雨晴はう: {\n name: getCharacterInfo(\"雨晴はう\").name,\n id: getCharacterInfo(\"雨晴はう\").characterId,\n ...getDatas(getCharacterInfo(\"雨晴はう\")),\n rubyName: \"雨晴(あめはれ)はう\",\n voiceFeature: \"優しく可愛い声\",\n color: \"#1D86AE\",\n lightColor: \"#B3D7DD\",\n description: \"現役看護師です!
看護師のあれこれお伝えします!\",\n labelInfos: [\n { label: \"誕生日\", value: \"10月30日\", size: 1 },\n { label: \"身長\", value: \"152 cm\", size: 1 },\n { label: \"色\", value: \"#28c4ec\", size: 1 },\n { label: \"CV\", value: \"結崎このみ\", size: 1 },\n { label: \"好きなもの\", value: \"ラーメン\", size: 2 },\n { label: \"趣味\", value: \"食べ歩き\", size: 2 },\n ],\n policyUrl: \"https://amehau.com/?page_id=225\",\n detailUrl: \"https://amehau.com/\",\n },\n\n 波音リツ: {\n name: getCharacterInfo(\"波音リツ\").name,\n id: getCharacterInfo(\"波音リツ\").characterId,\n ...getDatas(getCharacterInfo(\"波音リツ\")),\n rubyName: \"波音(なみね)リツ\",\n voiceFeature: \"低めのクールな声\",\n color: \"#FC4E32\",\n lightColor: \"#FDCDB7\",\n description:\n \"地獄のような安価を踏み抜いて生まれた、
2ch・VIP発のキャラクター。\",\n labelInfos: [\n { label: \"年齢\", value: \"6 歳\", size: 2 },\n { label: \"身長\", value: \"156 cm\", size: 2 },\n { label: \"体重\", value: \"25 トン\", size: 2 },\n { label: \"好きなもの\", value: \"チョコクリスピー\", size: 2 },\n ],\n policyUrl: \"http://canon-voice.com/kiyaku.html\",\n detailUrl: \"https://www.canon-voice.com/\",\n },\n\n 玄野武宏: {\n name: getCharacterInfo(\"玄野武宏\").name,\n id: getCharacterInfo(\"玄野武宏\").characterId,\n ...getDatas(getCharacterInfo(\"玄野武宏\")),\n rubyName:\n \"玄野(くろの)武宏(たけひろ)\",\n voiceFeature: \"爽やかな青年の声\",\n color: \"#1AA18E\",\n lightColor: \"#B3E2D8\",\n description: \"サッパリした青年。
やや短気だが面倒見は良い。\",\n labelInfos: [\n { label: \"身長\", value: \"177 cm\", size: 2 },\n { label: \"体重\", value: \"66 kg\", size: 2 },\n { label: \"年齢\", value: \"20代前後\", size: 2 },\n { label: \"誕生日\", value: \"12月24日\", size: 2 },\n ],\n policyUrl:\n \"https://virvoxproject.wixsite.com/official/voicevoxの利用規約\",\n detailUrl: \"https://virvoxproject.wixsite.com/official/玄野武宏\",\n },\n\n 白上虎太郎: {\n name: getCharacterInfo(\"白上虎太郎\").name,\n id: getCharacterInfo(\"白上虎太郎\").characterId,\n ...getDatas(getCharacterInfo(\"白上虎太郎\")),\n rubyName:\n \"白上(しらかみ)虎太郎(こたろう)\",\n voiceFeature: \"声変わり直後の少年の声\",\n color: \"#99D02B\",\n lightColor: \"#E6F5B0\",\n description:\n \"まっすぐで人懐っこい青年。
愛嬌はあるものの少しおばか。\",\n labelInfos: [\n { label: \"身長\", value: \"146 cm\", size: 2 },\n { label: \"体重\", value: \"42 kg\", size: 2 },\n { label: \"年齢\", value: \"18 歳\", size: 2 },\n { label: \"誕生日\", value: \"秋生まれ\", size: 2 },\n ],\n policyUrl:\n \"https://virvoxproject.wixsite.com/official/voicevoxの利用規約\",\n detailUrl: \"https://virvoxproject.wixsite.com/official/白上虎太郎\",\n },\n\n 青山龍星: {\n name: getCharacterInfo(\"青山龍星\").name,\n id: getCharacterInfo(\"青山龍星\").characterId,\n ...getDatas(getCharacterInfo(\"青山龍星\")),\n rubyName:\n \"青山(あおやま)龍星(りゅうせい)\",\n voiceFeature: \"重厚で低音な声\",\n color: \"#386CB0\",\n lightColor: \"#B3CDE3\",\n description: \"とにかく大柄で無骨な青年。
寡黙で冷静なストッパー枠。\",\n labelInfos: [\n { label: \"身長\", value: \"194 cm\", size: 2 },\n { label: \"体重\", value: \"94 kg\", size: 2 },\n { label: \"年齢\", value: \"24 歳\", size: 2 },\n { label: \"誕生日\", value: \"春生まれ\", size: 2 },\n ],\n policyUrl:\n \"https://virvoxproject.wixsite.com/official/voicevoxの利用規約\",\n detailUrl: \"https://virvoxproject.wixsite.com/official/青山龍星\",\n },\n\n 冥鳴ひまり: {\n name: getCharacterInfo(\"冥鳴ひまり\").name,\n id: getCharacterInfo(\"冥鳴ひまり\").characterId,\n ...getDatas(getCharacterInfo(\"冥鳴ひまり\")),\n rubyName: \"冥鳴(めいめい)ひまり\",\n voiceFeature: \"柔らかく温かい声\",\n color: \"#A45AAA\",\n lightColor: \"#CAB2D6\",\n description: \"冥界から来た死神。
可愛いものに目がない。\",\n labelInfos: [\n { label: \"年齢\", value: \"18 歳\", size: 1 },\n { label: \"種族\", value: \"死神\", size: 1 },\n { label: \"誕生日\", value: \"9月1日\", size: 1 },\n { label: \"好きな日本語\", value: \"不渡り\", size: 1 },\n { label: \"好きなもの\", value: \"可愛い女の子\", size: 2 },\n { label: \"性格\", value: \"優しくて清楚(自称)\", size: 2 },\n ],\n policyUrl: \"https://meimeihimari.wixsite.com/himari/terms-of-use\",\n detailUrl: \"https://meimeihimari.wixsite.com/himari/voicevox\",\n },\n\n 九州そら: {\n name: getCharacterInfo(\"九州そら\").name,\n id: getCharacterInfo(\"九州そら\").characterId,\n ...getDatas(getCharacterInfo(\"九州そら\")),\n rubyName:\n \"九州(きゅうしゅう)そら\",\n voiceFeature: \"気品のある大人な声\",\n color: \"#6964AD\",\n lightColor: \"#B2B6D8\",\n description:\n \"宇宙開拓用に開発されたアンドロイド。
正式名称は「九州そらmk=II」(まーくつー)。\",\n labelInfos: [\n {\n label: \"年齢\",\n value: \"0 歳(外見年齢は17歳)\",\n size: 2,\n },\n {\n label: \"身長\",\n value: \"173 cm(ヒールなしだと160cm)\",\n size: 2,\n },\n ],\n policyUrl: \"https://zunko.jp/con_ongen_kiyaku.html\",\n detailUrl: \"https://zunko.jp/#charaKS2\",\n },\n\n モチノキョウコ: {\n name: getCharacterInfo(\"モチノキョウコ\").name,\n id: getCharacterInfo(\"モチノキョウコ\").characterId,\n ...getDatas(getCharacterInfo(\"モチノキョウコ\")),\n rubyName:\n \"もち()さん\",\n voiceFeature: \"明瞭で穏やかな声\",\n color: \"#1D86AE\",\n lightColor: \"#B3D7DD\",\n description:\n \"小さい背丈で頑張る君を応援!
福島県生まれのプラモ好き犬系ヲタ娘です\",\n labelInfos: [\n { label: \"本名\", value: \"モチノ・キョウコ\", size: 1 },\n { label: \"CV\", value: \"明日葉よもぎ\", size: 1 },\n { label: \"相棒(?)\", value: \"あん子ちゃん\", size: 1 },\n { label: \"身長\", value: \"142 cm\", size: 1 },\n ],\n policyUrl: \"https://vtubermochio.wixsite.com/mochizora/利用規約\",\n detailUrl:\n \"https://vtubermochio.wixsite.com/mochizora/もち子さんとは-設定資料\",\n },\n\n 剣崎雌雄: {\n name: getCharacterInfo(\"剣崎雌雄\").name,\n id: getCharacterInfo(\"剣崎雌雄\").characterId,\n ...getDatas(getCharacterInfo(\"剣崎雌雄\")),\n rubyName:\n \"剣崎(けんざき)雌雄(めすお)\",\n voiceFeature: \"安心感のある落ち着いた声\",\n color: \"#33A65E\",\n lightColor: \"#CCEBC5\",\n description:\n \"メスお兄さんじゃねえ!メスのお兄さんだ!
(人類滅亡を目論む医療用メスの付喪神)\",\n labelInfos: [\n { label: \"種族\", value: \"医療用メス(付喪神)\", size: 2 },\n { label: \"好物\", value: \"人間のクソデカ感情・砥石\", size: 2 },\n { label: \"身長\", value: \"2m超\", size: 1 },\n { label: \"誕生日\", value: \"7月7日\", size: 1 },\n { label: \"目的\", value: \"人類滅亡\", size: 1 },\n { label: \"年齢\", value: \"3600 歳\", size: 1 },\n ],\n policyUrl: \"https://frontier.creatia.cc/fanclubs/413/posts/4507\",\n detailUrl: \"https://frontier.creatia.cc/fanclubs/413/posts/4507\",\n },\n\n WhiteCUL: {\n name: getCharacterInfo(\"WhiteCUL\").name,\n id: getCharacterInfo(\"WhiteCUL\").characterId,\n ...getDatas(getCharacterInfo(\"WhiteCUL\")),\n rubyName:\n \"WhiteCUL(ほわいとかる)\",\n voiceFeature: \"聞き心地のよい率直な声\",\n color: \"#1D86AE\",\n lightColor: \"#B3D7DD\",\n description:\n \"CULの姉。風雪月花四姉妹の雪。冷静に見えるが、
実は小心者のクールビューティー。\",\n labelInfos: [\n { label: \"年齢\", value: \"20 歳\", size: 1 },\n { label: \"身長\", value: \"165 cm\", size: 1 },\n { label: \"体重\", value: \"内緒\", size: 1 },\n { label: \"誕生日\", value: \"9月30日\", size: 1 },\n { label: \"愛称\", value: \"雪さん\", size: 1 },\n { label: \"相棒\", value: \"雪おこじょ\", size: 1 },\n { label: \"好物\", value: \"バニラソフトクリーム\", size: 2 },\n ],\n policyUrl: \"https://www.whitecul.com/guideline\",\n detailUrl: \"https://www.whitecul.com/\",\n },\n\n 後鬼: {\n name: getCharacterInfo(\"後鬼\").name,\n id: getCharacterInfo(\"後鬼\").characterId,\n ...getDatas(getCharacterInfo(\"後鬼\")),\n rubyName: \"後鬼(ごき)\",\n voiceFeature: \"包容力のある奥ゆかしい声\",\n color: \"#386CB0\",\n lightColor: \"#B3CDE3\",\n description:\n \"鬼っ子ハンターついなちゃんの式神。
人間態では色っぽい大人の女性の話し方になる。\",\n labelInfos: [\n { label: \"CV\", value: \"七海映子\", size: 1 },\n { label: \"年齢\", value: \"少なくとも1300歳以上\", size: 2 },\n { label: \"身長\", value: \"ヒール込みで170cm\", size: 2 },\n { label: \"体重\", value: \"スイカ2つ分(某部分が)\", size: 2 },\n ],\n policyUrl: \"https://ついなちゃん.com/voicevox_terms/\",\n detailUrl: \"https://ついなちゃん.com/character/?goki\",\n },\n\n No7: {\n name: getCharacterInfo(\"No7\").name,\n id: getCharacterInfo(\"No7\").characterId,\n ...getDatas(getCharacterInfo(\"No7\")),\n rubyName: \"No.7(なんばーせぶん)\",\n voiceFeature: \"しっかりした凛々しい声\",\n color: \"#A45AAA\",\n lightColor: \"#CAB2D6\",\n description:\n \"正体がつかめない不思議な女性。
得意のメイクで複数の「顔」を持つ。\",\n labelInfos: [\n { label: \"年齢\", value: \"23 歳\", size: 1 },\n { label: \"身長\", value: \"165 cm\", size: 1 },\n { label: \"CV\", value: \"小岩井ことり\", size: 1 },\n { label: \"好きなもの\", value: \"子供\", size: 1 },\n {\n label: \"性格\",\n value: \"ミニマリストで部屋の明かりは蝋燭のみ\",\n size: 2,\n },\n { label: \"趣味\", value: \"かいわれ大根の栽培\", size: 2 },\n ],\n policyUrl: \"https://voiceseven.com/#j0200\",\n detailUrl: \"https://voiceseven.com/\",\n },\n\n ちび式じい: {\n name: getCharacterInfo(\"ちび式じい\").name,\n id: getCharacterInfo(\"ちび式じい\").characterId,\n ...getDatas(getCharacterInfo(\"ちび式じい\")),\n rubyName:\n \"ちび(しき)じい\",\n voiceFeature: \"親しみのある嗄れ声\",\n color: \"#1D86AE\",\n lightColor: \"#B3D7DD\",\n description:\n \"式じいに似た姿の小さい妖精さん。
世界各地に様々な個体が生息している。\",\n labelInfos: [\n { label: \"身長\", value: \"20 cm前後\", size: 1 },\n { label: \"CV\", value: \"こんぺえる\", size: 1 },\n { label: \"好きなもの\", value: \"ジャガイモ\", size: 1 },\n { label: \"種族\", value: \"ちび式じい\", size: 1 },\n ],\n policyUrl:\n \"https://docs.google.com/presentation/d/1AcD8zXkfzKFf2ertHwWRwJuQXjNnijMxhz7AJzEkaI4\",\n detailUrl:\n \"https://shiki-rowen-taigen.com/%e5%88%a9%e7%94%a8%e8%a6%8f%e7%b4%84%e3%83%bb%e3%82%ac%e3%82%a4%e3%83%89%e3%83%a9%e3%82%a4%e3%83%b3/\",\n },\n\n 櫻歌ミコ: {\n name: getCharacterInfo(\"櫻歌ミコ\").name,\n id: getCharacterInfo(\"櫻歌ミコ\").characterId,\n ...getDatas(getCharacterInfo(\"櫻歌ミコ\")),\n rubyName:\n \"櫻歌(おうか)ミコ\",\n voiceFeature: \"かわいらしい少女の声\",\n color: \"#F9344C\",\n lightColor: \"#FBB4C4\",\n description:\n \"ニホンオオカミの女の子。
もうひとりのミコ(通称:第二ちゃん)がいる。\",\n labelInfos: [\n { label: \"年齢\", value: \"3.5 歳\", size: 1 },\n { label: \"身長\", value: \"135 cm\", size: 1 },\n { label: \"体重\", value: \"35 kg\", size: 1 },\n { label: \"誕生日\", value: \"12月24日\", size: 1 },\n { label: \"性格\", value: \"ガブデレ\", size: 1 },\n { label: \"持ち物\", value: \"りんご/骨\", size: 1 },\n { label: \"愛称\", value: \"みこみこ/第二ちゃん\", size: 2 },\n ],\n policyUrl: \"https://voicevox35miko.studio.site/rule\",\n detailUrl: \"https://voicevox35miko.studio.site/\",\n },\n\n 小夜_SAYO: {\n name: getCharacterInfo(\"小夜_SAYO\").name,\n id: getCharacterInfo(\"小夜_SAYO\").characterId,\n ...getDatas(getCharacterInfo(\"小夜_SAYO\")),\n rubyName:\n \"小夜(さよ)/SAYO\",\n voiceFeature: \"和やかで温厚な声\",\n color: \"#FF6687\",\n lightColor: \"#FBB4C4\",\n description:\n \"おしゃべりがすきなねこの女の子。
おいしいものを与えると懐きやすい。\",\n labelInfos: [\n { label: \"誕生日\", value: \"9月29日\", size: 1 },\n { label: \"好きなもの\", value: \"缶詰\", size: 1 },\n { label: \"体長\", value: \"135 cm(猫耳を含む)\", size: 2 },\n ],\n policyUrl: \"https://316soramegu.wixsite.com/sayo-official/guideline\",\n detailUrl: \"https://316soramegu.wixsite.com/sayo-official\",\n },\n\n ナースロボ_タイプT: {\n name: getCharacterInfo(\"ナースロボ_タイプT\").name,\n id: getCharacterInfo(\"ナースロボ_タイプT\").characterId,\n ...getDatas(getCharacterInfo(\"ナースロボ_タイプT\")),\n rubyName:\n \"ナースロボ_タイプ(てぃー)\",\n voiceFeature: \"冷静で慎み深い声\",\n color: \"#FF9914\",\n lightColor: \"#FEE6AA\",\n description:\n \"医者に作られたナース形ロボット。
人格は少女と設定されている。\",\n labelInfos: [\n { label: \"年齢\", value: \"五ヶ月\", size: 1 },\n { label: \"誕生日\", value: \"12月3日\", size: 1 },\n { label: \"身長\", value: \"150~160 cm(パーツによる)\", size: 2 },\n { label: \"愛称\", value: \"TT\", size: 2 },\n { label: \"製造者\", value: \"そばの小型ロボット(医者)\", size: 2 },\n ],\n policyUrl: \"https://www.krnr.top/rules\",\n detailUrl: \"https://www.krnr.top/blank\",\n },\n\n 聖騎士紅桜: {\n name: getCharacterInfo(\"聖騎士紅桜\").name,\n id: getCharacterInfo(\"聖騎士紅桜\").characterId,\n ...getDatas(getCharacterInfo(\"聖騎士紅桜\")),\n rubyName:\n \"聖騎士(ほーりーないと)紅桜(べにざくら)\",\n voiceFeature: \"快活でハキハキした声\",\n color: \"#F9344C\",\n lightColor: \"#FBB4C4\",\n description: \"黒き歴史を背負いし
孤高の聖騎士\",\n labelInfos: [\n { label: \"年齢\", value: \"永遠ノLv.14\", size: 1 },\n { label: \"誕生日\", value: \"1月22日\", size: 1 },\n { label: \"種族\", value: \"聖騎士\", size: 1 },\n { label: \"好きなもの\", value: \"戦い\", size: 1 },\n { label: \"チャームポイント\", value: \"鎧に着いた返り血\", size: 2 },\n { label: \"相棒\", value: \"聖剣「紅」(クリムゾン)\", size: 2 },\n ],\n policyUrl: \"https://commons.nicovideo.jp/material/nc296132\",\n detailUrl: \"https://commons.nicovideo.jp/material/nc296132\",\n },\n\n 雀松朱司: {\n name: getCharacterInfo(\"雀松朱司\").name,\n id: getCharacterInfo(\"雀松朱司\").characterId,\n ...getDatas(getCharacterInfo(\"雀松朱司\")),\n rubyName:\n \"雀松(わかまつ)朱司(あかし)\",\n voiceFeature: \"物静かで安定した声\",\n color: \"#FC4E32\",\n lightColor: \"#FDCDB7\",\n description:\n \"温厚なしっかり者の青年。
ちょっぴり天然で抜けている面も・・・。\",\n labelInfos: [\n { label: \"身長\", value: \"182 cm\", size: 1 },\n { label: \"体重\", value: \"68 kg\", size: 1 },\n { label: \"年齢\", value: \"26 歳\", size: 1 },\n { label: \"誕生日\", value: \"7月17日\", size: 1 },\n { label: \"趣味\", value: \"読書、掃除、買い物\", size: 2 },\n ],\n policyUrl:\n \"https://virvoxproject.wixsite.com/official/voicevoxの利用規約\",\n detailUrl: \"https://virvoxproject.wixsite.com/official/雀松朱司\",\n },\n\n 麒ヶ島宗麟: {\n name: getCharacterInfo(\"麒ヶ島宗麟\").name,\n id: getCharacterInfo(\"麒ヶ島宗麟\").characterId,\n ...getDatas(getCharacterInfo(\"麒ヶ島宗麟\")),\n rubyName:\n \"麒ヶ島(きがしま)宗麟(そうりん)\",\n voiceFeature: \"渋いおじさん声\",\n color: \"#FF9914\",\n lightColor: \"#FEE6AA\",\n description:\n \"流行に敏感ないぶし銀おじいちゃん。
非常にミーハーでノリが良い。\",\n labelInfos: [\n { label: \"身長\", value: \"175 cm\", size: 1 },\n { label: \"体重\", value: \"79 kg\", size: 1 },\n { label: \"年齢\", value: \"50 歳(見た目年齢)※実年齢不明\", size: 2 },\n { label: \"趣味1\", value: \"パワースポット(霊脈?)巡り\", size: 2 },\n { label: \"趣味2\", value: \"入浴、SNS投稿\", size: 2 },\n ],\n policyUrl:\n \"https://virvoxproject.wixsite.com/official/voicevoxの利用規約\",\n detailUrl: \"https://virvoxproject.wixsite.com/official/麒ヶ島宗麟\",\n },\n\n 春歌ナナ: {\n name: getCharacterInfo(\"春歌ナナ\").name,\n id: getCharacterInfo(\"春歌ナナ\").characterId,\n ...getDatas(getCharacterInfo(\"春歌ナナ\")),\n rubyName: \"春歌(はるか)ナナ\",\n voiceFeature: \"はつらつとした力強い声\",\n color: \"#DF4C94\",\n lightColor: \"#E3ADD5\",\n description: \"いつだって元気いっぱいな女の子です。\",\n labelInfos: [\n { label: \"年齢\", value: \"10 歳\", size: 1 },\n { label: \"誕生日\", value: \"1月30日\", size: 1 },\n { label: \"身長\", value: \"137 cm(アホ毛込み)\", size: 2 },\n { label: \"好物\", value: \"サラミ、わらびもち\", size: 2 },\n { label: \"CV\", value: \"ななひら\", size: 2 },\n ],\n policyUrl: \"https://nanahira.jp/haruka_nana/guideline.html\",\n detailUrl: \"https://nanahira.jp/haruka_nana/\",\n },\n\n 猫使アル: {\n name: getCharacterInfo(\"猫使アル\").name,\n id: getCharacterInfo(\"猫使アル\").characterId,\n ...getDatas(getCharacterInfo(\"猫使アル\")),\n rubyName: \"猫使(ねこつか)アル\",\n voiceFeature: \"厚みのある気さくな声\",\n color: \"#F9344C\",\n lightColor: \"#FBB4C4\",\n description: \"謎の研究所で作られた
猫使シリーズの タイプ:Red\",\n labelInfos: [\n { label: \"身長\", value: \"140 cm\", size: 1 },\n { label: \"誕生日\", value: \"6月17日\", size: 1 },\n { label: \"年齢\", value: \"外見年齢10代前半\", size: 2 },\n { label: \"性格\", value: \"マイペース\", size: 1 },\n { label: \"好きなもの\", value: \"はまち\", size: 1 },\n { label: \"苦手なもの\", value: \"ねずみ\", size: 1 },\n { label: \"趣味\", value: \"噛むこと\", size: 1 },\n ],\n policyUrl: \"https://nekotukarb.wixsite.com/nekonohako/利用規約\",\n detailUrl: \"https://nekotukarb.wixsite.com/nekonohako\",\n },\n\n 猫使ビィ: {\n name: getCharacterInfo(\"猫使ビィ\").name,\n id: getCharacterInfo(\"猫使ビィ\").characterId,\n ...getDatas(getCharacterInfo(\"猫使ビィ\")),\n rubyName: \"猫使(ねこつか)ビィ\",\n voiceFeature: \"ピュアであどけない声\",\n color: \"#1D86AE\",\n lightColor: \"#B3D7DD\",\n description: \"謎の研究所で作られた
猫使シリーズの タイプ:Blue\",\n labelInfos: [\n { label: \"身長\", value: \"140 cm\", size: 1 },\n { label: \"誕生日\", value: \"6月17日\", size: 1 },\n { label: \"年齢\", value: \"外見年齢10代前半\", size: 2 },\n { label: \"性格\", value: \"シャイで臆病\", size: 1 },\n { label: \"好きなもの\", value: \"サーモン\", size: 1 },\n { label: \"苦手なもの\", value: \"おばけ\", size: 1 },\n { label: \"趣味\", value: \"おひるね\", size: 1 },\n ],\n policyUrl: \"https://nekotukarb.wixsite.com/nekonohako/利用規約\",\n detailUrl: \"https://nekotukarb.wixsite.com/nekonohako\",\n },\n\n 中国うさぎ: {\n name: getCharacterInfo(\"中国うさぎ\").name,\n id: getCharacterInfo(\"中国うさぎ\").characterId,\n ...getDatas(getCharacterInfo(\"中国うさぎ\")),\n rubyName:\n \"中国(ちゅうごく)うさぎ\",\n voiceFeature: \"幽玄で初々しい声\",\n color: \"#FC4E32\",\n lightColor: \"#FDCDB7\",\n description:\n \"巫女みこネットワークの一員で、日本各地で怪異の情報を集める。ぼそぼそしゃべるタイプの無口キャラ\",\n labelInfos: [\n { label: \"身長\", value: \"147 cm\", size: 1 },\n { label: \"年齢\", value: \"14 歳\", size: 1 },\n { label: \"相棒\", value: \"ぬいぐるみ「いなば」\", size: 2 },\n ],\n policyUrl: \"https://zunko.jp/con_ongen_kiyaku.html\",\n detailUrl: \"https://zunko.jp/#charaCU\",\n },\n\n 栗田まろん: {\n name: getCharacterInfo(\"栗田まろん\").name,\n id: getCharacterInfo(\"栗田まろん\").characterId,\n ...getDatas(getCharacterInfo(\"栗田まろん\")),\n rubyName: \"栗田(くりた)まろん\",\n voiceFeature: \"深みのある中性的な声\",\n color: \"#1AA18E\",\n lightColor: \"#B3E2D8\",\n description:\n \"友人たちに乗せられて女装したら好評だった
男子高生。図書委員所属。\",\n labelInfos: [\n { label: \"身長\", value: \"165 cm\", size: 1 },\n { label: \"誕生日\", value: \"10月9日\", size: 1 },\n { label: \"色\", value: \"栗色\", size: 1 },\n { label: \"CV\", value: \"栗田穣崇\", size: 1 },\n { label: \"趣味\", value: \"読書\", size: 2 },\n { label: \"好物\", value: \"モンブラン、マロンパフェ\", size: 2 },\n ],\n policyUrl: \"https://aivoice.jp/character/maron/\",\n detailUrl: \"https://aivoice.jp/character/maron/\",\n },\n\n 藍田ノエル: {\n name: getCharacterInfo(\"藍田ノエル\").name,\n id: getCharacterInfo(\"藍田ノエル\").characterId,\n ...getDatas(getCharacterInfo(\"藍田ノエル\")),\n rubyName: \"あいえるたん\",\n voiceFeature: \"心地よい物柔らかな声\",\n color: \"#FF9914\",\n lightColor: \"#FEE6AA\",\n description:\n \"札幌市内の高校に通う元気な女子高生。
IT企業でマスコット/アルバイトとして活躍中。\",\n labelInfos: [\n { label: \"本名\", value: \"藍田ノエル\", size: 1 },\n { label: \"CV\", value: \"Milia\", size: 1 },\n { label: \"年齢\", value: \"16 歳\", size: 1 },\n { label: \"誕生日\", value: \"7月1日\", size: 1 },\n { label: \"身長\", value: \"154.8 cm\", size: 1 },\n { label: \"好物\", value: \"コーラ\", size: 1 },\n { label: \"趣味\", value: \"プログラミング、ゲーム\", size: 2 },\n ],\n policyUrl: \"https://www.infiniteloop.co.jp/special/iltan/terms/\",\n detailUrl: \"https://www.infiniteloop.co.jp/special/iltan/\",\n },\n\n 満別花丸: {\n name: getCharacterInfo(\"満別花丸\").name,\n id: getCharacterInfo(\"満別花丸\").characterId,\n ...getDatas(getCharacterInfo(\"満別花丸\")),\n rubyName:\n \"満別(まんべつ)花丸(はなまる)\",\n voiceFeature: \"生き生きとした際立つ声\",\n color: \"#99D02B\",\n lightColor: \"#E6F5B0\",\n description: \"全人類みんなにはなまるをあげる音声キャラクター\",\n labelInfos: [\n { label: \"身長\", value: \"138 cm\", size: 2 },\n { label: \"誕生日\", value: \"8月7日\", size: 2 },\n { label: \"出身\", value: \"北海道\", size: 2 },\n { label: \"好物\", value: \"うめぼし\", size: 2 },\n ],\n policyUrl: \"https://100hanamaru.wixsite.com/manbetsu-hanamaru/rule\",\n detailUrl: \"https://100hanamaru.wixsite.com/manbetsu-hanamaru\",\n },\n\n 琴詠ニア: {\n name: getCharacterInfo(\"琴詠ニア\").name,\n id: getCharacterInfo(\"琴詠ニア\").characterId,\n ...getDatas(getCharacterInfo(\"琴詠ニア\")),\n rubyName: \"琴詠(ことよみ)ニア\",\n voiceFeature: \"滑らかで無機質な声\",\n color: \"#FB8028\",\n lightColor: \"#FFD6B8\",\n description:\n \"N Airのシルエットが推し。ニコ生のコメントを
読み上げている、宇宙を旅する女の子。\",\n labelInfos: [\n { label: \"誕生日\", value: \"11月25日\", size: 1 },\n { label: \"CV\", value: \"ドワンゴの中の人\", size: 1 },\n { label: \"趣味\", value: \"グッズ制作\", size: 1 },\n { label: \"ルーティン\", value: \"配信チェック\", size: 1 },\n ],\n policyUrl: \"https://commons.nicovideo.jp/works/nc315435\",\n detailUrl: \"https://n-air-app.nicovideo.jp/\",\n },\n } as const\n\n const characterInfos = useMemo(() => _characterInfos, [])\n const callNameInfos = useMemo(() => _callNameInfos, [])\n\n return {\n characterInfos,\n callNameInfos,\n } as const\n}\n\nconst _callNameInfos: {\n [key in CharacterKey]: {\n [key in CharacterKey]?: string | undefined\n } & { me: readonly string[]; you: readonly string[] }\n} = {\n 四国めたん: {\n me: [\"わたくし\"],\n you: [\"貴女(たち)\", \"アンタ(ら)\"],\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"つむぎさん\",\n 雨晴はう: \"はうさん\",\n 波音リツ: \"リツさん\",\n 玄野武宏: \"玄野さん\",\n 白上虎太郎: \"白上さん\",\n 青山龍星: \"青山さん\",\n 冥鳴ひまり: \"ひまりさん\",\n 九州そら: \"そら\",\n モチノキョウコ: \"もち子さん\",\n 剣崎雌雄: \"剣崎さん\",\n WhiteCUL: \"雪さん\",\n 後鬼: \"後鬼さん\",\n No7: \"セブンさん\",\n ちび式じい: \"ちび式じいさん\",\n 櫻歌ミコ: \"ミコさん\",\n 小夜_SAYO: \"小夜さん\",\n ナースロボ_タイプT: \"TTさん\",\n 聖騎士紅桜: \"聖騎士さん\",\n 雀松朱司: \"雀松さん\",\n 麒ヶ島宗麟: \"麒ヶ島さん\",\n 春歌ナナ: \"ナナさん\",\n 猫使アル: \"アルさん\",\n 猫使ビィ: \"ビィさん\",\n 中国うさぎ: \"うさぎ\",\n 栗田まろん: \"栗田さん\",\n 藍田ノエル: \"あいえるさん\",\n 満別花丸: \"花丸さん\",\n 琴詠ニア: \"ニアさん\",\n },\n ずんだもん: {\n me: [\"ずんだもん\", \"僕\"],\n you: [\"オマエ\", \"みんな\"],\n 四国めたん: \"めたん\",\n 春日部つむぎ: \"つむぎ\",\n 雨晴はう: \"はう\",\n 波音リツ: \"リツ\",\n 玄野武宏: \"たけひろ\",\n 白上虎太郎: \"こたろう\",\n 青山龍星: \"りゅうせい\",\n 冥鳴ひまり: \"ひまり\",\n 九州そら: \"そら\",\n モチノキョウコ: \"もち子\",\n 剣崎雌雄: \"めすお\",\n WhiteCUL: \"雪\",\n 後鬼: \"後鬼\",\n No7: \"セブン\",\n ちび式じい: \"ちび式じい\",\n 櫻歌ミコ: \"ミコ\",\n 小夜_SAYO: \"小夜\",\n ナースロボ_タイプT: \"TT\",\n 聖騎士紅桜: \"紅桜\",\n 雀松朱司: \"朱司\",\n 麒ヶ島宗麟: \"宗麟\",\n 春歌ナナ: \"ナナ\",\n 猫使アル: \"アル\",\n 猫使ビィ: \"ビィ\",\n 中国うさぎ: \"うさぎ\",\n 栗田まろん: \"まろん\",\n 藍田ノエル: \"あいえる\",\n 満別花丸: \"はなまる\",\n 琴詠ニア: \"ニア\",\n },\n 春日部つむぎ: {\n me: [\"あーし\"],\n you: [\"きみ\", \"きみたち\"],\n 四国めたん: \"めたん先輩\",\n ずんだもん: \"ずんだもん先輩\",\n 雨晴はう: \"はうちゃん\",\n 波音リツ: \"りっちゃん\",\n 玄野武宏: \"武宏くん\",\n 白上虎太郎: \"虎太郎くん\",\n 青山龍星: \"龍星くん\",\n 冥鳴ひまり: \"ひまっち\",\n 九州そら: \"そらさん\",\n モチノキョウコ: \"もち子ちゃん\",\n 剣崎雌雄: \"めすおちゃん\",\n WhiteCUL: \"ゆきちゃん\",\n 後鬼: \"後鬼せんせー\",\n No7: \"ななっち\",\n ちび式じい: \"ちびじい\",\n 櫻歌ミコ: \"みこっち\",\n 小夜_SAYO: \"さよち\",\n ナースロボ_タイプT: \"TTちゃん\",\n 聖騎士紅桜: \"聖騎士くん\",\n 雀松朱司: \"赤司くん\",\n 麒ヶ島宗麟: \"宗麟おじ\",\n 春歌ナナ: \"ナナっち\",\n 猫使アル: \"アルにゃん\",\n 猫使ビィ: \"ビィにゃん\",\n 中国うさぎ: \"うさぎちゃん\",\n 栗田まろん: \"まろんちゃん\",\n 琴詠ニア: \"ニアちゃん\",\n },\n 雨晴はう: {\n me: [\"僕\"],\n you: [\"あなた\", \"あなた達\"],\n 四国めたん: \"めたんさん\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"つむぎさん\",\n 波音リツ: \"リツさん\",\n 玄野武宏: \"玄野さん\",\n 白上虎太郎: \"白上さん\",\n 青山龍星: \"青山さん\",\n 冥鳴ひまり: \"ひまりさん\",\n 九州そら: \"そらさん\",\n モチノキョウコ: \"もち子さん\",\n 剣崎雌雄: \"剣崎さん\",\n WhiteCUL: \"ゆきさん\",\n 後鬼: \"ごきさん\",\n No7: \"ななさん\",\n ちび式じい: \"お式さん\",\n 櫻歌ミコ: \"ミコちゃん\",\n 小夜_SAYO: \"小夜さん\",\n ナースロボ_タイプT: \"Tちゃん\",\n 聖騎士紅桜: \"紅桜さん\",\n 雀松朱司: \"雀松さん\",\n 麒ヶ島宗麟: \"麒ヶ島さん\",\n 春歌ナナ: \"春歌さん\",\n 猫使アル: \"アルちゃん\",\n 猫使ビィ: \"ビィちゃん\",\n 中国うさぎ: \"うさちゃん\",\n 栗田まろん: \"栗田さん\",\n 琴詠ニア: \"ニアちゃん\",\n },\n 波音リツ: {\n me: [\"あたし\"],\n you: [\"アンタ\", \"アンタら\"],\n 四国めたん: \"めたん\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"つむぎ\",\n 雨晴はう: \"はう\",\n 玄野武宏: \"くろの\",\n 白上虎太郎: \"こたろう\",\n 青山龍星: \"りゅうせい\",\n 冥鳴ひまり: \"ひまり\",\n 九州そら: \"そら\",\n モチノキョウコ: \"もち子\",\n 剣崎雌雄: \"めすお\",\n WhiteCUL: \"ゆき\",\n 後鬼: \"ごき\",\n No7: \"なな\",\n ちび式じい: \"式じい\",\n 櫻歌ミコ: \"ミコ\",\n 小夜_SAYO: \"さよ\",\n ナースロボ_タイプT: \"TT\",\n 聖騎士紅桜: \"べにざくら\",\n 雀松朱司: \"あかし\",\n 麒ヶ島宗麟: \"そうりん\",\n 春歌ナナ: \"ナナ\",\n 猫使アル: \"アル\",\n 猫使ビィ: \"ビィ\",\n 中国うさぎ: \"うさぎ\",\n 栗田まろん: \"まろん\",\n 藍田ノエル: \"あいえる\",\n 満別花丸: \"花丸\",\n 琴詠ニア: \"ニア\",\n },\n 玄野武宏: {\n me: [\"俺\"],\n you: [\"お前\", \"お前ら\"],\n 四国めたん: \"めたん\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"つむぎ\",\n 雨晴はう: \"はう\",\n 波音リツ: \"リツ\",\n 白上虎太郎: \"虎太郎\",\n 青山龍星: \"龍星\",\n 冥鳴ひまり: \"ひまり\",\n 九州そら: \"そら\",\n モチノキョウコ: \"もち子\",\n 剣崎雌雄: \"雌雄\",\n WhiteCUL: \"雪\",\n 後鬼: \"後鬼\",\n No7: \"なな\",\n ちび式じい: \"小さいじいさん\",\n 櫻歌ミコ: \"ミコ\",\n 小夜_SAYO: \"小夜\",\n ナースロボ_タイプT: \"タイプT\",\n 聖騎士紅桜: \"紅桜\",\n 雀松朱司: \"朱司\",\n 麒ヶ島宗麟: \"おっさん\",\n 春歌ナナ: \"ナナ\",\n 猫使アル: \"アル\",\n 猫使ビィ: \"ビィ\",\n },\n 白上虎太郎: {\n me: [\"おれ\"],\n you: [\"きみ\", \"きみ達\"],\n 四国めたん: \"めたんちゃん\",\n ずんだもん: \"ずんずん\",\n 春日部つむぎ: \"つむぎちゃん\",\n 雨晴はう: \"はうさん\",\n 波音リツ: \"リツさん\",\n 玄野武宏: \"タケヒロ\",\n 青山龍星: \"リューセー\",\n 冥鳴ひまり: \"ひまりちゃん\",\n 九州そら: \"そらさん\",\n モチノキョウコ: \"もち子さん\",\n 剣崎雌雄: \"シユー\",\n WhiteCUL: \"ユキさん\",\n 後鬼: \"ゴキさん\",\n No7: \"ナナちゃんさん\",\n ちび式じい: \"ちっちゃい式じい\",\n 櫻歌ミコ: \"ミコちゃん\",\n 小夜_SAYO: \"サヨちゃん\",\n ナースロボ_タイプT: \"Tちゃん\",\n 聖騎士紅桜: \"ベニザクラさん\",\n 雀松朱司: \"アカシさん\",\n 麒ヶ島宗麟: \"おっちゃん\",\n 春歌ナナ: \"ナナちゃん\",\n 猫使アル: \"アルちゃん\",\n 猫使ビィ: \"ビィちゃん\",\n },\n 青山龍星: {\n me: [\"オレ\"],\n you: [\"アンタ\", \"アンタ達\", \"お前達\"],\n 四国めたん: \"めたん\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"つむぎ\",\n 雨晴はう: \"はう\",\n 波音リツ: \"リツ\",\n 玄野武宏: \"武宏\",\n 白上虎太郎: \"虎太郎\",\n 冥鳴ひまり: \"ひまり\",\n 九州そら: \"そら\",\n モチノキョウコ: \"もち子\",\n 剣崎雌雄: \"雌雄\",\n WhiteCUL: \"雪\",\n 後鬼: \"後鬼\",\n No7: \"セブン\",\n ちび式じい: \"小さい大元さん\",\n 櫻歌ミコ: \"ミコ\",\n 小夜_SAYO: \"小夜\",\n ナースロボ_タイプT: \"T\",\n 聖騎士紅桜: \"紅桜\",\n 雀松朱司: \"朱司\",\n 麒ヶ島宗麟: \"親父\",\n 春歌ナナ: \"ナナ\",\n 猫使アル: \"アル\",\n 猫使ビィ: \"ビィ\",\n },\n 冥鳴ひまり: {\n me: [\"私\"],\n you: [\"君たち\"],\n 四国めたん: \"めたん先輩\",\n ずんだもん: \"ずんだもん先輩\",\n 春日部つむぎ: \"つむぎ先輩\",\n 雨晴はう: \"はう先輩\",\n 波音リツ: \"リツ先輩\",\n 玄野武宏: \"武宏くん\",\n 白上虎太郎: \"虎太郎くん\",\n 青山龍星: \"龍星くん\",\n 九州そら: \"そらちゃん\",\n モチノキョウコ: \"もち子ちゃん\",\n 剣崎雌雄: \"メスオジ\",\n WhiteCUL: \"ゆきちゃん\",\n 後鬼: \"後鬼ちゃん\",\n No7: \"ななちゃん\",\n ちび式じい: \"ちびじい\",\n 櫻歌ミコ: \"ミコちゃん\",\n 小夜_SAYO: \"小夜ちゃん\",\n ナースロボ_タイプT: \"TTちゃん\",\n 聖騎士紅桜: \"聖騎士さん\",\n 雀松朱司: \"朱司くん\",\n 麒ヶ島宗麟: \"宗麟くん\",\n 春歌ナナ: \"ナナちゃん\",\n 猫使アル: \"アルちゃん\",\n 猫使ビィ: \"ビィちゃん\",\n 中国うさぎ: \"うさちゃん\",\n 栗田まろん: \"まろんちゃん\",\n 琴詠ニア: \"ニアちゃん\",\n },\n 九州そら: {\n me: [\"まーくつー\"],\n you: [\"あなたさま\", \"みなさま\"],\n 四国めたん: \"めたんさま\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"つむぎさま\",\n 雨晴はう: \"はうさま\",\n 波音リツ: \"リツさま\",\n 玄野武宏: \"武宏さま\",\n 白上虎太郎: \"虎太郎さま\",\n 青山龍星: \"龍星さま\",\n 冥鳴ひまり: \"ひまりさま\",\n モチノキョウコ: \"もち子さま\",\n 剣崎雌雄: \"雌雄さま\",\n WhiteCUL: \"雪さま\",\n 後鬼: \"後鬼さま\",\n No7: \"セブンさま\",\n ちび式じい: \"ちび式じいさま\",\n 櫻歌ミコ: \"ミコさま\",\n 小夜_SAYO: \"小夜さま\",\n ナースロボ_タイプT: \"TTさま\",\n 聖騎士紅桜: \"紅桜さま\",\n 雀松朱司: \"朱司さま\",\n 麒ヶ島宗麟: \"宗麟さま\",\n 春歌ナナ: \"ナナさま\",\n 猫使アル: \"アルさま\",\n 猫使ビィ: \"ビィさま\",\n 中国うさぎ: \"うさぎさま\",\n 栗田まろん: \"まろんさま\",\n 藍田ノエル: \"あいえるさま\",\n 満別花丸: \"花丸様\",\n 琴詠ニア: \"ニアさま\",\n },\n モチノキョウコ: {\n me: [\"私\", \"もち子\"],\n you: [\"あなた\", \"あなた達\"],\n 四国めたん: \"めたんさん\",\n ずんだもん: \"ずんだもんちゃん\",\n 春日部つむぎ: \"つむぎさん\",\n 雨晴はう: \"はうちゃん\",\n 波音リツ: \"リッちゃん先輩\",\n 玄野武宏: \"玄野くん\",\n 白上虎太郎: \"白上くん\",\n 青山龍星: \"青山くん\",\n 冥鳴ひまり: \"ひまり先輩\",\n 九州そら: \"そらさん\",\n 剣崎雌雄: \"剣崎さん\",\n WhiteCUL: \"ユキさん\",\n 後鬼: \"後鬼お姉さん\",\n No7: \"セブンちゃん\",\n ちび式じい: \"ちび式さん\",\n 櫻歌ミコ: \"ミコちゃん\",\n 小夜_SAYO: \"小夜ちゃん\",\n ナースロボ_タイプT: \"ティーさん(Tさん)\",\n 聖騎士紅桜: \"紅桜\",\n 雀松朱司: \"雀松くん\",\n 麒ヶ島宗麟: \"麒ヶ島さん\",\n 春歌ナナ: \"ナナちゃん\",\n 猫使アル: \"アルちゃん\",\n 猫使ビィ: \"ビィちゃん\",\n 中国うさぎ: \"うさぎちゃん\",\n 栗田まろん: \"まろんくん\",\n 藍田ノエル: \"えるさん\",\n 満別花丸: \"花丸ちゃん\",\n 琴詠ニア: \"ニアちゃん\",\n },\n 剣崎雌雄: {\n me: [\"僕\"],\n you: [\"君等\"],\n 四国めたん: \"くにさん\",\n ずんだもん: \"だーもん\",\n 春日部つむぎ: \"べっつー\",\n 雨晴はう: \"はーさん\",\n 波音リツ: \"ねりさん\",\n 玄野武宏: \"くーろん\",\n 白上虎太郎: \"こっちゃん\",\n 青山龍星: \"りゅうさん\",\n 冥鳴ひまり: \"めまりちゃん\",\n 九州そら: \"らーさん\",\n モチノキョウコ: \"もっちー\",\n WhiteCUL: \"とかっち\",\n 後鬼: \"ごっさん\",\n No7: \"ぶんぶん丸\",\n ちび式じい: \"小元\",\n 櫻歌ミコ: \"カミッコ\",\n 小夜_SAYO: \"小夜\",\n ナースロボ_タイプT: \"助手\",\n 聖騎士紅桜: \"我が強敵(とも)スカーレットチェリーブロッサム\",\n 雀松朱司: \"かっしー\",\n 麒ヶ島宗麟: \"りんちゃん\",\n 春歌ナナ: \"るかなん\",\n 猫使アル: \"カール\",\n 猫使ビィ: \"カービィ\",\n 中国うさぎ: \"ごくう\",\n 栗田まろん: \"まろん\",\n 藍田ノエル: \"L\",\n 満別花丸: \"まんまる\",\n 琴詠ニア: \"おことさん\",\n },\n WhiteCUL: {\n me: [\"わたし\"],\n you: [\"あなた\", \"あなたたち\"],\n 四国めたん: \"めたんちゃん\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"つむぎ\",\n 雨晴はう: \"はうちゃん\",\n 波音リツ: \"リツちゃん\",\n 玄野武宏: \"武弘さん\",\n 白上虎太郎: \"虎太郎くん\",\n 青山龍星: \"りゅうちゃん\",\n 冥鳴ひまり: \"ひまりん\",\n 九州そら: \"そらさん\",\n モチノキョウコ: \"もちこさん\",\n 剣崎雌雄: \"剣崎さん\",\n 後鬼: \"後鬼さん\",\n No7: \"ななさん\",\n ちび式じい: \"ちびじい\",\n 櫻歌ミコ: \"ミコちゃん\",\n 小夜_SAYO: \"小夜ちゃん\",\n ナースロボ_タイプT: \"TTちゃん\",\n 聖騎士紅桜: \"紅桜さん\",\n 雀松朱司: \"朱司くん\",\n 麒ヶ島宗麟: \"そうりん\",\n 春歌ナナ: \"ナナちゃん\",\n 猫使アル: \"アルさん\",\n 猫使ビィ: \"ビィさん\",\n },\n 後鬼: {\n me: [\"私/ワテ\"],\n you: [\"あなたorキミ/あんたはん\"],\n 四国めたん: \"四国さん/めたんはん\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"春日部さん/つむぎはん\",\n 雨晴はう: \"雨晴さん/はうはん\",\n 波音リツ: \"波音さん/リツはん\",\n 玄野武宏: \"玄野くん/玄野はん\",\n 白上虎太郎: \"白上くん/白上はん\",\n 青山龍星: \"青山くん/龍星はん\",\n 冥鳴ひまり: \"冥鳴さん/ひまりはん\",\n 九州そら: \"九州さん/九州はん\",\n モチノキョウコ: \"もち子さん/もち子はん\",\n 剣崎雌雄: \"剣崎くん/剣崎はん\",\n WhiteCUL: \"雪さん/雪はん\",\n No7: \"セブンさん/セブンはん\",\n ちび式じい: \"おちびさん/ちび式じいはん\",\n 櫻歌ミコ: \"櫻歌さん/ミコはん\",\n 小夜_SAYO: \"小夜さん/小夜はん\",\n ナースロボ_タイプT: \"TTさん/TTはん\",\n 聖騎士紅桜: \"紅桜さん/紅桜はん\",\n 雀松朱司: \"雀松くん/雀松はん\",\n 麒ヶ島宗麟: \"宗麟さん/宗麟はん\",\n 春歌ナナ: \"春歌さん/ナナはん\",\n 猫使アル: \"アルさん/アルはん\",\n 猫使ビィ: \"ビィさん/ビィはん\",\n 中国うさぎ: \"中国さん/中国はん\",\n 栗田まろん: \"栗田くん/栗田はん\",\n 藍田ノエル: \"あいえるさん/あいえるはん\",\n 満別花丸: \"満別さん/花丸はん\",\n 琴詠ニア: \"琴詠さん/ニアはん\",\n },\n No7: {\n me: [\"私\", \"僕\"],\n you: [\"そちら様\", \"皆様\"],\n 四国めたん: \"四国さん\",\n ずんだもん: \"ずんだもん様\",\n 春日部つむぎ: \"春日部さん\",\n 雨晴はう: \"雨晴さん\",\n 波音リツ: \"波音さん\",\n 玄野武宏: \"玄野さん\",\n 白上虎太郎: \"白上さん\",\n 青山龍星: \"青山さん\",\n 冥鳴ひまり: \"冥鳴さん\",\n 九州そら: \"九州さん\",\n モチノキョウコ: \"モチノさん\",\n 剣崎雌雄: \"剣崎さん\",\n WhiteCUL: \"雪さん\",\n 後鬼: \"後鬼さん\",\n ちび式じい: \"ちび式さん\",\n 櫻歌ミコ: \"櫻歌さん\",\n 小夜_SAYO: \"小夜さん\",\n ナースロボ_タイプT: \"TTさん\",\n 聖騎士紅桜: \"紅桜さん\",\n 雀松朱司: \"雀松さん\",\n 麒ヶ島宗麟: \"麒ヶ島さん\",\n 春歌ナナ: \"春歌さん\",\n 猫使アル: \"アルさん\",\n 猫使ビィ: \"ビィさん\",\n 中国うさぎ: \"中国さん\",\n 栗田まろん: \"栗田さん\",\n 藍田ノエル: \"あいえるさん\",\n 満別花丸: \"満別さん\",\n 琴詠ニア: \"琴詠さん\",\n },\n ちび式じい: {\n me: [\"わし\"],\n you: [\"おぬし\", \"おぬしら\"],\n 四国めたん: \"めたんちゃん\",\n ずんだもん: \"ずんだの精さん\",\n 春日部つむぎ: \"つむぎちゃん\",\n 雨晴はう: \"はうちゃん\",\n 波音リツ: \"りっちゃん\",\n 玄野武宏: \"たけひろさん\",\n 白上虎太郎: \"こたろうくん\",\n 青山龍星: \"りゅうせいさん\",\n 冥鳴ひまり: \"めいめいちゃん/死神さん\",\n 九州そら: \"そらさん\",\n モチノキョウコ: \"もちこさん\",\n 剣崎雌雄: \"メスの付喪神さん/メスのひと\",\n WhiteCUL: \"ゆきさん\",\n 後鬼: \"ごきさん\",\n No7: \"なな号さん\",\n 櫻歌ミコ: \"みこみこ\",\n 小夜_SAYO: \"小夜ちゃん\",\n ナースロボ_タイプT: \"TTちゃん\",\n 聖騎士紅桜: \"ほーりーないとべにざくらさん\",\n 雀松朱司: \"あかしさん\",\n 麒ヶ島宗麟: \"そうりんさん\",\n 春歌ナナ: \"はるななさん\",\n 猫使アル: \"あるさん\",\n 猫使ビィ: \"びぃさん\",\n 中国うさぎ: \"うさぎさん\",\n },\n 櫻歌ミコ: {\n me: [\"ミコ/私\"],\n you: [\"あなた\", \"あなたたち\"],\n 四国めたん: \"めたんちゃん\",\n ずんだもん: \"もんちゃん\",\n 春日部つむぎ: \"つむぎちゃん\",\n 雨晴はう: \"はうちゃん\",\n 波音リツ: \"りっちゃん\",\n 玄野武宏: \"武宏くん\",\n 白上虎太郎: \"虎太郎くん\",\n 青山龍星: \"龍星くん\",\n 冥鳴ひまり: \"ひまりちゃん\",\n 九州そら: \"そらちゃん\",\n モチノキョウコ: \"もち子ちゃん\",\n 剣崎雌雄: \"剣崎先生\",\n WhiteCUL: \"雪ちゃん\",\n 後鬼: \"後鬼ちゃん\",\n No7: \"セブンちゃん\",\n ちび式じい: \"ちいおじいちゃん\",\n 小夜_SAYO: \"小夜ちゃん\",\n ナースロボ_タイプT: \"TTちゃん\",\n 聖騎士紅桜: \"紅桜さん\",\n 雀松朱司: \"朱司くん\",\n 麒ヶ島宗麟: \"宗麟おじちゃん\",\n 春歌ナナ: \"ナナちゃん\",\n 猫使アル: \"アルちゃん\",\n 猫使ビィ: \"ビィちゃん\",\n 中国うさぎ: \"うさぎちゃん\",\n 栗田まろん: \"まろんくん\",\n 藍田ノエル: \"えるちゃん\",\n 満別花丸: \"花丸ちゃん\",\n 琴詠ニア: \"ニアちゃん\",\n },\n 小夜_SAYO: {\n me: [\"小夜\"],\n you: [\"あなた\", \"あなたたち\"],\n 四国めたん: \"めたんちゃん\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"つむぎちゃん\",\n 雨晴はう: \"はうさん\",\n 波音リツ: \"リツさん\",\n 玄野武宏: \"武宏さん\",\n 白上虎太郎: \"虎太郎くん\",\n 青山龍星: \"龍星さん\",\n 冥鳴ひまり: \"ひまりちゃん\",\n 九州そら: \"そらさん\",\n モチノキョウコ: \"もち子さん\",\n 剣崎雌雄: \"剣崎先生\",\n WhiteCUL: \"雪さん\",\n 後鬼: \"後鬼さん\",\n No7: \"ななさん\",\n ちび式じい: \"ちびじい\",\n 櫻歌ミコ: \"ミコちゃん\",\n ナースロボ_タイプT: \"TTちゃん\",\n 聖騎士紅桜: \"騎士さん(ないとさん)\",\n 雀松朱司: \"朱司さん\",\n 麒ヶ島宗麟: \"宗麟おじちゃん\",\n 春歌ナナ: \"ナナちゃん\",\n 猫使アル: \"アルちゃん\",\n 猫使ビィ: \"ビィちゃん\",\n 中国うさぎ: \"うさぎちゃん\",\n 栗田まろん: \"まろんさん\",\n 琴詠ニア: \"ニアさん\",\n },\n ナースロボ_タイプT: {\n me: [\"わたし\"],\n you: [\"あなた\", \"あなたたち\"],\n 四国めたん: \"四国さん\",\n ずんだもん: \"ずんだもんさん\",\n 春日部つむぎ: \"春日部さん\",\n 雨晴はう: \"雨晴さん\",\n 波音リツ: \"波音さん\",\n 玄野武宏: \"玄野さん\",\n 白上虎太郎: \"白上さん\",\n 青山龍星: \"青山さん\",\n 冥鳴ひまり: \"冥鳴さん\",\n 九州そら: \"まーくつーさん\",\n モチノキョウコ: \"モチノさん\",\n 剣崎雌雄: \"剣崎先生\",\n WhiteCUL: \"ゆきさん\",\n 後鬼: \"後鬼さん\",\n No7: \"セブンさん\",\n ちび式じい: \"おじいさん\",\n 櫻歌ミコ: \"櫻歌さん\",\n 小夜_SAYO: \"小夜さん\",\n 聖騎士紅桜: \"紅桜さん\",\n 雀松朱司: \"雀松さん\",\n 麒ヶ島宗麟: \"麒ヶ島さん\",\n 春歌ナナ: \"ナナさん\",\n 猫使アル: \"アルさん\",\n 猫使ビィ: \"ビーさん\",\n 中国うさぎ: \"うさぎさん\",\n 栗田まろん: \"栗田さん\",\n 藍田ノエル: \"あいえるはん\",\n 満別花丸: \"満別さん\",\n 琴詠ニア: \"琴詠さん\",\n },\n 聖騎士紅桜: {\n me: [\"我\"],\n you: [\"お前\", \"お前ら\"],\n 四国めたん: \"めたん殿\",\n ずんだもん: \"ずんだもん殿\",\n 春日部つむぎ: \"つむぎ殿\",\n 雨晴はう: \"はう殿\",\n 波音リツ: \"リツ殿\",\n 玄野武宏: \"武宏殿\",\n 白上虎太郎: \"虎太郎殿\",\n 青山龍星: \"龍星殿\",\n 冥鳴ひまり: \"ひまり殿\",\n 九州そら: \"そら殿\",\n モチノキョウコ: \"もち子殿\",\n 剣崎雌雄: \"雌雄\",\n WhiteCUL: \"雪殿\",\n 後鬼: \"後鬼殿\",\n No7: \"なな殿\",\n ちび式じい: \"ちびじい殿\",\n 櫻歌ミコ: \"ミコ殿\",\n 小夜_SAYO: \"小夜殿\",\n ナースロボ_タイプT: \"TT殿\",\n 雀松朱司: \"朱司殿\",\n 麒ヶ島宗麟: \"麒ヶ島殿\",\n 春歌ナナ: \"ナナ殿\",\n 猫使アル: \"アル殿\",\n 猫使ビィ: \"ビィ殿\",\n 中国うさぎ: \"うさ殿\",\n 栗田まろん: \"まろん殿\",\n },\n 雀松朱司: {\n me: [\"僕\"],\n you: [\"あなた\", \"あなたたち\"],\n 四国めたん: \"めたんさん\",\n ずんだもん: \"ずんだもんさん\",\n 春日部つむぎ: \"春日部さん\",\n 雨晴はう: \"雨晴さん\",\n 波音リツ: \"波音さん\",\n 玄野武宏: \"玄野くん\",\n 白上虎太郎: \"白上くん\",\n 青山龍星: \"龍星\",\n 冥鳴ひまり: \"冥鳴さん\",\n 九州そら: \"九州さん\",\n モチノキョウコ: \"もちのさん\",\n 剣崎雌雄: \"剣崎さん\",\n WhiteCUL: \"雪さん\",\n 後鬼: \"後鬼さん\",\n No7: \"ななさん\",\n ちび式じい: \"小さい方の式じいさん\",\n 櫻歌ミコ: \"櫻花さん\",\n 小夜_SAYO: \"小夜さん\",\n ナースロボ_タイプT: \"TTさん\",\n 聖騎士紅桜: \"紅桜さん\",\n 麒ヶ島宗麟: \"麒ヶ島さん\",\n 春歌ナナ: \"春歌さん\",\n 猫使アル: \"アルさん\",\n 猫使ビィ: \"ビィさん\",\n },\n 麒ヶ島宗麟: {\n me: [\"私\"],\n you: [\"おまえ\", \"お前たち\"],\n 四国めたん: \"めたんちゃん\",\n ずんだもん: \"ずんだもんちゃん\",\n 春日部つむぎ: \"つむぎちゃん\",\n 雨晴はう: \"はうちゃん\",\n 波音リツ: \"リッちゃん\",\n 玄野武宏: \"武宏\",\n 白上虎太郎: \"虎坊(とらぼん)\",\n 青山龍星: \"龍\",\n 冥鳴ひまり: \"ひまりちゃん\",\n 九州そら: \"そらちゃん\",\n モチノキョウコ: \"もち子ちゃん\",\n 剣崎雌雄: \"雌雄くん\",\n WhiteCUL: \"雪ちゃん\",\n 後鬼: \"後鬼ちゃん\",\n No7: \"ななちゃん\",\n ちび式じい: \"小さい式じい殿\",\n 櫻歌ミコ: \"ミコちゃん\",\n 小夜_SAYO: \"小夜ちゃん\",\n ナースロボ_タイプT: \"TTちゃん\",\n 聖騎士紅桜: \"桜花くん\",\n 雀松朱司: \"朱司くん\",\n 春歌ナナ: \"ナナちゃん\",\n 猫使アル: \"アルちゃん\",\n 猫使ビィ: \"ビィちゃん\",\n },\n 春歌ナナ: {\n me: [\"ナナ\", \"わたし\"],\n you: [\"あなた\", \"あなたたち\"],\n 四国めたん: \"めたんちゃん\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"つむぎちゃん\",\n 雨晴はう: \"はうちゃん\",\n 波音リツ: \"りっちゃん\",\n 玄野武宏: \"武宏くん\",\n 白上虎太郎: \"虎太郎くん\",\n 青山龍星: \"龍星くん\",\n 冥鳴ひまり: \"ひまりちゃん\",\n 九州そら: \"そらちゃん\",\n モチノキョウコ: \"もち子ちゃん\",\n 剣崎雌雄: \"剣崎せんせー\",\n WhiteCUL: \"ゆきちゃん\",\n 後鬼: \"後鬼ちゃん\",\n No7: \"セブンちゃん\",\n ちび式じい: \"ちびおじいちゃん\",\n 櫻歌ミコ: \"ミコちゃん\",\n 小夜_SAYO: \"小夜ちゃん\",\n ナースロボ_タイプT: \"ティーちゃん(Tちゃん)\",\n 聖騎士紅桜: \"紅さん\",\n 雀松朱司: \"朱司くん\",\n 麒ヶ島宗麟: \"宗麟おじちゃんおじちゃん\",\n 猫使アル: \"アルちゃん\",\n 猫使ビィ: \"ビィちゃん\",\n },\n 猫使アル: {\n me: [\"アル\", \"おれ\", \"ボク\"],\n you: [\"~さん\", \"先輩\", \"きみ等\"],\n 四国めたん: \"めたん先輩\",\n ずんだもん: \"ずんだ先輩\",\n 春日部つむぎ: \"つむぎ先輩\",\n 雨晴はう: \"はう先輩\",\n 波音リツ: \"リツ先輩\",\n 玄野武宏: \"たけ先輩\",\n 白上虎太郎: \"こた先輩\",\n 青山龍星: \"りゅう先輩\",\n 冥鳴ひまり: \"ひまり先輩\",\n 九州そら: \"そら先輩\",\n モチノキョウコ: \"もちこ先輩\",\n 剣崎雌雄: \"めすお先輩\",\n WhiteCUL: \"ゆき先輩\",\n 後鬼: \"ごき先輩\",\n No7: \"セブン先輩\",\n ちび式じい: \"しきじいちゃん\",\n 櫻歌ミコ: \"ミコ先輩\",\n 小夜_SAYO: \"さよ先輩\",\n ナースロボ_タイプT: \"T先輩\",\n 聖騎士紅桜: \"黒歴史先輩\",\n 雀松朱司: \"あかしさん\",\n 麒ヶ島宗麟: \"そうりんおじさん\",\n 春歌ナナ: \"ナナ\",\n 猫使ビィ: \"ビィ\",\n 中国うさぎ: \"うさぎさん\",\n 栗田まろん: \"まろんさん\",\n 藍田ノエル: \"えるさん\",\n 満別花丸: \"まるさん\",\n 琴詠ニア: \"ニアさん\",\n },\n 猫使ビィ: {\n me: [\"ビィ\", \"私\", \"ボク\"],\n you: [\"~さん\", \"先輩\", \"あなた等\"],\n 四国めたん: \"めたん先輩\",\n ずんだもん: \"ずんだもん先輩\",\n 春日部つむぎ: \"つむぎ先輩\",\n 雨晴はう: \"はう先輩\",\n 波音リツ: \"りつ先輩\",\n 玄野武宏: \"たけ先輩\",\n 白上虎太郎: \"こたろー先輩\",\n 青山龍星: \"りゅうせー先輩\",\n 冥鳴ひまり: \"ひまり先輩\",\n 九州そら: \"そら先輩\",\n モチノキョウコ: \"もちこ先輩\",\n 剣崎雌雄: \"めすお先輩\",\n WhiteCUL: \"ゆき先輩\",\n 後鬼: \"ごき先輩\",\n No7: \"せぶん先輩\",\n ちび式じい: \"しきおじいちゃん\",\n 櫻歌ミコ: \"みこみこ先輩\",\n 小夜_SAYO: \"さよ先輩\",\n ナースロボ_タイプT: \"TT先輩\",\n 聖騎士紅桜: \"黒歴史先輩\",\n 雀松朱司: \"あかしさん\",\n 麒ヶ島宗麟: \"そーりんおじさん\",\n 春歌ナナ: \"ナナちゃん\",\n 猫使アル: \"アル\",\n 中国うさぎ: \"うさぎさん\",\n 栗田まろん: \"まろんさん\",\n 藍田ノエル: \"えるさん\",\n 満別花丸: \"まるさん\",\n 琴詠ニア: \"ニアさん\",\n },\n 中国うさぎ: {\n me: [\"わたし\"],\n you: [\"あなた\", \"みんな\"],\n 四国めたん: \"メタンハイドレートの人/めたんの人\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"埼玉の人\",\n 雨晴はう: \"看護の人\",\n 波音リツ: \"波の人\",\n 玄野武宏: \"玄の人\",\n 白上虎太郎: \"虎の人\",\n 青山龍星: \"龍の人\",\n 冥鳴ひまり: \"死に神の人\",\n 九州そら: \"そらの人\",\n モチノキョウコ: \"もちの人\",\n 剣崎雌雄: \"メスの人\",\n WhiteCUL: \"白の人\",\n 後鬼: \"後鬼の人\",\n No7: \"七(なな)の人\",\n ちび式じい: \"じいの人\",\n 櫻歌ミコ: \"オオカミの人\",\n 小夜_SAYO: \"ねこみみの人\",\n ナースロボ_タイプT: \"ロボTの人\",\n 聖騎士紅桜: \"聖騎士の人\",\n 雀松朱司: \"朱(あか)の人\",\n 麒ヶ島宗麟: \"麒麟(きりん)の人\",\n 春歌ナナ: \"春の人\",\n 猫使アル: \"猫Aの人\",\n 猫使ビィ: \"猫Bの人\",\n 栗田まろん: \"栗の人\",\n 藍田ノエル: \"エルの人\",\n 満別花丸: \"花丸の人\",\n 琴詠ニア: \"琴の人\",\n },\n 栗田まろん: {\n me: [\"僕\"],\n you: [\"君\", \"みなさん\"],\n 四国めたん: \"めたんさん\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"つむぎさん\",\n 雨晴はう: \"はうさん\",\n 波音リツ: \"リツさん\",\n 玄野武宏: \"武宏くん\",\n 白上虎太郎: \"虎太郎くん\",\n 青山龍星: \"龍星くん\",\n 冥鳴ひまり: \"ひまりさん\",\n 九州そら: \"そらさん\",\n モチノキョウコ: \"もち子さん\",\n 剣崎雌雄: \"雌雄さん\",\n WhiteCUL: \"ゆきさん\",\n 後鬼: \"後鬼さん\",\n No7: \"ななさん\",\n ちび式じい: \"式さん\",\n 櫻歌ミコ: \"ミコさん\",\n 小夜_SAYO: \"小夜さん\",\n ナースロボ_タイプT: \"TTさん\",\n 聖騎士紅桜: \"紅桜くん\",\n 雀松朱司: \"朱司くん\",\n 麒ヶ島宗麟: \"麒ヶ島さん\",\n 春歌ナナ: \"ナナさん\",\n 猫使アル: \"アルさん\",\n 猫使ビィ: \"ビィさん\",\n 中国うさぎ: \"うさぎさん\",\n 琴詠ニア: \"ニアさん\",\n },\n 藍田ノエル: {\n me: [\"あいえるたん\", \"わたし\"],\n you: [\"あなた\", \"みんな\"],\n 四国めたん: \"めたんちゃん\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"つむぎちゃん\",\n 雨晴はう: \"はうちゃん\",\n 波音リツ: \"リッちゃん\",\n 玄野武宏: \"武宏くん\",\n 白上虎太郎: \"虎太郎くん\",\n 青山龍星: \"龍星くん\",\n 冥鳴ひまり: \"ひまりちゃん\",\n 九州そら: \"そらちゃん\",\n モチノキョウコ: \"もち子ちゃん\",\n 剣崎雌雄: \"雌雄くん\",\n WhiteCUL: \"ゆきちゃん\",\n 後鬼: \"後鬼さん\",\n No7: \"セブンちゃん\",\n ちび式じい: \"ちびじいさん\",\n 櫻歌ミコ: \"ミコちゃん\",\n 小夜_SAYO: \"小夜ちゃん\",\n ナースロボ_タイプT: \"Tちゃん\",\n 聖騎士紅桜: \"紅桜さん\",\n 雀松朱司: \"朱司くん\",\n 麒ヶ島宗麟: \"宗麟さん\",\n 春歌ナナ: \"ナナちゃん\",\n 猫使アル: \"アルちゃん\",\n 猫使ビィ: \"ビィちゃん\",\n 中国うさぎ: \"うさぎちゃん\",\n 栗田まろん: \"まろんちゃん\",\n 満別花丸: \"花丸ちゃん\",\n 琴詠ニア: \"ニアちゃん\",\n },\n 満別花丸: {\n me: [\"ぼく\"],\n you: [\"君\", \"みんな\"],\n 四国めたん: \"めたんちゃん\",\n ずんだもん: \"ずんだもん\",\n 春日部つむぎ: \"つむぎちゃん\",\n 雨晴はう: \"はうちゃん\",\n 波音リツ: \"リツさん\",\n 玄野武宏: \"武宏くん\",\n 白上虎太郎: \"虎太郎\",\n 青山龍星: \"龍星くん\",\n 冥鳴ひまり: \"ひまりちゃん\",\n 九州そら: \"そらさん\",\n モチノキョウコ: \"もち子さん\",\n 剣崎雌雄: \"雌雄\",\n WhiteCUL: \"ゆきちゃん\",\n 後鬼: \"後鬼さん\",\n No7: \"セブンさん\",\n ちび式じい: \"ちび式じい\",\n 櫻歌ミコ: \"ミコちゃん\",\n 小夜_SAYO: \"小夜ちゃん\",\n ナースロボ_タイプT: \"TTちゃん\",\n 聖騎士紅桜: \"紅桜\",\n 雀松朱司: \"朱司くん\",\n 麒ヶ島宗麟: \"きりんのおじちゃん\",\n 春歌ナナ: \"ナナちゃん\",\n 猫使アル: \"アル\",\n 猫使ビィ: \"ビィ\",\n 中国うさぎ: \"うさぎちゃん\",\n 栗田まろん: \"栗田\",\n 藍田ノエル: \"あいえるたん\",\n 琴詠ニア: \"ニア\",\n },\n 琴詠ニア: {\n me: [\"私\"],\n you: [\"きみ\", \"きみ達\"],\n 四国めたん: \"めたん先輩\",\n ずんだもん: \"ずんだもん先輩\",\n 春日部つむぎ: \"つむぎちゃん\",\n 雨晴はう: \"はう先輩\",\n 波音リツ: \"リツさん\",\n 玄野武宏: \"玄野さん\",\n 白上虎太郎: \"白上くん\",\n 青山龍星: \"青山さん\",\n 冥鳴ひまり: \"ひまり先輩\",\n 九州そら: \"そらさん\",\n モチノキョウコ: \"もち子さん\",\n 剣崎雌雄: \"剣崎先生\",\n WhiteCUL: \"ゆき先輩\",\n 後鬼: \"後鬼さん\",\n No7: \"ナナ先輩\",\n ちび式じい: \"ちびじい\",\n 櫻歌ミコ: \"みこみこ先輩\",\n 小夜_SAYO: \"さよ先輩\",\n ナースロボ_タイプT: \"Tちゃん\",\n 聖騎士紅桜: \"ほーりーさん\",\n 雀松朱司: \"朱司さん\",\n 麒ヶ島宗麟: \"麒ヶ島さん\",\n 春歌ナナ: \"ナナちゃん\",\n 猫使アル: \"アルさん\",\n 猫使ビィ: \"ビィさん\",\n 中国うさぎ: \"うさぎさん\",\n 栗田まろん: \"まろんちゃん\",\n 藍田ノエル: \"あいえるたん\",\n 満別花丸: \"花丸ちゃん\",\n },\n} as const\n"],"names":["UPPERCASE","LOWERCASE","LEADING_CAPITAL","IDENTIFIER","SEPARATORS","LEADING_SEPARATORS","RegExp","source","SEPARATORS_AND_IDENTIFIER","NUMBERS_AND_IDENTIFIER","camelCase","input","options","Array","isArray","TypeError","pascalCase","preserveConsecutiveUppercase","map","x","trim","filter","length","join","toLowerCase","locale","string","toLocaleLowerCase","toUpperCase","toLocaleUpperCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","i","character","test","slice","preserveCamelCase","replace","lastIndex","m1","charAt","_","identifier","m","postProcess","module","exports","W","hasNativeLazyLoadSupport","HTMLImageElement","prototype","e","t","a","Boolean","images","fallback","src","gatsbyImageData","gatsbyImage","childImageSharp","C","O","srcSet","z","s","width","height","className","style","P","h","loading","shouldLoad","opacity","A","r","n","o","l","backgroundColor","position","top","left","bottom","right","objectFit","objectPosition","d","transition","H","F","_ref5","layout","paddingTop","maxWidth","display","alt","role","G","children","u","V","B","U","decoding","Y","sources","sizes","_ref6","media","type","key","X","propTypes","isRequired","displayName","J","Z","Error","K","Q","ee","te","ae","_len","arguments","_key","c","apply","concat","ie","image","se","re","ne","Set","oe","le","de","as","class","g","onStartLoad","p","onLoad","onError","f","w","y","b","v","E","k","S","M","N","$","JSON","stringify","I","then","_ref7","renderImageToString","swapPlaceholderImage","current","querySelector","complete","wasCached","setTimeout","removeAttribute","addEventListener","removeEventListener","add","has","_ref8","innerHTML","isLoading","isLoaded","requestAnimationFrame","cancelAnimationFrame","ref","dangerouslySetInnerHTML","__html","suppressHydrationWarning","ce","he","ue","__imageData","__error","console","warn","ge","imgClassName","imgStyle","placeholder","pe","_len2","_key2","me","fe","we","useDetailedCharacterInfo","query","useStaticQuery","getCharacterInfo","useCharacterInfo","useCallback","nodes","find","node","styleNames","四国めたん","name","id","ずんだもん","春日部つむぎ","雨晴はう","波音リツ","玄野武宏","白上虎太郎","青山龍星","冥鳴ひまり","九州そら","モチノキョウコ","剣崎雌雄","WhiteCUL","後鬼","No7","ちび式じい","櫻歌ミコ","小夜_SAYO","ナースロボ_タイプT","聖騎士紅桜","雀松朱司","麒ヶ島宗麟","春歌ナナ","猫使アル","猫使ビィ","中国うさぎ","栗田まろん","藍田ノエル","満別花丸","琴詠ニア","getDatas","info","_childImageSharp320px","_childImageSharp640px","_childImageSharp","_childImageSharp2","dormitoryVoiceUrls","dormitoryAudio","includes","characterId","sort","localeCompare","publicURL","undefined","item","bustupImageSmall","bustup","childImageSharp320px","bustupImage","childImageSharp640px","portraitImage","portrait","ogpImage","ogp","styleVoiceUrls","urls","styleAudio","infoImages","dormitoryImage","_node$childImageSharp","some","_characterInfos","rubyName","voiceFeature","color","lightColor","description","labelInfos","label","value","size","policyUrl","detailUrl","characterInfos","useMemo","callNameInfos","_callNameInfos","you"],"sourceRoot":""} \ No newline at end of file diff --git a/404.html b/404.html index 877ecbc3f..3e870f0d6 100644 --- a/404.html +++ b/404.html @@ -14,4 +14,4 @@ > window.___chunkMapping="{\"app\":[\"/app-815711a11540a431069c.js\"],\"component---src-pages-404-js\":[\"/component---src-pages-404-js-d090b697ce9a53689fc0.js\"],\"component---src-pages-dormitory-call-names-tsx\":[\"/component---src-pages-dormitory-call-names-tsx-cb6b12457710246a8b51.js\"],\"component---src-pages-dormitory-character-character-id-tsx\":[\"/component---src-pages-dormitory-character-character-id-tsx-72b1ea0f312c5e485572.js\"],\"component---src-pages-dormitory-tsx\":[],\"component---src-pages-how-to-use-tsx\":[\"/component---src-pages-how-to-use-tsx-63f9ee9c689b87f70019.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-10ff1acecaba3ffb822d.js\"],\"component---src-pages-product-character-character-id-tsx\":[\"/component---src-pages-product-character-character-id-tsx-3c6eb72a1c9283644611.js\"],\"component---src-pages-qa-tsx\":[\"/component---src-pages-qa-tsx-381ac0a0d6e9d812b93e.js\"],\"component---src-pages-term-tsx\":[\"/component---src-pages-term-tsx-45261bf20040673ce8ca.js\"],\"component---src-pages-update-history-tsx\":[\"/component---src-pages-update-history-tsx-55d8b31963a52136e9b0.js\"]}"; - \ No newline at end of file + \ No newline at end of file diff --git a/404/index.html b/404/index.html index 2745b43c8..ede660f71 100644 --- a/404/index.html +++ b/404/index.html @@ -14,4 +14,4 @@ > window.___chunkMapping="{\"app\":[\"/app-815711a11540a431069c.js\"],\"component---src-pages-404-js\":[\"/component---src-pages-404-js-d090b697ce9a53689fc0.js\"],\"component---src-pages-dormitory-call-names-tsx\":[\"/component---src-pages-dormitory-call-names-tsx-cb6b12457710246a8b51.js\"],\"component---src-pages-dormitory-character-character-id-tsx\":[\"/component---src-pages-dormitory-character-character-id-tsx-72b1ea0f312c5e485572.js\"],\"component---src-pages-dormitory-tsx\":[],\"component---src-pages-how-to-use-tsx\":[\"/component---src-pages-how-to-use-tsx-63f9ee9c689b87f70019.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-10ff1acecaba3ffb822d.js\"],\"component---src-pages-product-character-character-id-tsx\":[\"/component---src-pages-product-character-character-id-tsx-3c6eb72a1c9283644611.js\"],\"component---src-pages-qa-tsx\":[\"/component---src-pages-qa-tsx-381ac0a0d6e9d812b93e.js\"],\"component---src-pages-term-tsx\":[\"/component---src-pages-term-tsx-45261bf20040673ce8ca.js\"],\"component---src-pages-update-history-tsx\":[\"/component---src-pages-update-history-tsx-55d8b31963a52136e9b0.js\"]}"; - \ No newline at end of file + \ No newline at end of file diff --git a/_gatsby/slices/_gatsby-scripts-1.html b/_gatsby/slices/_gatsby-scripts-1.html index 94eef5bb7..5ea724e3d 100644 --- a/_gatsby/slices/_gatsby-scripts-1.html +++ b/_gatsby/slices/_gatsby-scripts-1.html @@ -4,4 +4,4 @@ > window.___chunkMapping="{\"app\":[\"/app-815711a11540a431069c.js\"],\"component---src-pages-404-js\":[\"/component---src-pages-404-js-d090b697ce9a53689fc0.js\"],\"component---src-pages-dormitory-call-names-tsx\":[\"/component---src-pages-dormitory-call-names-tsx-cb6b12457710246a8b51.js\"],\"component---src-pages-dormitory-character-character-id-tsx\":[\"/component---src-pages-dormitory-character-character-id-tsx-72b1ea0f312c5e485572.js\"],\"component---src-pages-dormitory-tsx\":[],\"component---src-pages-how-to-use-tsx\":[\"/component---src-pages-how-to-use-tsx-63f9ee9c689b87f70019.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-10ff1acecaba3ffb822d.js\"],\"component---src-pages-product-character-character-id-tsx\":[\"/component---src-pages-product-character-character-id-tsx-3c6eb72a1c9283644611.js\"],\"component---src-pages-qa-tsx\":[\"/component---src-pages-qa-tsx-381ac0a0d6e9d812b93e.js\"],\"component---src-pages-term-tsx\":[\"/component---src-pages-term-tsx-45261bf20040673ce8ca.js\"],\"component---src-pages-update-history-tsx\":[\"/component---src-pages-update-history-tsx-55d8b31963a52136e9b0.js\"]}"; - \ No newline at end of file + \ No newline at end of file diff --git a/_headers.json b/_headers.json index 7b818bd2b..567f92f90 100644 --- a/_headers.json +++ b/_headers.json @@ -1 +1 @@ -{"/*":["X-XSS-Protection: 1; mode=block","X-Content-Type-Options: nosniff","Referrer-Policy: same-origin","X-Frame-Options: DENY"],"/static/landing-share-thumb-bae003080155cf8cc56d1fd7bf826bff.jpg":["Cache-Control: public, max-age=31536000, immutable"],"/static/top-illust-007-53dfa3c774c022cfd0e287b715c85212.png":["Cache-Control: public, max-age=31536000, immutable"],"/static/unhinted-rounded-mplus-1p-light-3da4a6cdd9c4250e5883bebc032c74a8.woff2":["Cache-Control: public, max-age=31536000, immutable"],"/static/unhinted-rounded-mplus-1p-regular-ac8904fd1b53dabd6beb7a7552ea17b6.woff2":["Cache-Control: public, max-age=31536000, immutable"],"/static/unhinted-rounded-mplus-1p-medium-c7fd967d157eaa9f6b39550727ceaa82.woff2":["Cache-Control: public, max-age=31536000, immutable"],"/static/unhinted-rounded-mplus-1p-bold-6812b7b586956a3f42760deee42ac5d5.woff2":["Cache-Control: public, max-age=31536000, immutable"],"/static/nc238325-66a148cb22ff9eddbbd8369af5dff9e3.jpg":["Cache-Control: public, max-age=31536000, immutable"],"/static/landing-movie-thumb-1b9af402783915bf57ce0d4ff0bdd305.png":["Cache-Control: public, max-age=31536000, immutable"],"/static/landing-69ef7841f8ed79ae999dc6cfb49e0a77.mp4":["Cache-Control: public, max-age=31536000, immutable"],"/styles.4664074cae93fef5fee5.css":["Cache-Control: public, max-age=31536000, immutable"],"/731-a32a3abc36b462c056b5.js.LICENSE.txt":["Cache-Control: public, max-age=31536000, immutable"],"/app-815711a11540a431069c.js.LICENSE.txt":["Cache-Control: public, max-age=31536000, immutable"],"/framework-7e1a8605ca70c43fddfa.js.LICENSE.txt":["Cache-Control: public, max-age=31536000, immutable"],"/843-a418e8b7b50519549fcd.js":["Cache-Control: public, max-age=31536000, immutable"],"/c16184b3-46670b5cd60159000f19.js":["Cache-Control: public, max-age=31536000, immutable"],"/2cca2479-037b74bf5d5fcd4b7b5d.js":["Cache-Control: public, max-age=31536000, immutable"],"/843-a418e8b7b50519549fcd.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/c16184b3-46670b5cd60159000f19.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/2cca2479-037b74bf5d5fcd4b7b5d.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/app-815711a11540a431069c.js":["Cache-Control: public, max-age=31536000, immutable"],"/webpack-runtime-5a5db2e9237cdf70e4df.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-404-js-d090b697ce9a53689fc0.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-dormitory-call-names-tsx-cb6b12457710246a8b51.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-dormitory-character-character-id-tsx-72b1ea0f312c5e485572.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-how-to-use-tsx-63f9ee9c689b87f70019.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-index-tsx-10ff1acecaba3ffb822d.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-product-character-character-id-tsx-3c6eb72a1c9283644611.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-qa-tsx-381ac0a0d6e9d812b93e.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-term-tsx-45261bf20040673ce8ca.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-update-history-tsx-55d8b31963a52136e9b0.js":["Cache-Control: public, max-age=31536000, immutable"],"/731-a32a3abc36b462c056b5.js":["Cache-Control: public, max-age=31536000, immutable"],"/framework-7e1a8605ca70c43fddfa.js":["Cache-Control: public, max-age=31536000, immutable"],"/commons-78aa7bacd8e215f7b082.js":["Cache-Control: public, max-age=31536000, immutable"],"/d093ed3671b48cd2dc59e2d475444cca9f42ccc6-7e50766ddf026dec2784.js":["Cache-Control: public, max-age=31536000, immutable"],"/026cdd5d113c02acffad10389603b2d9e852aa88-3a7098cdc26f4413eb6c.js":["Cache-Control: public, max-age=31536000, immutable"],"/ee5a8fd0046056802ecb84f575459c19920ca243-e194e61945f29a378565.js":["Cache-Control: public, max-age=31536000, immutable"],"/8c0679f0e05376f0df0fb6e417558b36a043c060-1649ed94b4408840ec9d.js":["Cache-Control: public, max-age=31536000, immutable"],"/app-815711a11540a431069c.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/webpack-runtime-5a5db2e9237cdf70e4df.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-404-js-d090b697ce9a53689fc0.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-dormitory-call-names-tsx-cb6b12457710246a8b51.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-dormitory-character-character-id-tsx-72b1ea0f312c5e485572.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-how-to-use-tsx-63f9ee9c689b87f70019.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-index-tsx-10ff1acecaba3ffb822d.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-product-character-character-id-tsx-3c6eb72a1c9283644611.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-qa-tsx-381ac0a0d6e9d812b93e.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-term-tsx-45261bf20040673ce8ca.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-update-history-tsx-55d8b31963a52136e9b0.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/731-a32a3abc36b462c056b5.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/framework-7e1a8605ca70c43fddfa.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/commons-78aa7bacd8e215f7b082.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/d093ed3671b48cd2dc59e2d475444cca9f42ccc6-7e50766ddf026dec2784.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/026cdd5d113c02acffad10389603b2d9e852aa88-3a7098cdc26f4413eb6c.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/ee5a8fd0046056802ecb84f575459c19920ca243-e194e61945f29a378565.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/8c0679f0e05376f0df0fb6e417558b36a043c060-1649ed94b4408840ec9d.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/026cdd5d113c02acffad10389603b2d9e852aa88-3748ac1cd9411a5daaec.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/026cdd5d113c02acffad10389603b2d9e852aa88-c20234744fbb29f5e6d4.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-index-tsx-7d18d8ec79a663be28aa.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/webpack-runtime-bb6359fe94400fd5d1ab.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/webpack-runtime-f512a5f819f889dbc50f.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/static/*":["Cache-Control: public, max-age=31536000, immutable"],"/sw.js":["Cache-Control: public, max-age=0, must-revalidate"]} \ No newline at end of file +{"/*":["X-XSS-Protection: 1; mode=block","X-Content-Type-Options: nosniff","Referrer-Policy: same-origin","X-Frame-Options: DENY"],"/static/unhinted-rounded-mplus-1p-light-3da4a6cdd9c4250e5883bebc032c74a8.woff2":["Cache-Control: public, max-age=31536000, immutable"],"/static/unhinted-rounded-mplus-1p-regular-ac8904fd1b53dabd6beb7a7552ea17b6.woff2":["Cache-Control: public, max-age=31536000, immutable"],"/static/unhinted-rounded-mplus-1p-medium-c7fd967d157eaa9f6b39550727ceaa82.woff2":["Cache-Control: public, max-age=31536000, immutable"],"/static/unhinted-rounded-mplus-1p-bold-6812b7b586956a3f42760deee42ac5d5.woff2":["Cache-Control: public, max-age=31536000, immutable"],"/static/nc238325-66a148cb22ff9eddbbd8369af5dff9e3.jpg":["Cache-Control: public, max-age=31536000, immutable"],"/static/landing-share-thumb-bae003080155cf8cc56d1fd7bf826bff.jpg":["Cache-Control: public, max-age=31536000, immutable"],"/static/landing-movie-thumb-1b9af402783915bf57ce0d4ff0bdd305.png":["Cache-Control: public, max-age=31536000, immutable"],"/static/landing-69ef7841f8ed79ae999dc6cfb49e0a77.mp4":["Cache-Control: public, max-age=31536000, immutable"],"/static/top-illust-007-53dfa3c774c022cfd0e287b715c85212.png":["Cache-Control: public, max-age=31536000, immutable"],"/styles.4664074cae93fef5fee5.css":["Cache-Control: public, max-age=31536000, immutable"],"/731-a32a3abc36b462c056b5.js.LICENSE.txt":["Cache-Control: public, max-age=31536000, immutable"],"/app-815711a11540a431069c.js.LICENSE.txt":["Cache-Control: public, max-age=31536000, immutable"],"/framework-7e1a8605ca70c43fddfa.js.LICENSE.txt":["Cache-Control: public, max-age=31536000, immutable"],"/app-815711a11540a431069c.js":["Cache-Control: public, max-age=31536000, immutable"],"/webpack-runtime-c0c962b82cb49a55df5c.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-404-js-d090b697ce9a53689fc0.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-dormitory-call-names-tsx-cb6b12457710246a8b51.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-dormitory-character-character-id-tsx-72b1ea0f312c5e485572.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-how-to-use-tsx-63f9ee9c689b87f70019.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-index-tsx-10ff1acecaba3ffb822d.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-product-character-character-id-tsx-3c6eb72a1c9283644611.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-qa-tsx-381ac0a0d6e9d812b93e.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-term-tsx-45261bf20040673ce8ca.js":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-update-history-tsx-55d8b31963a52136e9b0.js":["Cache-Control: public, max-age=31536000, immutable"],"/731-a32a3abc36b462c056b5.js":["Cache-Control: public, max-age=31536000, immutable"],"/843-a418e8b7b50519549fcd.js":["Cache-Control: public, max-age=31536000, immutable"],"/framework-7e1a8605ca70c43fddfa.js":["Cache-Control: public, max-age=31536000, immutable"],"/c16184b3-46670b5cd60159000f19.js":["Cache-Control: public, max-age=31536000, immutable"],"/2cca2479-037b74bf5d5fcd4b7b5d.js":["Cache-Control: public, max-age=31536000, immutable"],"/commons-78aa7bacd8e215f7b082.js":["Cache-Control: public, max-age=31536000, immutable"],"/d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js":["Cache-Control: public, max-age=31536000, immutable"],"/026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js":["Cache-Control: public, max-age=31536000, immutable"],"/ee5a8fd0046056802ecb84f575459c19920ca243-e194e61945f29a378565.js":["Cache-Control: public, max-age=31536000, immutable"],"/8c0679f0e05376f0df0fb6e417558b36a043c060-1649ed94b4408840ec9d.js":["Cache-Control: public, max-age=31536000, immutable"],"/app-815711a11540a431069c.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/webpack-runtime-c0c962b82cb49a55df5c.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-404-js-d090b697ce9a53689fc0.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-dormitory-call-names-tsx-cb6b12457710246a8b51.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-dormitory-character-character-id-tsx-72b1ea0f312c5e485572.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-how-to-use-tsx-63f9ee9c689b87f70019.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-index-tsx-10ff1acecaba3ffb822d.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-product-character-character-id-tsx-3c6eb72a1c9283644611.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-qa-tsx-381ac0a0d6e9d812b93e.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-term-tsx-45261bf20040673ce8ca.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-update-history-tsx-55d8b31963a52136e9b0.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/731-a32a3abc36b462c056b5.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/843-a418e8b7b50519549fcd.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/framework-7e1a8605ca70c43fddfa.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/c16184b3-46670b5cd60159000f19.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/2cca2479-037b74bf5d5fcd4b7b5d.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/commons-78aa7bacd8e215f7b082.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/ee5a8fd0046056802ecb84f575459c19920ca243-e194e61945f29a378565.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/8c0679f0e05376f0df0fb6e417558b36a043c060-1649ed94b4408840ec9d.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/026cdd5d113c02acffad10389603b2d9e852aa88-3748ac1cd9411a5daaec.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/026cdd5d113c02acffad10389603b2d9e852aa88-3a7098cdc26f4413eb6c.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/026cdd5d113c02acffad10389603b2d9e852aa88-c20234744fbb29f5e6d4.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/component---src-pages-index-tsx-7d18d8ec79a663be28aa.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/d093ed3671b48cd2dc59e2d475444cca9f42ccc6-7e50766ddf026dec2784.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/webpack-runtime-5a5db2e9237cdf70e4df.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/webpack-runtime-bb6359fe94400fd5d1ab.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/webpack-runtime-f512a5f819f889dbc50f.js.map":["Cache-Control: public, max-age=31536000, immutable"],"/static/*":["Cache-Control: public, max-age=31536000, immutable"],"/sw.js":["Cache-Control: public, max-age=0, must-revalidate"]} \ No newline at end of file diff --git a/assets-manifest.json b/assets-manifest.json index 46dbeb806..74ebf7385 100644 --- a/assets-manifest.json +++ b/assets-manifest.json @@ -1,8 +1,9 @@ { "026cdd5d113c02acffad10389603b2d9e852aa88-3748ac1cd9411a5daaec.js.map": "026cdd5d113c02acffad10389603b2d9e852aa88-3748ac1cd9411a5daaec.js.map", "026cdd5d113c02acffad10389603b2d9e852aa88-3a7098cdc26f4413eb6c.js.map": "026cdd5d113c02acffad10389603b2d9e852aa88-3a7098cdc26f4413eb6c.js.map", + "026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js.map": "026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js.map", "026cdd5d113c02acffad10389603b2d9e852aa88-c20234744fbb29f5e6d4.js.map": "026cdd5d113c02acffad10389603b2d9e852aa88-c20234744fbb29f5e6d4.js.map", - "026cdd5d113c02acffad10389603b2d9e852aa88.js": "026cdd5d113c02acffad10389603b2d9e852aa88-3a7098cdc26f4413eb6c.js", + "026cdd5d113c02acffad10389603b2d9e852aa88.js": "026cdd5d113c02acffad10389603b2d9e852aa88-760e36e5d477befc5250.js", "2cca2479-037b74bf5d5fcd4b7b5d.js.map": "2cca2479-037b74bf5d5fcd4b7b5d.js.map", "2cca2479.js": "2cca2479-037b74bf5d5fcd4b7b5d.js", "731-a32a3abc36b462c056b5.js": "731-a32a3abc36b462c056b5.js", @@ -38,8 +39,9 @@ "component---src-pages-term-tsx.js": "component---src-pages-term-tsx-45261bf20040673ce8ca.js", "component---src-pages-update-history-tsx-55d8b31963a52136e9b0.js.map": "component---src-pages-update-history-tsx-55d8b31963a52136e9b0.js.map", "component---src-pages-update-history-tsx.js": "component---src-pages-update-history-tsx-55d8b31963a52136e9b0.js", + "d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js.map": "d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js.map", "d093ed3671b48cd2dc59e2d475444cca9f42ccc6-7e50766ddf026dec2784.js.map": "d093ed3671b48cd2dc59e2d475444cca9f42ccc6-7e50766ddf026dec2784.js.map", - "d093ed3671b48cd2dc59e2d475444cca9f42ccc6.js": "d093ed3671b48cd2dc59e2d475444cca9f42ccc6-7e50766ddf026dec2784.js", + "d093ed3671b48cd2dc59e2d475444cca9f42ccc6.js": "d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js", "ee5a8fd0046056802ecb84f575459c19920ca243-e194e61945f29a378565.js.map": "ee5a8fd0046056802ecb84f575459c19920ca243-e194e61945f29a378565.js.map", "ee5a8fd0046056802ecb84f575459c19920ca243.js": "ee5a8fd0046056802ecb84f575459c19920ca243-e194e61945f29a378565.js", "framework-7e1a8605ca70c43fddfa.js.LICENSE.txt": "framework-7e1a8605ca70c43fddfa.js.LICENSE.txt", @@ -57,6 +59,7 @@ "styles.css": "styles.4664074cae93fef5fee5.css", "webpack-runtime-5a5db2e9237cdf70e4df.js.map": "webpack-runtime-5a5db2e9237cdf70e4df.js.map", "webpack-runtime-bb6359fe94400fd5d1ab.js.map": "webpack-runtime-bb6359fe94400fd5d1ab.js.map", + "webpack-runtime-c0c962b82cb49a55df5c.js.map": "webpack-runtime-c0c962b82cb49a55df5c.js.map", "webpack-runtime-f512a5f819f889dbc50f.js.map": "webpack-runtime-f512a5f819f889dbc50f.js.map", - "webpack-runtime.js": "webpack-runtime-5a5db2e9237cdf70e4df.js" + "webpack-runtime.js": "webpack-runtime-c0c962b82cb49a55df5c.js" } \ No newline at end of file diff --git a/component---src-pages-index-tsx-10ff1acecaba3ffb822d.js.map b/component---src-pages-index-tsx-10ff1acecaba3ffb822d.js.map index 8400215b5..f5b9e2a4e 100644 --- a/component---src-pages-index-tsx-10ff1acecaba3ffb822d.js.map +++ b/component---src-pages-index-tsx-10ff1acecaba3ffb822d.js.map @@ -1 +1 @@ -{"version":3,"file":"component---src-pages-index-tsx-10ff1acecaba3ffb822d.js","mappings":"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","sources":["webpack://voicevox-blog/./src/components/audioSample.tsx","webpack://voicevox-blog/./src/images/landing-movie-thumb.png","webpack://voicevox-blog/./src/movies/landing.mp4","webpack://voicevox-blog/./src/pages/index.tsx","webpack://voicevox-blog/./src/urls.ts","webpack://voicevox-blog/./src/images/logo.svg","webpack://voicevox-blog/./src/images/landing-share-thumb.jpg"],"sourcesContent":["import React, { useMemo } from \"react\"\nimport PlayButton from \"./playButton\"\nimport StyleDropdown, { useStyleDropdownController } from \"./styleDropdown\"\n\nconst AudioSample = React.memo(\n ({\n audioSamples,\n characterName,\n className,\n }: {\n audioSamples: { style: string; urls: readonly string[] }[]\n characterName: string\n } & React.HTMLAttributes) => {\n const styles = useMemo(\n () => audioSamples.map(value => value.style),\n [audioSamples]\n )\n const { selectedStyle, setSelectedStyle } = useStyleDropdownController({\n styles,\n })\n const selectedAudioUrls = useMemo(\n () => audioSamples.find(({ style }) => style == selectedStyle)!.urls,\n [audioSamples, selectedStyle]\n )\n\n return (\n
\n
\n
\n
\n 音声サンプル\n
\n
\n {selectedAudioUrls.map((url, index) => (\n \n ))}\n
\n
\n {styles.length > 1 && (\n
\n
\n スタイル\n
\n
\n \n
\n
\n )}\n
\n
\n )\n }\n)\n\nexport default AudioSample\n","export default __webpack_public_path__ + \"static/landing-movie-thumb-1b9af402783915bf57ce0d4ff0bdd305.png\";","export default __webpack_public_path__ + \"static/landing-69ef7841f8ed79ae999dc6cfb49e0a77.mp4\";","import { faGithub } from \"@fortawesome/free-brands-svg-icons\"\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { Link } from \"gatsby\"\nimport { GatsbyImage } from \"gatsby-plugin-image\"\nimport React, { useContext, useEffect, useRef, useState } from \"react\"\nimport AudioSample from \"../components/audioSample\"\nimport \"../components/layout.scss\"\nimport ModalReadmeLibrary from \"../components/modalReadmeLibrary\"\nimport { Page } from \"../components/page\"\nimport Seo from \"../components/seo\"\nimport SoftwareFeature from \"../components/softwareFeature\"\nimport { CharacterContext } from \"../contexts/context\"\nimport { useDetailedCharacterInfo } from \"../hooks/useDetailedCharacterInfo\"\nimport landingMovieThumb from \"../images/landing-movie-thumb.png\"\nimport shareThumb from \"../images/landing-share-thumb.jpg\"\nimport Logo from \"../images/logo.svg\"\nimport landingMovie from \"../movies/landing.mp4\"\nimport { CharacterInfo, CharacterKey } from \"../types/dormitoryCharacter\"\nimport { getProductPageUrl } from \"../urls\"\n\n// キャラクター表示\nconst CharacterCard = React.memo(\n ({\n characterInfo,\n characterKey,\n setShowingLibraryReadmeModalCharacterKey,\n }: {\n characterInfo: CharacterInfo\n characterKey: CharacterKey\n setShowingLibraryReadmeModalCharacterKey: (\n characterKey: CharacterKey\n ) => void\n }) => {\n if (!characterInfo)\n throw new Error(`characterInfo is undefined. (${characterKey})`)\n const LinkToProductPage = ({\n children,\n className,\n style,\n }: React.HTMLAttributes) => {\n return (\n \n {children}\n \n )\n }\n return (\n
\n
\n \n \n \n
\n

\n \n {characterInfo.name}\n \n

\n

\n {characterInfo.voiceFeature\n ? characterInfo.voiceFeature\n : \"(準備中)\"}\n

\n {characterInfo.releaseDate != undefined && (\n

\n Coming Soon\n

\n )}\n {characterInfo.styleVoiceUrls.length > 0 && (\n \n )}\n
\n \n setShowingLibraryReadmeModalCharacterKey(characterKey)\n }\n className=\"button is-normal is-rounded\"\n type=\"button\"\n >\n {characterInfo.name} 利用規約\n \n
\n
\n
\n
\n )\n }\n)\n\nconst Main = React.memo(\n ({ setShowingHeader }: { setShowingHeader: (show: boolean) => void }) => {\n const { characterInfos } = useDetailedCharacterInfo()\n\n const { characterKeys } = useContext(CharacterContext)\n\n // ファーストビュー用のビューを超えたらヘッダーを表示する\n const firstViewRef = useRef(null)\n useEffect(() => {\n if (!firstViewRef.current) return\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n setShowingHeader(!entry.isIntersecting)\n })\n })\n observer.observe(firstViewRef.current)\n }, [firstViewRef])\n\n const [\n showingLibraryReadmeModalCharacterKey,\n setShowingLibraryReadmeModalCharacterKey,\n ] = useState(undefined)\n\n return (\n <>\n \n\n
\n
\n
\n
\n
\n
\n \n
\n

\n 無料で使える中品質なテキスト読み上げソフトウェア\n

\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n\n
\n
\n
\n \n \n キャラクター一覧\n \n \n
\n {characterKeys.map(characterKey => (\n \n ))}\n
\n
\n
\n\n
\n
\n

\n \n オープンソース\n \n

\n

\n VOICEVOX は OSS(オープンソース・ソフトウェア)版 VOICEVOX\n をもとに構築されています。\n

\n

\n 製品版と OSS 版の違いやモジュール構成は \n \n VOICEVOX の全体構成\n \n  をご参照ください。\n

\n

\n ソフトウェア部分は Electron + Vue 、音声合成エンジン部分は\n Python + FastAPI です。\n

\n

\n 追加したい・改善したい機能があれば、ぜひ開発にご参加ください。\n

\n
\n \n \n \n \n VOICEVOX エディター\n \n \n \n \n \n VOICEVOX エンジン\n \n
\n
\n
\n\n
\n
\n \n \n コアライブラリ\n \n \n

\n VOICEVOXの音声合成をアプリケーションやサービスに組み込める、VOICEVOXのコアライブラリを配布しています。\n

\n

\n 詳しくは \n \n VOICEVOX CORE\n \n  をご参照ください。\n

\n
\n
\n\n
\n
\n

\n \n リンク\n \n

\n
    \n
  • \n \n 利用規約\n \n
  • \n
  • \n \n 使い方\n \n
  • \n
  • \n \n Q&A\n \n
  • \n
  • \n \n ボイボ寮\n \n
  • \n
  • \n \n 変更履歴\n \n
  • \n
  • \n \n pixivFANBOX\n \n
  • \n
\n
\n
\n
\n
\n setShowingLibraryReadmeModalCharacterKey(undefined)}\n {...(showingLibraryReadmeModalCharacterKey != undefined\n ? {\n isActive: true,\n characterKey: showingLibraryReadmeModalCharacterKey,\n }\n : {\n isActive: false,\n characterKey: undefined,\n })}\n />\n \n )\n }\n)\n\nexport default React.memo(() => {\n const [showingHeader, setShowingHeader] = useState(false)\n return (\n \n
\n \n )\n})\n","import { CharacterInfo } from \"./types/dormitoryCharacter\"\r\n\r\nexport const getProductPageUrl = (characterInfo: CharacterInfo) => {\r\n return `/product/${characterInfo.id}/`\r\n}\r\n\r\nexport const getDormitoryCharacterPageUrl = (characterInfo: CharacterInfo) => {\r\n return `/dormitory/${characterInfo.id}/`\r\n}\r\n","var React = require('react');\n\nfunction Logo (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",null,[React.createElement(\"title\",{\"key\":0},\"VOICEVOXのロゴ\"),React.createElement(\"path\",{\"d\":\"M39.388 83.856 19.516 24.144c-.449-1.279-.288-2.463.48-3.552.768-1.087 1.824-1.632 3.168-1.632h3.456c1.599 0 3.072.497 4.416 1.488 1.344.993 2.208 2.256 2.592 3.792l14.688 51.552c0 .064.032.096.096.096.063 0 .096-.031.096-.096l14.88-51.648c.447-1.536 1.327-2.784 2.64-3.744 1.311-.96 2.768-1.44 4.368-1.44h3.072c1.344 0 2.4.544 3.168 1.632.768 1.089.927 2.273.48 3.552L57.244 83.856a7.47 7.47 0 0 1-2.736 3.743c-1.313.96-2.8 1.44-4.464 1.44h-3.456c-1.601 0-3.057-.48-4.368-1.44a8.016 8.016 0 0 1-2.832-3.743zM135.436 80.496C129.707 86.832 121.915 90 112.06 90c-9.856 0-17.649-3.168-23.376-9.504C82.955 74.16 80.092 65.328 80.092 54s2.863-20.16 8.592-26.496C94.411 21.168 102.203 18 112.06 18c9.855 0 17.647 3.168 23.376 9.504 5.727 6.336 8.592 15.168 8.592 26.496s-2.865 20.16-8.592 26.496zM130.3 54c0-16.64-6.081-24.96-18.24-24.96-12.161 0-18.24 8.32-18.24 24.96 0 16.641 6.079 24.96 18.24 24.96 12.159 0 18.24-8.319 18.24-24.96zM162.267 89.04c-1.473 0-2.752-.543-3.84-1.632-1.089-1.088-1.632-2.367-1.632-3.84V24.432c0-1.472.543-2.751 1.632-3.84 1.087-1.087 2.367-1.632 3.84-1.632h3.84c1.472 0 2.751.544 3.84 1.632 1.088 1.089 1.632 2.369 1.632 3.84v59.136c0 1.473-.544 2.752-1.632 3.84-1.089 1.089-2.368 1.632-3.84 1.632h-3.84zM217.274 90c-10.113 0-18.129-3.12-24.048-9.36-5.92-6.239-8.88-15.119-8.88-26.64 0-11.391 2.863-20.239 8.592-26.544C198.665 21.153 206.681 18 216.986 18c4.736 0 8.703.288 11.904.864 1.536.256 2.815 1.024 3.84 2.304 1.023 1.281 1.536 2.721 1.536 4.32v.768c0 1.344-.561 2.4-1.68 3.168-1.121.768-2.32.993-3.6.672-3.136-.831-6.657-1.248-10.56-1.248-6.336 0-11.313 2.176-14.928 6.528-3.617 4.353-5.424 10.56-5.424 18.624 0 8.001 1.872 14.193 5.616 18.576 3.744 4.385 8.751 6.576 15.024 6.576 4.224 0 7.839-.385 10.848-1.152 1.279-.319 2.479-.096 3.6.672 1.119.769 1.68 1.824 1.68 3.168v.672c0 1.601-.496 3.024-1.488 4.272-.993 1.248-2.289 2.001-3.888 2.256-3.648.639-7.713.96-12.192.96zM255.001 89.04c-1.474 0-2.753-.543-3.84-1.632-1.089-1.088-1.632-2.367-1.632-3.84V24.432c0-1.472.543-2.751 1.632-3.84 1.087-1.087 2.367-1.632 3.84-1.632h32.64c1.472 0 2.751.544 3.84 1.632 1.088 1.089 1.633 2.369 1.633 3.84 0 1.473-.545 2.736-1.633 3.792-1.089 1.056-2.368 1.584-3.84 1.584h-23.808c-.576 0-.864.288-.864.864v15.456c0 .576.288.864.864.864h22.176c1.472 0 2.703.513 3.696 1.536.991 1.025 1.488 2.241 1.488 3.648 0 1.408-.497 2.608-1.488 3.6-.993.993-2.225 1.488-3.696 1.488h-22.176c-.576 0-.864.288-.864.864v19.2c0 .576.288.864.864.864h23.808c1.472 0 2.751.527 3.84 1.584 1.088 1.056 1.633 2.32 1.633 3.792 0 1.473-.545 2.752-1.633 3.84-1.089 1.089-2.368 1.632-3.84 1.632h-32.64zM321.145 83.856l-19.872-59.712c-.448-1.279-.288-2.463.479-3.552.769-1.087 1.824-1.632 3.168-1.632h3.457c1.599 0 3.071.497 4.416 1.488 1.344.993 2.207 2.256 2.592 3.792l14.688 51.552c0 .064.031.096.096.096.063 0 .096-.031.096-.096l14.881-51.648c.447-1.536 1.327-2.784 2.64-3.744 1.312-.96 2.768-1.44 4.368-1.44h3.072c1.344 0 2.4.544 3.168 1.632.768 1.089.927 2.273.48 3.552L339 83.856a7.47 7.47 0 0 1-2.736 3.743c-1.313.96-2.8 1.44-4.463 1.44h-3.457c-1.6 0-3.057-.48-4.367-1.44a8.022 8.022 0 0 1-2.832-3.743zM417.192 80.496C411.464 86.832 403.672 90 393.816 90c-9.856 0-17.648-3.168-23.376-9.504-5.729-6.336-8.592-15.168-8.592-26.496s2.863-20.16 8.592-26.496C376.168 21.168 383.96 18 393.816 18c9.855 0 17.647 3.168 23.376 9.504 5.728 6.336 8.593 15.168 8.593 26.496s-2.865 20.16-8.593 26.496zM412.057 54c0-16.64-6.081-24.96-18.24-24.96-12.16 0-18.24 8.32-18.24 24.96 0 16.641 6.08 24.96 18.24 24.96 12.159 0 18.24-8.319 18.24-24.96zM432.696 89.04c-1.216 0-2.145-.528-2.784-1.584-.641-1.056-.672-2.127-.096-3.216l16.032-29.952c.255-.384.255-.864 0-1.44L430.297 23.76c-.576-1.088-.545-2.16.096-3.216.639-1.056 1.567-1.584 2.784-1.584h4.128c1.663 0 3.199.449 4.607 1.344 1.407.897 2.464 2.081 3.168 3.552l10.08 21.216c0 .064.032.096.097.096.063 0 .096-.031.096-.096l10.08-21.216c.703-1.471 1.76-2.655 3.168-3.552a8.412 8.412 0 0 1 4.608-1.344h3.743c1.28 0 2.224.528 2.832 1.584.607 1.056.624 2.128.048 3.216L464.28 52.848c-.191.448-.191.928 0 1.44l16.032 29.952c.576 1.089.56 2.16-.048 3.216-.609 1.056-1.553 1.584-2.832 1.584h-4.416c-1.665 0-3.216-.447-4.656-1.344-1.439-.896-2.48-2.079-3.12-3.553l-10.271-22.175c0-.063-.033-.096-.097-.096s-.096.033-.096.096l-10.271 22.175c-.641 1.474-1.681 2.657-3.12 3.553-1.44.896-2.993 1.344-4.656 1.344h-4.033z\",\"key\":1})]));\n}\n\nLogo.defaultProps = {\"role\":\"img\",\"aria-label\":\"VOICEVOXのロゴ\",\"viewBox\":\"0 0 500 108\",\"xmlSpace\":\"preserve\"};\n\nmodule.exports = Logo;\n\nLogo.default = Logo;\n","export default __webpack_public_path__ + \"static/landing-share-thumb-bae003080155cf8cc56d1fd7bf826bff.jpg\";"],"names":["React","_ref","audioSamples","characterName","className","styles","useMemo","map","value","style","selectedStyle","setSelectedStyle","useStyleDropdownController","selectedAudioUrls","find","_ref2","urls","url","index","PlayButton","key","name","length","StyleDropdown","CharacterCard","characterInfo","characterKey","setShowingLibraryReadmeModalCharacterKey","Error","LinkToProductPage","children","Link","to","getProductPageUrl","GatsbyImage","image","bustupImage","alt","color","voiceFeature","undefined","releaseDate","marginTop","styleVoiceUrls","AudioSample","onClick","type","Main","_ref3","setShowingHeader","characterInfos","useDetailedCharacterInfo","characterKeys","useContext","CharacterContext","firstViewRef","useRef","useEffect","current","IntersectionObserver","entries","forEach","entry","isIntersecting","observe","showingLibraryReadmeModalCharacterKey","useState","Seo","title","description","shareThumb","ref","Logo","controls","poster","landingMovieThumb","src","landingMovie","SoftwareFeature","id","href","target","rel","role","FontAwesomeIcon","icon","faGithub","ModalReadmeLibrary","Object","assign","hide","isActive","showingHeader","Page","showingHeaderOnTop","getDormitoryCharacterPageUrl","props","createElement","defaultProps","module","exports","default"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"component---src-pages-index-tsx-10ff1acecaba3ffb822d.js","mappings":"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","sources":["webpack://voicevox-blog/./src/components/audioSample.tsx","webpack://voicevox-blog/./src/images/landing-movie-thumb.png","webpack://voicevox-blog/./src/movies/landing.mp4","webpack://voicevox-blog/./src/pages/index.tsx","webpack://voicevox-blog/./src/urls.ts","webpack://voicevox-blog/./src/images/logo.svg","webpack://voicevox-blog/./src/images/landing-share-thumb.jpg"],"sourcesContent":["import React, { useMemo } from \"react\"\nimport PlayButton from \"./playButton\"\nimport StyleDropdown, { useStyleDropdownController } from \"./styleDropdown\"\n\nconst AudioSample = React.memo(\n ({\n audioSamples,\n characterName,\n className,\n }: {\n audioSamples: { style: string; urls: readonly string[] }[]\n characterName: string\n } & React.HTMLAttributes) => {\n const styles = useMemo(\n () => audioSamples.map(value => value.style),\n [audioSamples]\n )\n const { selectedStyle, setSelectedStyle } = useStyleDropdownController({\n styles,\n })\n const selectedAudioUrls = useMemo(\n () => audioSamples.find(({ style }) => style == selectedStyle)!.urls,\n [audioSamples, selectedStyle]\n )\n\n return (\n
\n
\n
\n
\n 音声サンプル\n
\n
\n {selectedAudioUrls.map((url, index) => (\n \n ))}\n
\n
\n {styles.length > 1 && (\n
\n
\n スタイル\n
\n
\n \n
\n
\n )}\n
\n
\n )\n }\n)\n\nexport default AudioSample\n","export default __webpack_public_path__ + \"static/landing-movie-thumb-1b9af402783915bf57ce0d4ff0bdd305.png\";","export default __webpack_public_path__ + \"static/landing-69ef7841f8ed79ae999dc6cfb49e0a77.mp4\";","import { faGithub } from \"@fortawesome/free-brands-svg-icons\"\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { Link } from \"gatsby\"\nimport { GatsbyImage } from \"gatsby-plugin-image\"\nimport React, { useContext, useEffect, useRef, useState } from \"react\"\nimport AudioSample from \"../components/audioSample\"\nimport \"../components/layout.scss\"\nimport ModalReadmeLibrary from \"../components/modalReadmeLibrary\"\nimport { Page } from \"../components/page\"\nimport Seo from \"../components/seo\"\nimport SoftwareFeature from \"../components/softwareFeature\"\nimport { CharacterContext } from \"../contexts/context\"\nimport { useDetailedCharacterInfo } from \"../hooks/useDetailedCharacterInfo\"\nimport landingMovieThumb from \"../images/landing-movie-thumb.png\"\nimport shareThumb from \"../images/landing-share-thumb.jpg\"\nimport Logo from \"../images/logo.svg\"\nimport landingMovie from \"../movies/landing.mp4\"\nimport { CharacterInfo, CharacterKey } from \"../types/dormitoryCharacter\"\nimport { getProductPageUrl } from \"../urls\"\n\n// キャラクター表示\nconst CharacterCard = React.memo(\n ({\n characterInfo,\n characterKey,\n setShowingLibraryReadmeModalCharacterKey,\n }: {\n characterInfo: CharacterInfo\n characterKey: CharacterKey\n setShowingLibraryReadmeModalCharacterKey: (\n characterKey: CharacterKey\n ) => void\n }) => {\n if (!characterInfo)\n throw new Error(`characterInfo is undefined. (${characterKey})`)\n const LinkToProductPage = ({\n children,\n className,\n style,\n }: React.HTMLAttributes) => {\n return (\n \n {children}\n \n )\n }\n return (\n
\n
\n \n \n \n
\n

\n \n {characterInfo.name}\n \n

\n

\n {characterInfo.voiceFeature\n ? characterInfo.voiceFeature\n : \"(準備中)\"}\n

\n {characterInfo.releaseDate != undefined && (\n

\n Coming Soon\n

\n )}\n {characterInfo.styleVoiceUrls.length > 0 && (\n \n )}\n
\n \n setShowingLibraryReadmeModalCharacterKey(characterKey)\n }\n className=\"button is-normal is-rounded\"\n type=\"button\"\n >\n {characterInfo.name} 利用規約\n \n
\n
\n
\n
\n )\n }\n)\n\nconst Main = React.memo(\n ({ setShowingHeader }: { setShowingHeader: (show: boolean) => void }) => {\n const { characterInfos } = useDetailedCharacterInfo()\n\n const { characterKeys } = useContext(CharacterContext)\n\n // ファーストビュー用のビューを超えたらヘッダーを表示する\n const firstViewRef = useRef(null)\n useEffect(() => {\n if (!firstViewRef.current) return\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n setShowingHeader(!entry.isIntersecting)\n })\n })\n observer.observe(firstViewRef.current)\n }, [firstViewRef])\n\n const [\n showingLibraryReadmeModalCharacterKey,\n setShowingLibraryReadmeModalCharacterKey,\n ] = useState(undefined)\n\n return (\n <>\n \n\n
\n
\n
\n
\n
\n
\n \n
\n

\n 無料で使える中品質なテキスト読み上げソフトウェア\n

\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n\n
\n
\n
\n \n \n キャラクター一覧\n \n \n
\n {characterKeys.map(characterKey => (\n \n ))}\n
\n
\n
\n\n
\n
\n

\n \n オープンソース\n \n

\n

\n VOICEVOX は OSS(オープンソース・ソフトウェア)版 VOICEVOX\n をもとに構築されています。\n

\n

\n 製品版と OSS 版の違いやモジュール構成は \n \n VOICEVOX の全体構成\n \n  をご参照ください。\n

\n

\n ソフトウェア部分は Electron + Vue 、音声合成エンジン部分は\n Python + FastAPI です。\n

\n

\n 追加したい・改善したい機能があれば、ぜひ開発にご参加ください。\n

\n
\n \n \n \n \n VOICEVOX エディター\n \n \n \n \n \n VOICEVOX エンジン\n \n
\n
\n
\n\n
\n
\n \n \n コアライブラリ\n \n \n

\n VOICEVOXの音声合成をアプリケーションやサービスに組み込める、VOICEVOXのコアライブラリを配布しています。\n

\n

\n 詳しくは \n \n VOICEVOX CORE\n \n  をご参照ください。\n

\n
\n
\n\n
\n
\n

\n \n リンク\n \n

\n
    \n
  • \n \n 利用規約\n \n
  • \n
  • \n \n 使い方\n \n
  • \n
  • \n \n Q&A\n \n
  • \n
  • \n \n ボイボ寮\n \n
  • \n
  • \n \n 変更履歴\n \n
  • \n
  • \n \n pixivFANBOX\n \n
  • \n
\n
\n
\n
\n
\n setShowingLibraryReadmeModalCharacterKey(undefined)}\n {...(showingLibraryReadmeModalCharacterKey != undefined\n ? {\n isActive: true,\n characterKey: showingLibraryReadmeModalCharacterKey,\n }\n : {\n isActive: false,\n characterKey: undefined,\n })}\n />\n \n )\n }\n)\n\nexport default React.memo(() => {\n const [showingHeader, setShowingHeader] = useState(false)\n return (\n \n
\n \n )\n})\n","import { CharacterInfo } from \"./types/dormitoryCharacter\"\r\n\r\nexport const getProductPageUrl = (characterInfo: CharacterInfo) => {\r\n return `/product/${characterInfo.id}/`\r\n}\r\n\r\nexport const getDormitoryCharacterPageUrl = (characterInfo: CharacterInfo) => {\r\n return `/dormitory/${characterInfo.id}/`\r\n}\r\n","var React = require('react');\n\nfunction Logo (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",null,[React.createElement(\"title\",{\"key\":0},\"VOICEVOXのロゴ\"),React.createElement(\"path\",{\"d\":\"M39.388 83.856 19.516 24.144c-.449-1.279-.288-2.463.48-3.552.768-1.087 1.824-1.632 3.168-1.632h3.456c1.599 0 3.072.497 4.416 1.488 1.344.993 2.208 2.256 2.592 3.792l14.688 51.552c0 .064.032.096.096.096.063 0 .096-.031.096-.096l14.88-51.648c.447-1.536 1.327-2.784 2.64-3.744 1.311-.96 2.768-1.44 4.368-1.44h3.072c1.344 0 2.4.544 3.168 1.632.768 1.089.927 2.273.48 3.552L57.244 83.856a7.47 7.47 0 0 1-2.736 3.743c-1.313.96-2.8 1.44-4.464 1.44h-3.456c-1.601 0-3.057-.48-4.368-1.44a8.016 8.016 0 0 1-2.832-3.743zM135.436 80.496C129.707 86.832 121.915 90 112.06 90c-9.856 0-17.649-3.168-23.376-9.504C82.955 74.16 80.092 65.328 80.092 54s2.863-20.16 8.592-26.496C94.411 21.168 102.203 18 112.06 18c9.855 0 17.647 3.168 23.376 9.504 5.727 6.336 8.592 15.168 8.592 26.496s-2.865 20.16-8.592 26.496zM130.3 54c0-16.64-6.081-24.96-18.24-24.96-12.161 0-18.24 8.32-18.24 24.96 0 16.641 6.079 24.96 18.24 24.96 12.159 0 18.24-8.319 18.24-24.96zM162.267 89.04c-1.473 0-2.752-.543-3.84-1.632-1.089-1.088-1.632-2.367-1.632-3.84V24.432c0-1.472.543-2.751 1.632-3.84 1.087-1.087 2.367-1.632 3.84-1.632h3.84c1.472 0 2.751.544 3.84 1.632 1.088 1.089 1.632 2.369 1.632 3.84v59.136c0 1.473-.544 2.752-1.632 3.84-1.089 1.089-2.368 1.632-3.84 1.632h-3.84zM217.274 90c-10.113 0-18.129-3.12-24.048-9.36-5.92-6.239-8.88-15.119-8.88-26.64 0-11.391 2.863-20.239 8.592-26.544C198.665 21.153 206.681 18 216.986 18c4.736 0 8.703.288 11.904.864 1.536.256 2.815 1.024 3.84 2.304 1.023 1.281 1.536 2.721 1.536 4.32v.768c0 1.344-.561 2.4-1.68 3.168-1.121.768-2.32.993-3.6.672-3.136-.831-6.657-1.248-10.56-1.248-6.336 0-11.313 2.176-14.928 6.528-3.617 4.353-5.424 10.56-5.424 18.624 0 8.001 1.872 14.193 5.616 18.576 3.744 4.385 8.751 6.576 15.024 6.576 4.224 0 7.839-.385 10.848-1.152 1.279-.319 2.479-.096 3.6.672 1.119.769 1.68 1.824 1.68 3.168v.672c0 1.601-.496 3.024-1.488 4.272-.993 1.248-2.289 2.001-3.888 2.256-3.648.639-7.713.96-12.192.96zM255.001 89.04c-1.474 0-2.753-.543-3.84-1.632-1.089-1.088-1.632-2.367-1.632-3.84V24.432c0-1.472.543-2.751 1.632-3.84 1.087-1.087 2.367-1.632 3.84-1.632h32.64c1.472 0 2.751.544 3.84 1.632 1.088 1.089 1.633 2.369 1.633 3.84 0 1.473-.545 2.736-1.633 3.792-1.089 1.056-2.368 1.584-3.84 1.584h-23.808c-.576 0-.864.288-.864.864v15.456c0 .576.288.864.864.864h22.176c1.472 0 2.703.513 3.696 1.536.991 1.025 1.488 2.241 1.488 3.648 0 1.408-.497 2.608-1.488 3.6-.993.993-2.225 1.488-3.696 1.488h-22.176c-.576 0-.864.288-.864.864v19.2c0 .576.288.864.864.864h23.808c1.472 0 2.751.527 3.84 1.584 1.088 1.056 1.633 2.32 1.633 3.792 0 1.473-.545 2.752-1.633 3.84-1.089 1.089-2.368 1.632-3.84 1.632h-32.64zM321.145 83.856l-19.872-59.712c-.448-1.279-.288-2.463.479-3.552.769-1.087 1.824-1.632 3.168-1.632h3.457c1.599 0 3.071.497 4.416 1.488 1.344.993 2.207 2.256 2.592 3.792l14.688 51.552c0 .064.031.096.096.096.063 0 .096-.031.096-.096l14.881-51.648c.447-1.536 1.327-2.784 2.64-3.744 1.312-.96 2.768-1.44 4.368-1.44h3.072c1.344 0 2.4.544 3.168 1.632.768 1.089.927 2.273.48 3.552L339 83.856a7.47 7.47 0 0 1-2.736 3.743c-1.313.96-2.8 1.44-4.463 1.44h-3.457c-1.6 0-3.057-.48-4.367-1.44a8.022 8.022 0 0 1-2.832-3.743zM417.192 80.496C411.464 86.832 403.672 90 393.816 90c-9.856 0-17.648-3.168-23.376-9.504-5.729-6.336-8.592-15.168-8.592-26.496s2.863-20.16 8.592-26.496C376.168 21.168 383.96 18 393.816 18c9.855 0 17.647 3.168 23.376 9.504 5.728 6.336 8.593 15.168 8.593 26.496s-2.865 20.16-8.593 26.496zM412.057 54c0-16.64-6.081-24.96-18.24-24.96-12.16 0-18.24 8.32-18.24 24.96 0 16.641 6.08 24.96 18.24 24.96 12.159 0 18.24-8.319 18.24-24.96zM432.696 89.04c-1.216 0-2.145-.528-2.784-1.584-.641-1.056-.672-2.127-.096-3.216l16.032-29.952c.255-.384.255-.864 0-1.44L430.297 23.76c-.576-1.088-.545-2.16.096-3.216.639-1.056 1.567-1.584 2.784-1.584h4.128c1.663 0 3.199.449 4.607 1.344 1.407.897 2.464 2.081 3.168 3.552l10.08 21.216c0 .064.032.096.097.096.063 0 .096-.031.096-.096l10.08-21.216c.703-1.471 1.76-2.655 3.168-3.552a8.412 8.412 0 0 1 4.608-1.344h3.743c1.28 0 2.224.528 2.832 1.584.607 1.056.624 2.128.048 3.216L464.28 52.848c-.191.448-.191.928 0 1.44l16.032 29.952c.576 1.089.56 2.16-.048 3.216-.609 1.056-1.553 1.584-2.832 1.584h-4.416c-1.665 0-3.216-.447-4.656-1.344-1.439-.896-2.48-2.079-3.12-3.553l-10.271-22.175c0-.063-.033-.096-.097-.096s-.096.033-.096.096l-10.271 22.175c-.641 1.474-1.681 2.657-3.12 3.553-1.44.896-2.993 1.344-4.656 1.344h-4.033z\",\"key\":1})]));\n}\n\nLogo.defaultProps = {\"role\":\"img\",\"aria-label\":\"VOICEVOXのロゴ\",\"viewBox\":\"0 0 500 108\",\"xmlSpace\":\"preserve\"};\n\nmodule.exports = Logo;\n\nLogo.default = Logo;\n","export default __webpack_public_path__ + \"static/landing-share-thumb-bae003080155cf8cc56d1fd7bf826bff.jpg\";"],"names":["React","_ref","audioSamples","characterName","className","styles","useMemo","map","value","style","selectedStyle","setSelectedStyle","useStyleDropdownController","selectedAudioUrls","find","_ref2","urls","url","index","PlayButton","key","name","length","StyleDropdown","CharacterCard","characterInfo","characterKey","setShowingLibraryReadmeModalCharacterKey","Error","LinkToProductPage","children","Link","to","getProductPageUrl","GatsbyImage","image","bustupImage","alt","color","voiceFeature","undefined","releaseDate","marginTop","styleVoiceUrls","AudioSample","onClick","type","Main","_ref3","setShowingHeader","characterInfos","useDetailedCharacterInfo","characterKeys","useContext","CharacterContext","firstViewRef","useRef","useEffect","current","IntersectionObserver","entries","forEach","entry","isIntersecting","observe","showingLibraryReadmeModalCharacterKey","useState","Seo","title","description","shareThumb","ref","Logo","controls","poster","landingMovieThumb","src","landingMovie","SoftwareFeature","id","href","target","rel","role","FontAwesomeIcon","icon","faGithub","ModalReadmeLibrary","Object","assign","hide","isActive","showingHeader","Page","showingHeaderOnTop","getDormitoryCharacterPageUrl","props","createElement","defaultProps","module","exports","default"],"sourceRoot":""} \ No newline at end of file diff --git a/d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js b/d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js new file mode 100644 index 000000000..585ec5a74 --- /dev/null +++ b/d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkvoicevox_blog=self.webpackChunkvoicevox_blog||[]).push([[542],{7814:function(e,t,a){a.d(t,{G:function(){return E}});var n=a(3636),r=a(5697),i=a.n(r),o=a(7294);function s(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function l(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}function d(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return u(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a0||!Array.isArray(t)&&t?A({},e,t):{}}var E=o.forwardRef((function(e,t){var a=e.icon,r=e.mask,i=e.symbol,o=e.className,s=e.title,c=e.titleId,m=e.maskId,u=p(a),f=g("classes",[].concat(d(function(e){var t,a=e.beat,n=e.fade,r=e.beatFade,i=e.bounce,o=e.shake,s=e.flash,l=e.spin,c=e.spinPulse,m=e.spinReverse,d=e.pulse,u=e.fixedWidth,f=e.inverse,v=e.border,b=e.listItem,p=e.flip,g=e.size,E=e.rotation,h=e.pull,y=(A(t={"fa-beat":a,"fa-fade":n,"fa-beat-fade":r,"fa-bounce":i,"fa-shake":o,"fa-flash":s,"fa-spin":l,"fa-spin-reverse":m,"fa-spin-pulse":c,"fa-pulse":d,"fa-fw":u,"fa-inverse":f,"fa-border":v,"fa-li":b,"fa-flip":!0===p,"fa-flip-horizontal":"horizontal"===p||"both"===p,"fa-flip-vertical":"vertical"===p||"both"===p},"fa-".concat(g),null!=g),A(t,"fa-rotate-".concat(E),null!=E&&0!==E),A(t,"fa-pull-".concat(h),null!=h),A(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(y).map((function(e){return y[e]?e:null})).filter((function(e){return e}))}(e)),d(o.split(" ")))),v=g("transform","string"==typeof e.transform?n.Qc.transform(e.transform):e.transform),y=g("mask",p(r)),w=(0,n.qv)(u,l(l(l(l({},f),v),y),{},{symbol:i,title:s,titleId:c,maskId:m}));if(!w)return function(){var e;!b&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",u),null;var C=w.abstract,O={ref:t};return Object.keys(e).forEach((function(t){E.defaultProps.hasOwnProperty(t)||(O[t]=e[t])})),h(C[0],O)}));E.displayName="FontAwesomeIcon",E.propTypes={beat:i().bool,border:i().bool,beatFade:i().bool,bounce:i().bool,className:i().string,fade:i().bool,flash:i().bool,mask:i().oneOfType([i().object,i().array,i().string]),maskId:i().string,fixedWidth:i().bool,inverse:i().bool,flip:i().oneOf([!0,!1,"horizontal","vertical","both"]),icon:i().oneOfType([i().object,i().array,i().string]),listItem:i().bool,pull:i().oneOf(["right","left"]),pulse:i().bool,rotation:i().oneOf([0,90,180,270]),shake:i().bool,size:i().oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:i().bool,spinPulse:i().bool,spinReverse:i().bool,symbol:i().oneOfType([i().bool,i().string]),title:i().string,titleId:i().string,transform:i().oneOfType([i().string,i().object]),swapOpacity:i().bool},E.defaultProps={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1};var h=function e(t,a){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof a)return a;var r=(a.children||[]).map((function(a){return e(t,a)})),i=Object.keys(a.attributes||{}).reduce((function(e,t){var n=a.attributes[t];switch(t){case"class":e.attrs.className=n,delete a.attributes.class;break;case"style":e.attrs.style=n.split(";").map((function(e){return e.trim()})).filter((function(e){return e})).reduce((function(e,t){var a,n=t.indexOf(":"),r=f(t.slice(0,n)),i=t.slice(n+1).trim();return r.startsWith("webkit")?e[(a=r,a.charAt(0).toUpperCase()+a.slice(1))]=i:e[r]=i,e}),{});break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=n:e.attrs[f(t)]=n}return e}),{attrs:{}}),o=n.style,s=void 0===o?{}:o,c=m(n,v);return i.attrs.style=l(l({},i.attrs.style),s),t.apply(void 0,[a.tag,l(l({},i.attrs),c)].concat(d(r)))}.bind(null,o.createElement)},3479:function(e,t,a){var n=a(7294);t.Z=e=>((0,n.useEffect)((()=>{e.isActive?document.body.classList.add("is-clipped"):document.body.classList.remove("is-clipped")}),[e.isActive]),n.createElement("div",{className:e.className+" modal"+(e.isActive?" is-active":"")},n.createElement("div",{className:"modal-background",onClick:e.hide}),n.createElement("div",{className:"modal-card"},n.createElement("header",{className:"modal-card-head has-text-centered"},n.createElement("p",{className:"modal-card-title"},e.title),n.createElement("button",{className:"delete","aria-label":"close",onClick:e.hide,type:"button"})),n.createElement("section",{className:"modal-card-body"},n.createElement("div",{className:"markdown",dangerouslySetInnerHTML:{__html:e.html}})),n.createElement("footer",{className:"modal-card-foot is-justify-content-flex-end"}))))},3492:function(e,t,a){a.d(t,{T:function(){return g}});var n=a(9417),r=a(7814),i=a(1883),o=a(7294),s=a(3479),l=e=>{const t=(0,i.useStaticQuery)("3903598066").markdownRemark.html;return o.createElement(s.Z,{title:"プライバシーポリシー",html:t,isActive:e.isActive,hide:e.hide})},c=a(3612);const A=()=>{const{0:e,1:t}=(0,o.useState)(!1);return{showing:e,show:()=>{t(!0)},hide:()=>{t(!1)}}};var m=a(3706),d=e=>{let{label:t,selected:a,setSelected:n,candidates:r}=e;return(0,o.useEffect)((()=>{r.find((e=>e==a))||n(r[0])}),[r]),o.createElement("div",{className:"columns is-tablet is-centered is-vcentered py-0 my-2"},o.createElement("div",{className:"column is-3 py-0 my-1"},o.createElement("p",{className:"has-text-centered is-size-5 has-text-weight-bold"},t)),o.createElement("div",{className:"column is-6 py-0 my-1"},o.createElement("div",{className:"buttons is-centered"},r.map(((e,t)=>o.createElement("button",{key:t,className:"button is-rounded "+(e==a?"is-success has-text-weight-semibold":""),onClick:()=>n(e),type:"button"},o.createElement("span",null,e)))))))};const u={Windows:["GPU / CPU","CPU"],Mac:["CPU"],Linux:["GPU / CPU","CPU"]},f={Windows:{"GPU / CPU":["インストーラー","Zip"],CPU:["インストーラー","Zip"]},Mac:{"GPU / CPU":["インストーラー","Zip"],CPU:["インストーラー","Zip"]},Linux:{"GPU / CPU":["インストーラー"],CPU:["インストーラー","tar.gz"]}},v=e=>{var t,a,n,r;const s=(0,i.useStaticQuery)("4236442321").allFile.nodes,l={Windows:{"GPU / CPU":{"インストーラー":{url:"https://github.com/VOICEVOX/voicevox/releases/download/"+m.Ji+"/VOICEVOX.Web.Setup."+m.Ji+".exe",name:"VOICEVOX.Setup."+m.Ji+".Windows.exe"},Zip:{url:"https://github.com/VOICEVOX/voicevox/releases/download/"+m.Ji+"/voicevox-windows-directml-"+m.Ji+".zip",name:"VOICEVOX."+m.Ji+".Windows.zip"}},CPU:{"インストーラー":{url:"https://github.com/VOICEVOX/voicevox/releases/download/"+m.Ji+"/VOICEVOX-CPU.Web.Setup."+m.Ji+".exe",name:"VOICEVOX-CPU.Setup."+m.Ji+".Windows.exe"},Zip:{url:"https://github.com/VOICEVOX/voicevox/releases/download/"+m.Ji+"/voicevox-windows-cpu-"+m.Ji+".zip",name:"VOICEVOX-CPU."+m.Ji+".Windows.zip"}}},Mac:{CPU:{"インストーラー":{url:"https://github.com/VOICEVOX/voicevox/releases/download/"+m.Ji+"/VOICEVOX."+m.Ji+".dmg",name:"VOICEVOX."+m.Ji+".Mac.dmg"},Zip:{url:"https://github.com/VOICEVOX/voicevox/releases/download/"+m.Ji+"/voicevox-macos-cpu-"+m.Ji+".zip",name:"VOICEVOX-CPU."+m.Ji+".Mac.zip"}}},Linux:{"GPU / CPU":{"インストーラー":{url:s.find((e=>"linuxInstallNvidia"==e.name)).publicURL,name:"VOICEVOX.Installer."+m.Ji+".Linux.sh"}},CPU:{"インストーラー":{url:s.find((e=>"linuxInstallCpu"==e.name)).publicURL,name:"VOICEVOX-CPU.Installer."+m.Ji+".Linux.sh"},"tar.gz":{url:"https://github.com/VOICEVOX/voicevox/releases/download/"+m.Ji+"/voicevox-linux-cpu-"+m.Ji+".tar.gz",name:"VOICEVOX-CPU."+m.Ji+".Linux.tar.gz"}}}},{0:c,1:A}=(0,o.useState)("Windows"),{0:v,1:b}=(0,o.useState)("GPU / CPU"),{0:p,1:g}=(0,o.useState)("インストーラー");return(0,o.useEffect)((()=>{u[c].find((e=>e==v))||b(u[c][0]),f[c][v].find((e=>e==p))||g(f[c][v][0])}),[c,v,p]),o.createElement("div",{className:"modal-download modal"+(e.isActive?" is-active":"")},o.createElement("div",{className:"modal-background",onClick:e.hide,role:"presentation"}),o.createElement("div",{className:"modal-card"},o.createElement(o.Fragment,null,o.createElement("header",{className:"modal-card-head has-text-centered"},o.createElement("p",{className:"modal-card-title"},"ダウンロード選択"),o.createElement("button",{className:"delete","aria-label":"close",onClick:e.hide,type:"button"})),o.createElement("section",{className:"modal-card-body"},o.createElement(d,{label:"OS",selected:c,setSelected:A,candidates:["Windows","Mac","Linux"]}),o.createElement("hr",{className:"my-3"}),o.createElement(d,{label:"対応モード",selected:v,setSelected:b,candidates:u[c]}),o.createElement("p",{className:"has-text-centered is-size-7"},"※ GPUモードの方が快適ですが、利用するためには",o.createElement(i.Link,{to:"/qa"},"対応するGPU"),"が必要です"),o.createElement("hr",{className:"my-3"}),o.createElement(d,{label:"パッケージ",selected:p,setSelected:g,candidates:f[c][v]}),o.createElement("p",{className:"has-text-centered is-size-7"},"※ 推奨パッケージはインストーラー版です")),o.createElement("footer",{className:"modal-card-foot is-justify-content-flex-end"},o.createElement("a",{href:null===(t=l[c][v])||void 0===t||null===(a=t[p])||void 0===a?void 0:a.url,download:null===(n=l[c][v])||void 0===n||null===(r=n[p])||void 0===r?void 0:r.name,target:"_blank",rel:"noreferrer",className:"button is-primary",type:"button",role:"button"},o.createElement("span",{className:"has-text-weight-semibold"},"ダウンロード"))))))};var b=a(3024);const p=e=>{let{privacyPolicyShower:t}=e;return o.createElement(o.Fragment,null,o.createElement("div",{className:"container is-flex is-justify-content-center"},o.createElement("a",{className:"button is-outlined ml-1 mr-1",href:"https://github.com/VOICEVOX/voicevox",target:"_blank",rel:"noreferrer",type:"button",role:"button"},o.createElement("span",{className:"icon"},o.createElement(r.G,{icon:b.zhw})),o.createElement("span",null,"GitHub")),o.createElement("a",{className:"button is-outlined is-info ml-1 mr-1",href:"https://twitter.com/voicevox_pj",target:"_blank",rel:"noreferrer",type:"button",role:"button"},o.createElement("span",{className:"icon"},o.createElement(r.G,{icon:b.mdU})),o.createElement("span",null,"Twitter"))),o.createElement("div",{className:"container is-flex is-justify-content-center mt-2"},o.createElement("a",{className:"is-size-7\tml-1 mr-1",onClick:t},"プライバシーポリシー"),o.createElement("p",{className:"is-size-7\tml-1 mr-1"},"© Hiroshiba Kazuyuki")))},g=e=>{let{showingHeader:t=!0,showingHeaderOnTop:a=!0,children:s}=e;const{0:m,1:d}=(0,o.useState)(!1),u=(0,o.useContext)(c.k);u.downloadModal=A();const{showing:f,show:b,hide:g}=A();return o.createElement(o.Fragment,null,o.createElement("nav",{className:"navbar is-fixed-top has-shadow "+(t?"":"is-hidden")+" "+(a?"":"navbar-with-animation"),role:"navigation","aria-label":"main navigation"},o.createElement("div",{className:"navbar-brand"},o.createElement(i.Link,{to:"/",className:"navbar-item"},o.createElement("img",{src:"data:image/png;base64,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",alt:"VOICEVOXのロゴ"}),o.createElement("span",{className:"has-text-weight-bold is-size-5 pl-2"},"VOICEVOX")),o.createElement("a",{role:"button",className:"navbar-burger "+(m?"is-active":""),"aria-label":"menu","aria-expanded":"false","data-target":"navbar",onClick:()=>d(!m)},o.createElement("span",{"aria-hidden":"true"}),o.createElement("span",{"aria-hidden":"true"}),o.createElement("span",{"aria-hidden":"true"}))),o.createElement("div",{id:"navbar",className:"navbar-menu "+(m?"is-active":"")},o.createElement("div",{className:"navbar-end"},o.createElement(i.Link,{to:"/term/",className:"navbar-item"},"利用規約"),o.createElement(i.Link,{to:"/how_to_use/",className:"navbar-item"},"使い方"),o.createElement(i.Link,{to:"/qa/",className:"navbar-item"},"Q&A"),o.createElement(i.Link,{to:"/dormitory/",className:"navbar-item"},"ボイボ寮"),o.createElement(i.Link,{to:"/update_history/",className:"navbar-item"},"変更履歴"),o.createElement("a",{href:"https://hiho.fanbox.cc/",target:"_blank",rel:"noreferrer",className:"navbar-item"},"pixivFANBOX"),o.createElement("div",{className:"navbar-item py-0"},o.createElement("a",{className:"button is-primary is-rounded",onClick:()=>{var e,t;u.downloadModal.show(),e="download",t="software","undefined"!=typeof window&&window.gtag&&window.gtag("event",e,{event_category:t})},target:"_blank",rel:"noreferrer",tabIndex:0},o.createElement("span",{className:"icon"},o.createElement(r.G,{icon:n.q7m})),o.createElement("span",{className:"has-text-weight-semibold"},"ダウンロード")))))),o.createElement("div",{className:"navbar height-holder "+(t&&a?"":"is-hidden")}),o.createElement(c.k.Provider,{value:u},s),o.createElement(v,{isActive:u.downloadModal.showing,hide:u.downloadModal.hide}),o.createElement(l,{isActive:f,hide:g}),o.createElement("footer",{className:"footer appearance"},o.createElement(p,{privacyPolicyShower:b})),o.createElement("div",{className:"footer height-holder"},o.createElement(p,{privacyPolicyShower:()=>{}})))}},3706:function(e,t,a){a.d(t,{C9:function(){return i},Ji:function(){return n},qT:function(){return r}});const n="0.14.8",r=["四国めたん","ずんだもん","春日部つむぎ","雨晴はう","波音リツ","玄野武宏","白上虎太郎","青山龍星","冥鳴ひまり","九州そら","モチノキョウコ","剣崎雌雄","WhiteCUL","後鬼","No7","ちび式じい","櫻歌ミコ","小夜_SAYO","ナースロボ_タイプT","聖騎士紅桜","雀松朱司","麒ヶ島宗麟","春歌ナナ","猫使アル","猫使ビィ","中国うさぎ","栗田まろん","藍田ノエル","満別花丸","琴詠ニア"],i={"四国めたん":{name:"四国めたん",id:"shikoku_metan"},"ずんだもん":{name:"ずんだもん",id:"zundamon"},"春日部つむぎ":{name:"春日部つむぎ",id:"kasukabe_tsumugi"},"雨晴はう":{name:"雨晴はう",id:"amehare_hau"},"波音リツ":{name:"波音リツ",id:"namine_ritsu"},"玄野武宏":{name:"玄野武宏",id:"kurono_takehiro"},"白上虎太郎":{name:"白上虎太郎",id:"shirakami_kotarou"},"青山龍星":{name:"青山龍星",id:"aoyama_ryusei"},"冥鳴ひまり":{name:"冥鳴ひまり",id:"meimei_himari"},"九州そら":{name:"九州そら",id:"kyushu_sora"},"モチノキョウコ":{name:"もち子さん",id:"mochikosan"},"剣崎雌雄":{name:"剣崎雌雄",id:"kenzaki_mesuo"},WhiteCUL:{name:"WhiteCUL",id:"white_cul"},"後鬼":{name:"後鬼",id:"goki"},No7:{name:"No.7",id:"number_seven"},"ちび式じい":{name:"ちび式じい",id:"chibishikiji"},"櫻歌ミコ":{name:"櫻歌ミコ",id:"ouka_miko"},"小夜_SAYO":{name:"小夜/SAYO",id:"sayo"},"ナースロボ_タイプT":{name:"ナースロボ_タイプT",id:"nurserobo_typet"},"聖騎士紅桜":{name:"†聖騎士 紅桜†",id:"horinaito_benizakura"},"雀松朱司":{name:"雀松朱司",id:"wakamatsu_akashi"},"麒ヶ島宗麟":{name:"麒ヶ島宗麟",id:"kigashima_sourin"},"春歌ナナ":{name:"春歌ナナ",id:"haruka_nana"},"猫使アル":{name:"猫使アル",id:"nekotsuka_aru"},"猫使ビィ":{name:"猫使ビィ",id:"nekotsuka_bi"},"中国うさぎ":{name:"中国うさぎ",id:"chugoku_usagi"},"栗田まろん":{name:"栗田まろん",id:"kurita_maron"},"藍田ノエル":{name:"あいえるたん",id:"aierutan"},"満別花丸":{name:"満別花丸",id:"manbetsu_hanamaru"},"琴詠ニア":{name:"琴詠ニア",id:"kotoyomi_nia"}}},3612:function(e,t,a){a.d(t,{K:function(){return o},k:function(){return i}});var n=a(7294),r=a(3706);const i=n.createContext({sendEvent:(e,t)=>{"undefined"!=typeof window&&window.gtag&&window.gtag("event",e,{event_category:t})},downloadModal:{showing:!1,show:()=>{},hide:()=>{}},experiments:!1}),o=n.createContext({characterKeys:r.qT,characterInfos:r.C9})}}]); +//# sourceMappingURL=d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js.map \ No newline at end of file diff --git a/d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js.map b/d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js.map new file mode 100644 index 000000000..6d37f0584 --- /dev/null +++ b/d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"d093ed3671b48cd2dc59e2d475444cca9f42ccc6-4d5666bfc3a739ffb85c.js","mappings":"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","sources":["webpack://voicevox-blog/./node_modules/@fortawesome/react-fontawesome/index.es.js","webpack://voicevox-blog/./src/components/modalMarkdown.tsx","webpack://voicevox-blog/./src/components/modalPrivacyPolicy.tsx","webpack://voicevox-blog/./src/hooks/hook.ts","webpack://voicevox-blog/./src/images/icon.png","webpack://voicevox-blog/./src/components/downloadModalSelecter.tsx","webpack://voicevox-blog/./src/components/downloadModal.tsx","webpack://voicevox-blog/./src/components/page-footer.tsx","webpack://voicevox-blog/./src/components/page.tsx","webpack://voicevox-blog/./src/constants.ts","webpack://voicevox-blog/./src/contexts/context.ts"],"sourcesContent":["import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","import React, { useEffect } from \"react\"\r\n\r\nexport default (props: {\r\n isActive: boolean\r\n title: string\r\n html: string\r\n hide: () => void\r\n className?: string\r\n}) => {\r\n useEffect(() => {\r\n if (props.isActive) {\r\n document.body.classList.add(\"is-clipped\")\r\n } else {\r\n document.body.classList.remove(\"is-clipped\")\r\n }\r\n }, [props.isActive])\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n

{props.title}

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n","import { graphql, useStaticQuery } from \"gatsby\"\nimport React from \"react\"\n\nimport ModalMarkdown from \"./modalMarkdown\"\n\nexport default (props: { isActive: boolean; hide: () => void }) => {\n const html = useStaticQuery(graphql`\n query {\n markdownRemark(fileAbsolutePath: { regex: \"/privacyPolicy/\" }) {\n html\n }\n }\n `).markdownRemark.html\n return (\n \n )\n}\n","import { useState } from \"react\"\r\n\r\nexport const useModalController = () => {\r\n const [showing, setShowing] = useState(false)\r\n const show = () => {\r\n setShowing(true)\r\n }\r\n const hide = () => {\r\n setShowing(false)\r\n }\r\n\r\n return { showing, show, hide }\r\n}\r\n","export default \"data:image/png;base64,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\"","import React, { useEffect } from \"react\"\n\nexport default ({\n label,\n selected,\n setSelected,\n candidates,\n}: {\n label: string\n selected: T\n setSelected: (selected: T) => void\n candidates: T[]\n}) => {\n useEffect(() => {\n if (!candidates.find(value => value == selected)) {\n setSelected(candidates[0])\n }\n }, [candidates])\n\n return (\n
\n
\n

\n {label}\n

\n
\n
\n
\n {candidates.map((candidate, index) => (\n setSelected(candidate)}\n type=\"button\"\n >\n {candidate}\n \n ))}\n
\n
\n
\n )\n}\n","import { Link, graphql, useStaticQuery } from \"gatsby\"\nimport React, { useEffect, useState } from \"react\"\nimport { APP_VERSION } from \"../constants\"\nimport DownloadModalSelecter from \"./downloadModalSelecter\"\n\ntype OsType = \"Windows\" | \"Mac\" | \"Linux\"\ntype ModeType = \"GPU / CPU\" | \"CPU\"\ntype PackageType = \"インストーラー\" | \"Zip\" | \"tar.gz\"\n\nconst modeAvailables: Record = {\n Windows: [\"GPU / CPU\", \"CPU\"],\n Mac: [\"CPU\"],\n Linux: [\"GPU / CPU\", \"CPU\"],\n}\n\nconst packageAvailables: Record> = {\n Windows: {\n \"GPU / CPU\": [\"インストーラー\", \"Zip\"],\n CPU: [\"インストーラー\", \"Zip\"],\n },\n Mac: {\n \"GPU / CPU\": [\"インストーラー\", \"Zip\"],\n CPU: [\"インストーラー\", \"Zip\"],\n },\n Linux: { \"GPU / CPU\": [\"インストーラー\"], CPU: [\"インストーラー\", \"tar.gz\"] },\n}\n\nexport const DownloadModal: React.FC<{\n isActive: boolean\n hide: () => void\n}> = props => {\n const maintenanceMode = false\n\n const scriptNodes: { name: string; publicURL: string }[] =\n useStaticQuery(graphql`\n query {\n allFile(filter: { dir: { regex: \"/scripts$/\" } }) {\n nodes {\n name\n publicURL\n }\n }\n }\n `).allFile.nodes\n\n const downloadUrls: Record<\n OsType,\n Partial<\n Record<\n ModeType,\n Partial>\n >\n >\n > = {\n Windows: {\n \"GPU / CPU\": {\n インストーラー: {\n url: `https://github.com/VOICEVOX/voicevox/releases/download/${APP_VERSION}/VOICEVOX.Web.Setup.${APP_VERSION}.exe`,\n name: `VOICEVOX.Setup.${APP_VERSION}.Windows.exe`,\n },\n Zip: {\n url: `https://github.com/VOICEVOX/voicevox/releases/download/${APP_VERSION}/voicevox-windows-directml-${APP_VERSION}.zip`,\n name: `VOICEVOX.${APP_VERSION}.Windows.zip`,\n },\n },\n CPU: {\n インストーラー: {\n url: `https://github.com/VOICEVOX/voicevox/releases/download/${APP_VERSION}/VOICEVOX-CPU.Web.Setup.${APP_VERSION}.exe`,\n name: `VOICEVOX-CPU.Setup.${APP_VERSION}.Windows.exe`,\n },\n Zip: {\n url: `https://github.com/VOICEVOX/voicevox/releases/download/${APP_VERSION}/voicevox-windows-cpu-${APP_VERSION}.zip`,\n name: `VOICEVOX-CPU.${APP_VERSION}.Windows.zip`,\n },\n },\n },\n Mac: {\n CPU: {\n インストーラー: {\n url: `https://github.com/VOICEVOX/voicevox/releases/download/${APP_VERSION}/VOICEVOX.${APP_VERSION}.dmg`,\n name: `VOICEVOX.${APP_VERSION}.Mac.dmg`,\n },\n Zip: {\n url: `https://github.com/VOICEVOX/voicevox/releases/download/${APP_VERSION}/voicevox-macos-cpu-${APP_VERSION}.zip`,\n name: `VOICEVOX-CPU.${APP_VERSION}.Mac.zip`,\n },\n },\n },\n Linux: {\n \"GPU / CPU\": {\n インストーラー: {\n url: scriptNodes.find(value => value.name == \"linuxInstallNvidia\")!\n .publicURL,\n name: `VOICEVOX.Installer.${APP_VERSION}.Linux.sh`,\n },\n },\n CPU: {\n インストーラー: {\n url: scriptNodes.find(value => value.name == \"linuxInstallCpu\")!\n .publicURL,\n name: `VOICEVOX-CPU.Installer.${APP_VERSION}.Linux.sh`,\n },\n \"tar.gz\": {\n url: `https://github.com/VOICEVOX/voicevox/releases/download/${APP_VERSION}/voicevox-linux-cpu-${APP_VERSION}.tar.gz`,\n name: `VOICEVOX-CPU.${APP_VERSION}.Linux.tar.gz`,\n },\n },\n },\n }\n\n const [selectedOs, setSelectedOs] = useState(\"Windows\")\n const [selectedMode, setSelectedMode] = useState(\"GPU / CPU\")\n const [selectedPackage, setSelectedPackage] =\n useState(\"インストーラー\")\n\n // 存在しない組み合わせのときに選択中のものを変更する\n useEffect(() => {\n if (!modeAvailables[selectedOs].find(value => value == selectedMode)) {\n setSelectedMode(modeAvailables[selectedOs][0])\n }\n if (\n !packageAvailables[selectedOs][selectedMode].find(\n value => value == selectedPackage\n )\n ) {\n setSelectedPackage(packageAvailables[selectedOs][selectedMode][0])\n }\n }, [selectedOs, selectedMode, selectedPackage])\n\n return (\n \n \n
\n {!maintenanceMode ? (\n <>\n
\n

ダウンロード選択

\n \n
\n\n
\n \n\n
\n\n \n

\n ※ GPUモードの方が快適ですが、利用するためには\n 対応するGPU\n が必要です\n

\n\n
\n\n \n

\n ※ 推奨パッケージはインストーラー版です\n

\n
\n\n
\n \n ダウンロード\n \n
\n \n ) : (\n <>\n
\n

メンテナンス中です

\n \n
\n\n
\n

\n アップデートのためのメンテナンス中です。\n
\n しばらくお待ち下さい。\n

\n
\n\n
\n \n
\n \n )}\n
\n \n )\n}\n","import { faGithub, faTwitter } from \"@fortawesome/free-brands-svg-icons\"\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport React from \"react\"\n\nexport const VVFooter: React.FC<{\n privacyPolicyShower: () => void\n}> = ({ privacyPolicyShower }) => (\n <>\n
\n \n \n \n \n GitHub\n \n \n \n \n \n Twitter\n \n
\n
\n \n プライバシーポリシー\n \n

© Hiroshiba Kazuyuki

\n
\n \n)\n","import { faDownload } from \"@fortawesome/free-solid-svg-icons\"\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { Link } from \"gatsby\"\nimport React, { useContext, useState } from \"react\"\nimport ModalPrivacyPolicy from \"../components/modalPrivacyPolicy\"\nimport { GlobalContext } from \"../contexts/context\"\nimport { useModalController } from \"../hooks/hook\"\nimport icon from \"../images/icon.png\"\nimport { DownloadModal } from \"./downloadModal\"\nimport { VVFooter } from \"./page-footer\"\n\nexport const Page: React.FC<{\n showingHeader?: boolean\n showingHeaderOnTop?: boolean // ページ最上部でヘッダーを表示するかどうか\n children: React.ReactNode\n}> = ({ showingHeader = true, showingHeaderOnTop = true, children }) => {\n const [isBurgerActive, setIsBurgerActive] = useState(false)\n\n // google analytics\n const sendEvent = (event: string, eventCategory: string) => {\n typeof window !== \"undefined\" &&\n window.gtag &&\n window.gtag(\"event\", event, { event_category: eventCategory })\n }\n\n const context = useContext(GlobalContext)\n context.downloadModal = useModalController()\n\n const {\n showing: showingPrivacyPolicyModal,\n show: showPrivacyPolicyModal,\n hide: hidePrivacyPolicyModal,\n } = useModalController()\n\n return (\n <>\n \n
\n \n \"VOICEVOXのロゴ\"\n \n VOICEVOX\n \n \n\n setIsBurgerActive(!isBurgerActive)}\n >\n \n \n \n \n
\n\n \n
\n \n 利用規約\n \n \n 使い方\n \n \n Q&A\n \n \n ボイボ寮\n \n \n 変更履歴\n \n \n pixivFANBOX\n \n
\n {\n context.downloadModal.show()\n sendEvent(\"download\", \"software\")\n }}\n target=\"_blank\"\n rel=\"noreferrer\"\n tabIndex={0}\n >\n \n \n \n ダウンロード\n \n
\n
\n \n \n {/* 空間を空けるために必要 */}\n \n\n \n {children}\n \n\n \n \n
\n \n
\n
\n {/* 空間を空けるために必要 */}\n {}} />\n
\n \n )\n}\n","import { CharacterKey } from \"./types/dormitoryCharacter\"\n\nexport const APP_VERSION = \"0.14.8\"\n\nexport const characterKeys: CharacterKey[] = [\n \"四国めたん\",\n \"ずんだもん\",\n \"春日部つむぎ\",\n \"雨晴はう\",\n \"波音リツ\",\n \"玄野武宏\",\n \"白上虎太郎\",\n \"青山龍星\",\n \"冥鳴ひまり\",\n \"九州そら\",\n \"モチノキョウコ\",\n \"剣崎雌雄\",\n \"WhiteCUL\",\n \"後鬼\",\n \"No7\",\n \"ちび式じい\",\n \"櫻歌ミコ\",\n \"小夜_SAYO\",\n \"ナースロボ_タイプT\",\n \"聖騎士紅桜\",\n \"雀松朱司\",\n \"麒ヶ島宗麟\",\n \"春歌ナナ\",\n \"猫使アル\",\n \"猫使ビィ\",\n \"中国うさぎ\",\n \"栗田まろん\",\n \"藍田ノエル\",\n \"満別花丸\",\n \"琴詠ニア\",\n]\n\nexport type CharacterInfoEntry = {\n name: string\n id: string\n}\n\n// NOTE:\n// このデータの一部を gatsby-node.ts の sourceNodes 内でgraphqlへ登録しています\n// (実際に登録されるデータは gatsby-node.ts を参照)\n// npm run develop中にこれを書き換えた場合は再起動しないとgraphqlに反映されないので注意\nexport const characterInfos: {\n [key in CharacterKey]: CharacterInfoEntry\n} = {\n 四国めたん: {\n name: \"四国めたん\",\n id: \"shikoku_metan\",\n },\n ずんだもん: {\n name: \"ずんだもん\",\n id: \"zundamon\",\n },\n 春日部つむぎ: {\n name: \"春日部つむぎ\",\n id: \"kasukabe_tsumugi\",\n },\n 雨晴はう: {\n name: \"雨晴はう\",\n id: \"amehare_hau\",\n },\n 波音リツ: {\n name: \"波音リツ\",\n id: \"namine_ritsu\",\n },\n 玄野武宏: {\n name: \"玄野武宏\",\n id: \"kurono_takehiro\",\n },\n 白上虎太郎: {\n name: \"白上虎太郎\",\n id: \"shirakami_kotarou\",\n },\n 青山龍星: {\n name: \"青山龍星\",\n id: \"aoyama_ryusei\",\n },\n 冥鳴ひまり: {\n name: \"冥鳴ひまり\",\n id: \"meimei_himari\",\n },\n 九州そら: {\n name: \"九州そら\",\n id: \"kyushu_sora\",\n },\n モチノキョウコ: {\n name: \"もち子さん\",\n id: \"mochikosan\",\n },\n 剣崎雌雄: {\n name: \"剣崎雌雄\",\n id: \"kenzaki_mesuo\",\n },\n WhiteCUL: {\n name: \"WhiteCUL\",\n id: \"white_cul\",\n },\n 後鬼: {\n name: \"後鬼\",\n id: \"goki\",\n },\n No7: {\n name: \"No.7\",\n id: \"number_seven\",\n },\n ちび式じい: {\n name: \"ちび式じい\",\n id: \"chibishikiji\",\n },\n 櫻歌ミコ: {\n name: \"櫻歌ミコ\",\n id: \"ouka_miko\",\n },\n 小夜_SAYO: {\n name: \"小夜/SAYO\",\n id: \"sayo\",\n },\n ナースロボ_タイプT: {\n name: \"ナースロボ_タイプT\",\n id: \"nurserobo_typet\",\n },\n 聖騎士紅桜: {\n name: \"†聖騎士 紅桜†\",\n id: \"horinaito_benizakura\",\n },\n 雀松朱司: {\n name: \"雀松朱司\",\n id: \"wakamatsu_akashi\",\n },\n 麒ヶ島宗麟: {\n name: \"麒ヶ島宗麟\",\n id: \"kigashima_sourin\",\n },\n 春歌ナナ: {\n name: \"春歌ナナ\",\n id: \"haruka_nana\",\n },\n 猫使アル: {\n name: \"猫使アル\",\n id: \"nekotsuka_aru\",\n },\n 猫使ビィ: {\n name: \"猫使ビィ\",\n id: \"nekotsuka_bi\",\n },\n 中国うさぎ: {\n name: \"中国うさぎ\",\n id: \"chugoku_usagi\",\n },\n 栗田まろん: {\n name: \"栗田まろん\",\n id: \"kurita_maron\",\n },\n 藍田ノエル: {\n name: \"あいえるたん\",\n id: \"aierutan\",\n },\n 満別花丸: {\n name: \"満別花丸\",\n id: \"manbetsu_hanamaru\",\n },\n 琴詠ニア: {\n name: \"琴詠ニア\",\n id: \"kotoyomi_nia\",\n },\n}\n","import React from \"react\"\nimport { CharacterInfoEntry, characterInfos, characterKeys } from \"../constants\"\nimport { CharacterKey } from \"../types/dormitoryCharacter\"\n\nexport interface GlobalContextProps {\n sendEvent: (event: string, eventCategory: string) => void\n downloadModal: {\n showing: boolean\n show: () => void\n hide: () => void\n }\n experiments: boolean\n}\n\nexport const GlobalContext = React.createContext({\n sendEvent: (event: string, eventCategory: string) => {\n typeof window !== \"undefined\" &&\n window.gtag &&\n window.gtag(\"event\", event, { event_category: eventCategory })\n },\n downloadModal: {\n showing: false,\n show: () => {},\n hide: () => {},\n },\n experiments: process.env.GATSBY_VOICEVOX_EXPERIMENTS === \"true\",\n})\n\nexport interface CharacterContextProps {\n characterKeys: readonly CharacterKey[]\n characterInfos: { [key in CharacterKey]: CharacterInfoEntry }\n}\n\nexport const CharacterContext = React.createContext({\n characterKeys,\n characterInfos,\n})\n"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","constructor","prototype","value","configurable","writable","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","o","minLen","n","toString","slice","name","test","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","arr2","camelize","string","replace","match","chr","toUpperCase","substr","toLowerCase","_excluded","PRODUCTION","e","normalizeIconArgs","icon","prefix","iconName","objectWithKey","FontAwesomeIcon","props","ref","iconArgs","maskArgs","mask","symbol","className","title","titleId","maskId","iconLookup","classes","concat","_classes","beat","fade","beatFade","bounce","shake","flash","spin","spinPulse","spinReverse","pulse","fixedWidth","inverse","border","listItem","flip","size","rotation","pull","swapOpacity","map","classList","split","transform","renderedIcon","_console","console","error","log","abstract","extraProps","defaultProps","hasOwnProperty","convertCurry","displayName","propTypes","convert","createElement","element","undefined","children","child","mixins","attributes","reduce","acc","val","attrs","s","trim","pair","prop","startsWith","charAt","_extraProps$style","style","existingStyle","remaining","tag","bind","useEffect","isActive","document","body","add","remove","React","onClick","hide","type","dangerouslySetInnerHTML","__html","html","useStaticQuery","markdownRemark","ModalMarkdown","useModalController","showing","setShowing","useState","show","_ref","label","selected","setSelected","candidates","find","candidate","index","modeAvailables","Windows","Mac","Linux","packageAvailables","CPU","DownloadModal","_downloadUrls$selecte","_downloadUrls$selecte2","_downloadUrls$selecte3","_downloadUrls$selecte4","scriptNodes","allFile","nodes","downloadUrls","インストーラー","url","APP_VERSION","Zip","publicURL","selectedOs","setSelectedOs","selectedMode","setSelectedMode","selectedPackage","setSelectedPackage","role","DownloadModalSelecter","Link","to","href","download","rel","VVFooter","privacyPolicyShower","faGithub","faTwitter","Page","showingHeader","showingHeaderOnTop","isBurgerActive","setIsBurgerActive","context","useContext","GlobalContext","downloadModal","showingPrivacyPolicyModal","showPrivacyPolicyModal","hidePrivacyPolicyModal","src","alt","id","sendEvent","event","eventCategory","window","gtag","event_category","tabIndex","faDownload","Provider","ModalPrivacyPolicy","characterKeys","characterInfos","四国めたん","ずんだもん","春日部つむぎ","雨晴はう","波音リツ","玄野武宏","白上虎太郎","青山龍星","冥鳴ひまり","九州そら","モチノキョウコ","剣崎雌雄","WhiteCUL","後鬼","No7","ちび式じい","櫻歌ミコ","小夜_SAYO","ナースロボ_タイプT","聖騎士紅桜","雀松朱司","麒ヶ島宗麟","春歌ナナ","猫使アル","猫使ビィ","中国うさぎ","栗田まろん","藍田ノエル","満別花丸","琴詠ニア","experiments","process","CharacterContext"],"sourceRoot":""} \ No newline at end of file diff --git a/dormitory/aierutan/index.html b/dormitory/aierutan/index.html index 2c1a9a222..300972e5f 100644 --- a/dormitory/aierutan/index.html +++ b/dormitory/aierutan/index.html @@ -8,7 +8,7 @@ gtag('config', 'G-NZL33X0EQV', {"send_page_view":false}); } -
あいえるたん

あいえるたん

札幌市内の高校に通う元気な女子高生。
IT企業でマスコット/アルバイトとして活躍中。
本名藍田ノエル
CVMilia
年齢16 歳
誕生日7月1日
身長154.8 cm
好物コーラ
趣味プログラミング、ゲーム
音声サンプル