操作手順
1. フィルタタブの「+」ボタンをクリックして、「音声」を選択します。2. 「音高」フィルタをクリックします。プリセットから既定のパラメータセットを選択するか、オクターブ変更や速度変更などのパラメータを変更する事ができます。
関連情報
・動画編集アプリShotcutのまとめ・プロジェクトwebサイト
https://shotcut.org/
・様々な動画に関するアプリケーションについては、以下のまとめを参照してください。
動画関連アプリケーションのまとめ
mkdir -p ~/.minetest/mods
rm -f master.zip
wget https://github.com/minetest-mods/ccompass/archive/master.zip
unzip master.zip
mv ccompass-master/ ~/.minetest/mods/ccompass
import mcpi.minecraft as minecraft
import mcpi.block as block
import time
patterns = [
[
[ 7, 7, 169, 169, 169, 169, 7, 7],
[ 7, 169, 7, 7, 7, 7, 169, 7],
[ 169, 7, 7, 7, 7, 7, 7, 169],
[ 169, 7, 7, 7, 7, 7, 7, 169],
[ 169, 7, 7, 7, 7, 7, 7, 169],
[ 169, 7, 7, 7, 7, 7, 7, 169],
[ 7, 169, 7, 7, 7, 7, 169, 7],
[ 7, 7, 169, 169, 169, 169, 7, 7]
],
[
[ 169, 7, 7, 7, 7, 7, 7, 169],
[ 7, 169, 7, 7, 7, 7, 169, 7],
[ 7, 7, 169, 7, 7, 169, 7, 7],
[ 7, 7, 7, 169, 169, 7, 7, 7],
[ 7, 7, 7, 169, 169, 7, 7, 7],
[ 7, 7, 169, 7, 7, 169, 7, 7],
[ 7, 169, 7, 7, 7, 7, 169, 7],
[ 169, 7, 7, 7, 7, 7, 7, 169]
]
]
# ローカルサーバに接続
mc = minecraft.Minecraft.create("127.0.0.1")
# プレイヤーの位置を取得
pos = mc.player.getPos()
print(pos)
pos.z -= 3
# 指定されたパターンを交互に表示
try:
while True:
for frame in range(len(patterns)):
for row in range(len(patterns[frame])):
for column in range(len(patterns[frame][row])):
mc.setBlock( pos.x+column, pos.y+row, pos.z, patterns[frame][row][column])
time.sleep(3)
except KeyboardInterrupt:
# クリーンアップ
for row in range(len(patterns[0])):
for column in range(len(patterns[frame][row])):
mc.setBlock( pos.x+column, pos.y+row, pos.z, block.AIR)
sudo add-apt-repository -y ppa:quiterss/quiterss
sudo apt-get update
sudo apt-get -y install quiterss
// 日本語のスタンプ
STAMP_THICK=5;
HANDLE_H=20;
STAMP_W=40;
STAMP_D=20;
// 台座
linear_extrude(height=HANDLE_H){
square([STAMP_W, STAMP_D], center=true);
}
// 文字
translate([0, 0, HANDLE_H])
mirror([1, 0, 0])
linear_extrude(height=STAMP_THICK){
text("おまけ", font = "Noto Sans CJK JP:style=Bold", size=10, halign="center", valign="center");
}
import mcpi.minecraft as minecraft import mcpi.block as block # 縦穴の幅 hole_xs = 5 # 縦穴の奥行き hole_zs = 5 # 目標の穴の深さ hole_target_y = 0 # ローカルサーバに接続 mc = minecraft.Minecraft.create("127.0.0.1") # プレイヤーの位置を取得 pos = mc.player.getPos() print(pos) dy = pos.y # 縦穴 while dy >= hole_target_y: for dx in range(hole_xs): for dz in range(hole_zs): mc.setBlock( pos.x+dx, dy, pos.z+dz, block.AIR) dy -= 1
関連情報
・Minetestに関する情報はこちらを参照してください。
// 月型のスタンプ
SMALL_RADIUS = 6;
LARGE_RADIUS = 10;
STAMP_THICK=5;
HANDLE_H=20;
// 台座
linear_extrude(height=HANDLE_H){
square([LARGE_RADIUS*2, LARGE_RADIUS*2], center=true);
}
// 月型
translate([0, 0, HANDLE_H])
linear_extrude(height=STAMP_THICK){
difference()
{
circle(LARGE_RADIUS, $fn=50);
translate([-(LARGE_RADIUS-SMALL_RADIUS), -(LARGE_RADIUS-SMALL_RADIUS), HANDLE_H])
circle(SMALL_RADIUS, $fn=50);
}
}
sudo dnf -y install epel-release
sudo dnf -y install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install remmina
※もし「error: too early for operation, device not yet seeded or device model not acknowledged」というエラーが出た場合は、少し待ってコマンドを再実行します。snap run remmina
mkdir -p ~/.minetest/mods
wget https://github.com/minetest-mods/footprints/archive/master.zip
unzip master.zip
mv footprints-master/ ~/.minetest/mods/footprints
import mcpi.minecraft as minecraft
import mcpi.block as block
# 小屋の幅
hut_xs = 6
# 小屋の高さ
hut_ys = 5
# 小屋の奥行き
hut_zs = 5
# ローカルサーバに接続
mc = minecraft.Minecraft.create("127.0.0.1")
# プレイヤーの位置を取得
pos = mc.player.getPos()
print(pos)
pos.z += 5
# 床
for dx in range(hut_xs+2):
for dz in range(hut_zs+2):
mc.setBlock( pos.x+dx, pos.y, pos.z+dz, block.WOOD_PLANKS)
# 壁
for dx in range(hut_xs+2):
for dz in range(hut_zs+2):
for dy in range(hut_ys):
if dx == 0 or dz == 0 or dx == hut_xs+1 or dz == hut_zs+1:
mc.setBlock( pos.x+dx, pos.y+dy+1, pos.z+dz, block.WOOD_PLANKS )
else:
mc.setBlock( pos.x+dx, pos.y+dy+1, pos.z+dz, block.AIR )
# ドアの穴
for dx in range(2):
for dy in range(hut_ys-1):
mc.setBlock( pos.x+dx+3, pos.y+dy+1, pos.z, block.AIR )
# 屋根
for dy in range(4):
for dx in range(hut_xs+2-dy*2):
for dz in range(hut_zs+2):
mc.setBlock( pos.x+dx+dy, pos.y+dy+hut_ys, pos.z+dz, block.WOOD_PLANKS)
# 小屋の窓
mc.setBlock( pos.x, pos.y+3, pos.z+int(hut_zs/2)+1, block.GLASS )
mc.setBlock( pos.x+hut_xs+1, pos.y+3, pos.z+int(hut_zs/2)+1, block.GLASS )
sudo apt-get -y install minetest-mod-throwing
// 星型のスタンプ
NUM_POINTS = 5;
SMALL_RADIUS = 5;
LARGE_RADIUS = 10;
ANGLE = 360/NUM_POINTS/2;
STAMP_THICK=5;
HANDLE_H=20;
// 台座
linear_extrude(height=HANDLE_H){
square([LARGE_RADIUS*2, LARGE_RADIUS*2], center=true);
}
// 星型
translate([0, 0, HANDLE_H])
linear_extrude(height=STAMP_THICK){
for( pt = [0 : NUM_POINTS-1]) {
l_px = cos(pt*ANGLE*2)*LARGE_RADIUS;
l_py = sin(pt*ANGLE*2)*LARGE_RADIUS;
s_px = cos(pt*ANGLE*2+ANGLE)*SMALL_RADIUS;
s_py = sin(pt*ANGLE*2+ANGLE)*SMALL_RADIUS;
l_px2 = cos(pt*ANGLE*2+ANGLE*2)*LARGE_RADIUS;
l_py2 = sin(pt*ANGLE*2+ANGLE*2)*LARGE_RADIUS;
polygon(points=[[0, 0], [l_px, l_py], [s_px, s_py], [l_px2, l_py2]], paths = [[0, 1, 2, 3]]);
}
}
mkdir -p ~/.minetest/mods
wget https://github.com/minetest-mods/lib_mount/archive/master.zip
unzip master.zip
mv lib_mount-master/ ~/.minetest/mods/lib_mount
rm master.zip
wget https://github.com/minetest-mods/vehicle_mash/archive/master.zip
unzip master.zip
mv vehicle_mash-master/ ~/.minetest/mods/vehicle_mash
wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
sudo chmod +x Anaconda3-2020.02-Linux-x86_64.sh
sudo ./Anaconda3-2020.02-Linux-x86_64.sh -b -p /opt/anaconda
sudo bash -c "source /opt/anaconda/bin/activate && pip install --upgrade pip && pip install spyder"
cat << EOF | sudo tee /usr/share/applications/spyder.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=bash -c "source /opt/anaconda/bin/activate && /opt/anaconda/bin/spyder"
Icon=/opt/anaconda/share/icons/spyder3.png
Name=Spyder
Categories=Development;
EOF
mkdir -p ~/.minetest/mods
wget https://github.com/minetest-mods/mtfoods/archive/master.zip
unzip master.zip
mv mtfoods-master/ ~/.minetest/mods/mtfoods
wget https://github.com/JannisX11/blockbench/releases/download/v3.7.4/Blockbench_3.7.4.rpm
sudo dnf -y install Blockbench_3.7.4.rpm
import mcpi.minecraft as minecraft
import mcpi.block as block
# ローカルサーバに接続
mc = minecraft.Minecraft.create("127.0.0.1")
# プレイヤーの位置を取得
pos = mc.player.getPos()
print(pos)
pos.z += 10
# 針葉樹の葉の部分の高さ
tree_leaves_height = 15
tree_leaves_width = 5
# 針葉樹の幹の部分の高さ
tree_trunk_height = 3
# 葉の部分
leaves_width = 1
for dy in range(tree_leaves_height):
width = 1+int((tree_leaves_height-dy)/tree_leaves_width)*2
for dx in range(width):
for dz in range(width):
mc.setBlock( pos.x+dx-int(width/2), pos.y+dy+tree_trunk_height, pos.z+dz-int(width/2), block.LEAVES)
# 幹の部分
for dy in range(tree_trunk_height+1):
mc.setBlock( pos.x, pos.y+dy, pos.z, block.WOOD)
sudo apt-get install minetest-mod-nether
sudo apt-get -y install \
build-essential \
cmake \
git \
libirrlicht-dev \
libpng-dev libbz2-dev \
libjpeg8-dev \
libgl1-mesa-dev \
libxxf86vm-dev
git clone https://github.com/rubenwardy/NodeBoxEditor.git
cd NodeBoxEditor
cmake .
make -j2
sudo make install
minetest.register_node("(modの名称):(ブロックの名称)", {
tiles = {
"(画像ファイルの名称)", -- 「(画像ファイルの名称)」部分はNode Box Editorで設定した画像ファイル名になります。
"(画像ファイルの名称)",
"(画像ファイルの名称)",
"(画像ファイルの名称)",
"(画像ファイルの名称)",
"(画像ファイルの名称)"
},
groups = {cracky = 3},
description = "(インベントリに表示されるブロックの名称)",
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {{-0.5, 0.5, -0.5, 0.5, -0.5, 0.5}}, -- この部分には、Node Box Editorで編集した形状データが入ります。
}
})
mkdir -p ~/.minetest/mods/(modの名称)
mkdir -p ~/.minetest/mods/(modの名称)/textures
cat << EOF > ~/.minetest/mods/(modの名称)/init.lua
minetest.register_node("(modの名称):(ブロックの名称)", {
tiles = {
"(画像ファイルの名称)",
"(画像ファイルの名称)",
"(画像ファイルの名称)",
"(画像ファイルの名称)",
"(画像ファイルの名称)",
"(画像ファイルの名称)"
},
groups = {cracky = 3},
description = "(インベントリに表示されるブロックの名称)",
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {{-0.5, 0.5, -0.5, 0.5, -0.5, 0.5}},
}
})
EOF
inetest.register_node("cherry_block:cherry_block", {
tiles = {
"cherry32.png",
"cherry32.png",
"cherry32.png",
"cherry32.png",
"cherry32.png",
"cherry32.png"
},
groups = {cracky = 3},
description = "cherry block",
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {{-0.5, 0.5, -0.5, 0.5, -0.5, 0.5}},
}
})
wget -O vsc-arm.deb https://aka.ms/linux-armhf-deb
sudo dpkg -i vsc-arm.deb
sudo apt-get -y install minetest-mod-maidroid
インストール後、modの設定画面でMaidroid mod packを有効化します。sudo dnf -y install flatpak
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install flathub net.minetest.Minetest
flatpak run net.minetest.Minetest
~/.var/app/net.minetest.Minetest/.minetest
default_privs = interact,shout,fast,fly
wget -O vsc-x86.rpm https://go.microsoft.com/fwlink/?LinkID=760867
sudo dnf -y install vsc-x86.rpm
sudo apt-get update
sudo apt-get -y install flatpak
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak -y install flathub com.uploadedlobster.peek
flatpak run com.uploadedlobster.peek
import mcpi.minecraft as minecraft
import mcpi.block as block
import mcpi.vec3 as Vec3
# ローカルサーバに接続
mc = minecraft.Minecraft.create("127.0.0.1")
# プレイヤーの位置を取得
pos = mc.player.getPos()
print(pos)
pos.z += 10
# 塔の高さ
tower_ys=48
# 塔の幅
tower_xs=7
# 塔の奥行き
tower_zs=7
# 塔の外壁
for dx in range(tower_xs):
for dz in range(tower_zs):
for dy in range(tower_ys):
if dx == 0 or dz == 0 or dx == tower_xs-1 or dz == tower_zs-1:
mc.setBlock( pos.x+dx, pos.y+dy, pos.z+dz, block.STONE_BRICK )
else:
mc.setBlock( pos.x+dx, pos.y+dy, pos.z+dz, block.AIR )
# 入り口
mc.setBlock( pos.x+int(tower_xs/2), pos.y, pos.z, block.AIR )
mc.setBlock( pos.x+int(tower_xs/2), pos.y+1, pos.z, block.AIR )
# 明かり
for dy in range(4):
mc.setBlock( pos.x, pos.y+dy*12, pos.z+int(tower_zs/2), block.SEA_LANTERN )
mc.setBlock( pos.x+tower_xs-1, pos.y+dy*12, pos.z+int(tower_zs/2), block.SEA_LANTERN )
# 螺旋階段
pos2 = Vec3.Vec3(pos.x + 1, pos.y, pos.z + 2)
# 4週分
for stair_loop in range(4):
for zs in range(tower_zs-4):
mc.setBlock( pos2.x, pos2.y, pos2.z, block.STAIRS_COBBLESTONE.id,2 )
pos2.y += 1
pos2.z += 1
pos2.y -= 1
mc.setBlock( pos2.x, pos2.y, pos2.z, block.STONE_BRICK.id )
pos2.x += 1
pos2.y += 1
for xs in range(tower_xs-4):
mc.setBlock( pos2.x, pos2.y, pos2.z, block.STAIRS_COBBLESTONE.id,0 )
pos2.y += 1
pos2.x += 1
pos2.y -= 1
mc.setBlock( pos2.x, pos2.y, pos2.z, block.STONE_BRICK.id )
pos2.z -= 1
pos2.y += 1
for zs in range(tower_zs-4):
mc.setBlock( pos2.x, pos2.y, pos2.z, block.STAIRS_COBBLESTONE.id,3 )
pos2.y += 1
pos2.z -= 1
pos2.y -= 1
mc.setBlock( pos2.x, pos2.y, pos2.z, block.STONE_BRICK.id )
pos2.x -= 1
pos2.y += 1
for xs in range(tower_xs-4):
mc.setBlock( pos2.x, pos2.y, pos2.z, block.STAIRS_COBBLESTONE.id,1 )
pos2.y += 1
pos2.x -= 1
pos2.y -= 1
mc.setBlock( pos2.x, pos2.y, pos2.z, block.STONE_BRICK.id )
pos2.z += 1
pos2.y += 1
# 最上階
for dx in range(tower_xs):
for dz in range(tower_zs-2):
mc.setBlock( pos.x+dx, pos.y+tower_ys-1, pos.z+dz+2, block.STONE_BRICK )
for dx in range(tower_xs):
for dz in range(tower_zs):
if dx == 0 or dz == 0 or dx == tower_xs-1 or dz == tower_zs-1:
if (dx+dz)%2 == 0:
mc.setBlock( pos.x+dx, pos.y+tower_ys, pos.z+dz, block.STONE_BRICK )