ARIA アニメ
0post
2025.12.08 20:00
:0% :0% (40代/男性)
人気のポスト ※表示されているRP数は特定時点のものです
新刊arialeaお読みいただいておりました。画集兼詩集の本です。ぜひ宜しくお願いいたします〜! RT
通販🎪
https://t.co/Dt1F4aFCm9 https://t.co/JFlpJQ8of9 December 12, 2025
1RP
うわぁこのグレーのセットアップめっちゃいい…!サラッと着てトンボ捕まえに行きたい〜嫉妬🤍
CavariA テーラードジャケット セットアップ グレー
https://t.co/EAmyAGxlIw December 12, 2025
🍆この術式のコードはこちら↓
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>虚式「茈」滞留ver</title>
<style>
body { margin: 0; background-color: #050505; overflow: hidden; font-family: 'Helvetica Neue', Arial, sans-serif; color: white; }
#canvas-wrapper { position: relative; width: 100vw; height: 100vh; }
canvas { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
#three-canvas { z-index: 1; }
#debug-canvas { z-index: 2; pointer-events: none; opacity: 0; transition: opacity 0.3s; }
#ui {
position: absolute; top: 30px; left: 0; width: 100%; text-align: center;
z-index: 10; pointer-events: none; text-shadow: 0 0 15px black;
display: flex; flex-direction: column; align-items: center;
}
/* タイトル装飾 */
h1 { margin: 0; font-size: 28px; font-weight: 900; letter-spacing: 1px; line-height: 1.4; }
.blue { color: #0088ff; text-shadow: 0 0 10px #0088ff; }
.red { color: #ff0055; text-shadow: 0 0 10px #ff0055; }
.purple { color: #d946ef; text-shadow: 0 0 20px #d946ef; font-size: 32px; }
.connector { color: #aaa; font-weight: normal; margin: 0 10px; }
.mode-badge {
display: inline-block; padding: 8px 20px; border-radius: 30px;
background: rgba(0,0,0,0.7); border: 2px solid #555;
margin-top: 20px; font-weight: bold; transition: all 0.3s; font-size: 14px;
}
.instruction { font-size: 14px; margin-top: 10px; color: #ccc; line-height: 1.6; }
.highlight { color: #ffdd00; font-weight: bold; }
.controls { pointer-events: auto; margin-top: 20px; opacity: 0.7; hover: opacity: 1; }
button {
background: #222; color: #aaa; border: 1px solid #444;
padding: 8px 12px; cursor: pointer; border-radius: 4px;
font-size: 12px; transition: all 0.2s;
}
button:hover { background: #444; color: white; }
https://t.co/QlmO1ChYS5 { background: #4ade80; color: black; border-color: #4ade80; }
#loading {
position: absolute; inset: 0; background: #000; z-index: 100;
display: flex; flex-direction: column;
align-items: center; justify-content: center; color: #d946ef;
}
.spinner {
width: 60px; height: 60px; border: 6px solid #333;
border-top-color: #d946ef; border-radius: 50%;
animation: spin 1s linear infinite; margin-bottom: 25px;
}
@keyframes spin { to { transform: rotate(360deg); } }
</style>
<script type="importmap">
{
"imports": {
"three": "https://t.co/WCeEpWANoG",
"three/addons/": "https://t.co/bBrbg8ZTxv",
"@mediapipe/tasks-vision": "https://t.co/i0lPucFaTA"
}
}
</script>
</head>
<body>
<div id="loading">
<div class="spinner"></div>
<div style="letter-spacing: 2px; font-weight: bold;">術式展開中...</div>
</div>
<div id="ui">
<h1>
<span class="blue">術式順転「蒼」</span><span class="connector">+</span><span class="red">術式反転「赫」</span><br>
<span class="connector">=</span><span class="purple">虚式「茈」</span>
</h1>
<div id="mode-text" class="mode-badge" style="color:#aaa; border-color:#aaa;">術式対象を探索中</div>
<div class="instruction">
<div>左右の手でサイズ操作: <span class="highlight">つまむ(小)</span> / <span class="highlight">パー(大)</span></div>
<div>両手を合わせ「茈」を生成し、<span class="highlight">両手を握って</span>発動せよ</div>
</div>
<div class="controls">
<button id="btn-debug" onclick="toggleDebug()">👁 術式開示 (SKELETON)</button>
</div>
</div>
<div id="canvas-wrapper">
<canvas id="three-canvas"></canvas>
<canvas id="debug-canvas"></canvas>
</div>
<video id="webcam" autoplay playsinline style="display:none; transform: scaleX(-1);"></video>
<script type="module">
import * as THREE from 'three';
import { FilesetResolver, HandLandmarker } from '@mediapipe/tasks-vision';
// --- 設定 (物理演算を微調整) ---
const CONFIG = {
particleCount: 40000,
smoothFactor: 0.1,
mergeDist: 3.5,
// 爆発・滞留設定
explodeForce: 2.0, // 初速 (かなり強く設定して一気に広げる)
drag: 0.95, // 摩擦係数 (1未満にすることで急減速し、滞留させる)
turbulence: 0.015, // 乱気流 (フワフワ漂う動きの強さ)
explodeDuration: 10000,// 滞留時間 (10秒)
// サイズ設定
scalePinch: 0.5,
scaleNormal: 1.0,
scaleOpen: 1.5,
scaleMerge: 2.0
};
const COLOR_LEFT = new THREE.Color('#0088ff'); // 蒼
const COLOR_RIGHT = new THREE.Color('#ff0055'); // 赫
const COLOR_MERGE = new THREE.Color('#d946ef'); // 茈
// --- グローバル変数 ---
let scene, camera, renderer, particles, geometry;
let positionsOriginal;
let velocities;
let handLandmarker;
let video = document.getElementById('webcam');
let debugCanvas = document.getElementById('debug-canvas');
let debugCtx = debugCanvas.getContext('2d');
let showDebug = false;
// --- 状態管理 ---
const targetState = {
left: { x: -10, y: 0, visible: false, pinch: false, open: false },
right: { x: 10, y: 0, visible: false, pinch: false, open: false },
isMergedTrigger: false,
centerX: 0, centerY: 0
};
const currentProps = {
leftPos: new THREE.Vector3(-10, 0, 0),
rightPos: new THREE.Vector3(10, 0, 0),
leftScale: 0,
rightScale: 0,
leftColor: new THREE.Color(),
rightColor: new THREE.Color(),
};
let appMode = 'NORMAL';
async function init() {
initThree();
await initMediaPipe();
startCamera();
animate();
}
function initThree() {
const canvas = document.getElementById('three-canvas');
scene = new THREE.Scene();
scene.fog = new THREE.FogExp2(0x050505, 0.002);
camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 100);
camera.position.z = 14;
renderer = new THREE.WebGLRenderer({ canvas: canvas, antialias: true, alpha: true });
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setPixelRatio(window.devicePixelRatio);
positionsOriginal = new Float32Array(CONFIG.particleCount * 3);
const currentPositions = new Float32Array(CONFIG.particleCount * 3);
const colors = new Float32Array(CONFIG.particleCount * 3);
velocities = new Float32Array(CONFIG.particleCount * 3);
for (let i = 0; i < CONFIG.particleCount; i++) {
const r = 2.5;
const theta = Math.random() * Math.PI * 2;
const phi = Math.acos((Math.random() * 2) - 1);
const x = r * Math.sin(phi) * Math.cos(theta);
const y = r * Math.sin(phi) * Math.sin(theta);
const z = r * Math.cos(phi);
positionsOriginal[i * 3] = x;
positionsOriginal[i * 3 + 1] = y;
positionsOriginal[i * 3 + 2] = z;
currentPositions[i] = 999;
}
geometry = new THREE.BufferGeometry();
geometry.setAttribute('position', new THREE.BufferAttribute(currentPositions, 3));
geometry.setAttribute('color', new THREE.BufferAttribute(colors, 3));
const material = new THREE.PointsMaterial({
size: 0.08, vertexColors: true, blending: THREE.AdditiveBlending,
transparent: true, opacity: 0.8, depthWrite: false
});
particles = new THREE.Points(geometry, material);
scene.add(particles);
const handleResize = () => {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
debugCanvas.width = window.innerWidth;
debugCanvas.height = window.innerHeight;
};
window.addEventListener('resize', handleResize);
handleResize();
}
async function initMediaPipe() {
const vision = await FilesetResolver.forVisionTasks("https://t.co/NVq4WOyR3D");
handLandmarker = await HandLandmarker.createFromOptions(vision, {
baseOptions: {
modelAssetPath: `https://t.co/ioKfwnOtKQ`,
delegate: "GPU"
},
runningMode: "VIDEO",
numHands: 2
});
document.getElementById('loading').style.display = 'none';
}
function startCamera() {
navigator.mediaDevices.getUserMedia({ video: { width: 640, height: 480 } })
.then(stream => video.srcObject = stream)
.catch(e => console.error(e));
}
function animate() {
requestAnimationFrame(animate);
updateHandDetection();
updatePhysics();
renderParticles();
}
// 1. 認識
function updateHandDetection() {
targetState.left.visible = false;
targetState.right.visible = false;
if (showDebug) debugCtx.clearRect(0, 0, debugCanvas.width, debugCanvas.height);
if (handLandmarker && video.readyState >= 2) {
const results = handLandmarker.detectForVideo(video, https://t.co/ZaI4dpfAMc());
if (showDebug && results.landmarks) drawSkeleton(results.landmarks);
for (let i = 0; i < results.landmarks.length; i++) {
const lm = results.landmarks[i];
const handedness = results.handedness[i][0].categoryName;
const cx = (lm[0].x + lm[9].x) / 2;
const cy = (lm[0].y + lm[9].y) / 2;
const sx = (cx - 0.5) * -18;
const sy = (cy - 0.5) * -14;
const spread = (Math.hypot(lm[8].x-lm[0].x, lm[8].y-lm[0].y) +
Math.hypot(lm[12].x-lm[0].x, lm[12].y-lm[0].y) +
Math.hypot(lm[16].x-lm[0].x, lm[16].y-lm[0].y) +
Math.hypot(lm[20].x-lm[0].x, lm[20].y-lm[0].y)) / 4;
const isOpen = spread > 0.3;
const pinchDist = Math.hypot(lm[4].x - lm[8].x, lm[4].y - lm[8].y);
const isPinch = pinchDist < 0.05;
if (handedness === "Right") {
targetState.left.x = sx; targetState.left.y = sy;
targetState.left.visible = true;
https://t.co/TndEuU47xE = isOpen;
targetState.left.pinch = isPinch;
} else {
targetState.right.x = sx; targetState.right.y = sy;
targetState.right.visible = true;
https://t.co/ILLk78UJyX = isOpen;
targetState.right.pinch = isPinch;
}
}
if (targetState.left.visible && targetState.right.visible) {
const dist = Math.hypot(targetState.left.x - targetState.right.x, targetState.left.y - targetState.right.y);
if (dist < CONFIG.mergeDist && https://t.co/TndEuU47xE && https://t.co/ILLk78UJyX) {
targetState.isMergedTrigger = true;
targetState.centerX = (targetState.left.x + targetState.right.x) / 2;
targetState.centerY = (targetState.left.y + targetState.right.y) / 2;
} else {
targetState.isMergedTrigger = false;
}
} else {
targetState.isMergedTrigger = false;
}
}
}
// 2. 物理 & ロジック
function updatePhysics() {
const lerp = (c, t) => c + (t - c) * CONFIG.smoothFactor;
if (appMode === 'EXPLODING') {
// 爆発中
} else if (targetState.isMergedTrigger) {
appMode = 'MERGED';
} else if (appMode !== 'MERGED') {
appMode = 'NORMAL';
}
if (appMode === 'MERGED') {
if (targetState.left.visible && targetState.right.visible &&
!https://t.co/TndEuU47xE && !https://t.co/ILLk78UJyX) {
startExplosion();
}
if (!targetState.left.visible || !targetState.right.visible) {
appMode = 'NORMAL';
}
}
const badge = document.getElementById('mode-text');
if (appMode === 'MERGED') {
badge.innerText = "虚式「茈」生成完了 - 発動待機";
https://t.co/ofVtm4WHxJ.color = "#d946ef"; https://t.co/ofVtm4WHxJ.borderColor = "#d946ef"; https://t.co/ofVtm4WHxJ.boxShadow = "0 0 15px #d946ef";
} else if (appMode === 'EXPLODING') {
badge.innerText = "術式発動!!";
https://t.co/ofVtm4WHxJ.color = "#ffdd00"; https://t.co/ofVtm4WHxJ.borderColor = "#ffdd00"; https://t.co/ofVtm4WHxJ.boxShadow = "0 0 25px #ffdd00";
} else {
badge.innerText = "術式対象を探索中";
https://t.co/ofVtm4WHxJ.color = "#aaa"; https://t.co/ofVtm4WHxJ.borderColor = "#555"; https://t.co/ofVtm4WHxJ.boxShadow = "none";
}
if (appMode !== 'EXPLODING') {
currentProps.leftPos.x = lerp(currentProps.leftPos.x, targetState.left.x);
currentProps.leftPos.y = lerp(currentProps.leftPos.y, targetState.left.y);
currentProps.rightPos.x = lerp(currentProps.rightPos.x, targetState.right.x);
currentProps.rightPos.y = lerp(currentProps.rightPos.y, targetState.right.y);
let tScaleL = 0;
if (targetState.left.visible) {
if (targetState.left.pinch) tScaleL = CONFIG.scalePinch;
else if (https://t.co/TndEuU47xE) tScaleL = CONFIG.scaleOpen;
else tScaleL = CONFIG.scaleNormal;
}
currentProps.leftScale = lerp(currentProps.leftScale, tScaleL);
let tScaleR = 0;
if (targetState.right.visible) {
if (targetState.right.pinch) tScaleR = CONFIG.scalePinch;
else if (https://t.co/ILLk78UJyX) tScaleR = CONFIG.scaleOpen;
else tScaleR = CONFIG.scaleNormal;
}
currentProps.rightScale = lerp(currentProps.rightScale, tScaleR);
currentProps.leftColor.lerp(COLOR_LEFT, 0.1);
currentProps.rightColor.lerp(COLOR_RIGHT, 0.1);
}
if (appMode === 'MERGED') {
currentProps.leftPos.x = lerp(currentProps.leftPos.x, targetState.centerX);
currentProps.leftPos.y = lerp(currentProps.leftPos.y, targetState.centerY);
currentProps.rightPos.x = lerp(currentProps.rightPos.x, targetState.centerX);
currentProps.rightPos.y = lerp(currentProps.rightPos.y, targetState.centerY);
currentProps.leftColor.lerp(COLOR_MERGE, 0.15);
currentProps.rightColor.lerp(COLOR_MERGE, 0.15);
currentProps.leftScale = lerp(currentProps.leftScale, CONFIG.scaleMerge);
currentProps.rightScale = lerp(currentProps.rightScale, CONFIG.scaleMerge);
}
}
function startExplosion() {
appMode = 'EXPLODING';
for(let i=0; i<CONFIG.particleCount; i++) {
const ix = i*3;
// 初速を強力に(画面全体に広げるため)
const vx = (Math.random() - 0.5) * CONFIG.explodeForce * 5;
const vy = (Math.random() - 0.5) * CONFIG.explodeForce * 5;
const vz = (Math.random() - 0.5) * CONFIG.explodeForce * 2 + 1.0;
velocities[ix] = vx; velocities[ix+1] = vy; velocities[ix+2] = vz;
}
setTimeout(() => { appMode = 'NORMAL'; }, CONFIG.explodeDuration);
}
// 3. 描画
function renderParticles() {
const positions = geometry.attributes.position.array;
const colors = geometry.attributes.color.array;
const time = https://t.co/qYkMP6pVyL() * 0.0015;
const half = CONFIG.particleCount / 2;
for (let i = 0; i < CONFIG.particleCount; i++) {
const ix = i * 3;
if (appMode === 'EXPLODING') {
// --- 爆発物理 (滞留ver) ---
positions[ix] += velocities[ix];
positions[ix+1] += velocities[ix+1];
positions[ix+2] += velocities[ix+2];
// 摩擦で減速させる(これが滞留の鍵)
velocities[ix] *= CONFIG.drag;
velocities[ix+1] *= CONFIG.drag;
velocities[ix+2] *= CONFIG.drag;
// 乱気流(フワフワさせる)
velocities[ix] += (Math.random() - 0.5) * CONFIG.turbulence;
velocities[ix+1] += (Math.random() - 0.5) * CONFIG.turbulence;
velocities[ix+2] += (Math.random() - 0.5) * CONFIG.turbulence;
continue;
}
// 通常時
const ox = positionsOriginal[ix];
const oy = positionsOriginal[ix+1];
const oz = positionsOriginal[ix+2];
const isLeft = i < half;
let tx, ty, tz, r, g, b;
if (isLeft) {
const s = currentProps.leftScale;
const rx = ox * Math.cos(time) - oz * Math.sin(time);
const rz = ox * Math.sin(time) + oz * Math.cos(time);
tx = rx * s + currentProps.leftPos.x;
ty = oy * s + currentProps.leftPos.y;
tz = rz * s;
r=currentProps.leftColor.r; g=currentProps.leftColor.g; b=currentProps.leftColor.b;
} else {
const s = currentProps.rightScale;
const rx = ox * Math.cos(-time) - oz * Math.sin(-time);
const rz = ox * Math.sin(-time) + oz * Math.cos(-time);
tx = rx * s + currentProps.rightPos.x;
ty = oy * s + currentProps.rightPos.y;
tz = rz * s;
r=currentProps.rightColor.r; g=currentProps.rightColor.g; b=currentProps.rightColor.b;
}
if (appMode === 'MERGED') {
const vib = 0.2;
tx += (Math.random()-0.5)*vib;
ty += (Math.random()-0.5)*vib;
tz += (Math.random()-0.5)*vib;
if(Math.random()>0.90) { r=1; g=1; b=1; }
}
positions[ix] = tx; positions[ix+1] = ty; positions[ix+2] = tz;
colors[ix] = r; colors[ix+1] = g; colors[ix+2] = b;
}
geometry.attributes.position.needsUpdate = true;
geometry.attributes.color.needsUpdate = true;
renderer.render(scene, camera);
}
function drawSkeleton(hands) {
debugCtx.lineWidth = 3; debugCtx.strokeStyle = "#4ade80"; debugCtx.shadowBlur = 10; debugCtx.shadowColor = "#4ade80";
const connections = [[0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[17,18],[18,19],[19,20],[0,17]];
hands.forEach(lm => {
debugCtx.beginPath();
connections.forEach(([i, j]) => {
debugCtx.moveTo((1-lm[i].x)*debugCanvas.width, lm[i].y*debugCanvas.height);
debugCtx.lineTo((1-lm[j].x)*debugCanvas.width, lm[j].y*debugCanvas.height);
});
debugCtx.stroke();
});
}
window.toggleDebug = () => {
showDebug = !showDebug;
const btn = document.getElementById('btn-debug');
if (showDebug) {
https://t.co/KjKnJymgIy.opacity = 0.6; btn.classList.add('active');
} else {
https://t.co/KjKnJymgIy.opacity = 0; btn.classList.remove('active');
}
};
init();
</script>
</body>
</html>
おまけ🎁
会社員をしながら合計9,163,797円を稼いだ僕が、
これからAI事業でマネタイズしたい人に向けて、
1本の極秘ノウハウ動画を公開しました。
また、今回はAIで累計3億円以上マネタイズしている
某アカウントの方とコラボ動画になっております。
この動画を72時間限定で配布します。
動画を見て頂いた方には総計165個の豪華プレゼントをご用意しています!
0円で見たい方はこちら↓
https://t.co/YhGwTY47ts December 12, 2025
エレアコ勢なので試奏含めて濁音無しの方が多いかも…
・Aria
・Taylor
・Morris
・Martin
・YAMAHA
・Yairi
・Takamine
濁音ありはこれくらい
・Gibson(Hummingbird)
・Ovation https://t.co/VUSMlYnTDm December 12, 2025
逢沢優🐦🔥⛈の投稿動画を楽しみましょう!
#TikTok #drums #ドラム #cover #rock #yggdrasill #valhalla
aria impulse
https://t.co/7nh7fG8TES December 12, 2025
クラフトワーク 来日ツアー開催!🤖
エレクトロ・ミュージックの先駆者が創造する テクノロジーと人間の究極的音楽融合をお楽しみに💻
KRAFTWERK MULTIMEDIA TOUR
📍4/27(月)Zepp Nagoya
📍4/28(火)グランキューブ大阪
📍5/1(金)& 5/2(土)SGC HALL ARIAKE
チケット購入はお早めに。詳細↓ December 12, 2025
今イベラスト🦐周回本当にありがとうございました!!
Lubieさん、Ariaちゃん、マルヌさん!!ほっしー☆彡もずっとずっとありがとーー!!
みんな大好きー! https://t.co/pPELja0Ahc December 12, 2025
@Aria_Al_831 何言ってるんですか!?オタクの世界で好き最高は究極の一言です💕
絵を描いているとき色んな事を考えるんですが描いているこの子が好きな人に好きって思ってもらえる、魅力を感じてもらえるように描きたいという想いが強くあり、特にアラ格好良い要素はAriaさんにそう思われたいとよく思ってます💋 December 12, 2025
→Taria.次のライブは、12/13(土)初めての主催ライブです🎀✨️🎼
I'mewさん、マジカル・パンチラインさんをお呼びしてのライブになります!🔥
とっても楽しみー!♡
そして、ネクスタ7曲目の新曲も披露するのでデビュー前に聴いて欲しいな🎶💞
さとの推しさんあいたい🥺
🎫 https://t.co/lwKwyjymZo https://t.co/vfJgCVAuZI December 12, 2025
あーVARIAL p.c.d 87のTULALAコラボ出たの!?EVAノブ付きとかズルいわ、欲しい…誰か譲ってくれんかな😂
VARIAL p.c.d 87 ベイトリールハンドル EVAノブ付き
https://t.co/nfLJTYHcMe December 12, 2025
年明けは
✨愛知✨に行くぞ〜っ!
2/15sun JOY!ICHICAFE LIVE vol.36
こちらは弾き語り
3/6fri Duo Night
Aria×Takakazz @BUZZLE BUNCH
歌と素敵なピアノでオリジナルソングをたっぷりお届けします。
皆さんぜひお越しくださいね〜っ
どちらも私のDMでご予約受付ています♪
よろしくお願いします https://t.co/UFiyWXp3aI December 12, 2025
#AIイラスト #aria_ai_tag SFW
火曜日お疲れさま~(^_-)-☆
狩野英孝が、まどマギ見るやつおもろいw(^_-)-☆
俺も最初、普通の魔法少女アニメだと思ってたもんw
わけがわからないよw イラストは、まひるんで関係ないっす。 December 12, 2025
彩ビットが居ない分、今日唯一撮らせて貰ったガンビはARIAKE @BsnAriake さんだけなので嬉しいありがとうございました(´∩ω∩`*)!!!ぶえーーーー格好良い〜、似合う〜🤦♀️💘💘
#東京コミコンコスプレ #TCC2025 #TCC2025Cosplay #XMen #TCC2025コスプレ #東京コミコン2025 https://t.co/VYoyhaJrvU December 12, 2025
mee さん ( @particle30 )&硝水さん 『arialea』 ポートリングアートと詩をセットにした画集であり詩集。ことばによる情感とアートによる色彩美のマリアージュが絶妙で、本の内側に吸い込まれるような作品集でした。別冊もありがとうございます! 制作過程のお話、とても勉強になりました…! December 12, 2025
カメコの皆さんへ
→Taria(ネクスタリア)
12月18日(木)
デビューライブが、皆んな大好き白金高輪セレネであります。
カメコ席は破格の5千円!
全員フリフリピンクの衣装で可愛いです!
盛れてる私の推しメンちゃんの自撮り写真置いときます!
気になる方、質問などありましたらリプでもなんでもどうぞ!
答えられる範囲で答えます!
(踏み台の可否は問い合わせしてみようかと思います) December 12, 2025
<ポストの表示について>
本サイトではXの利用規約に沿ってポストを表示させていただいております。ポストの非表示を希望される方はこちらのお問い合わせフォームまでご連絡下さい。こちらのデータはAPIでも販売しております。



