2022年12月13日 星期二
2022年12月12日 星期一
最好的佈光技巧
- 天空球 https://www.bilibili.com/video/BV13G4y15767?t=425.3&p=29
- 自製柔光箱 https://www.bilibili.com/video/BV13G4y15767?t=178.2&p=32
- 負的吸收牆 https://www.bilibili.com/video/BV13G4y15767?t=485.5&p=34
- 開窗 https://www.bilibili.com/video/BV13G4y15767?t=236.9&p=37
- 燈光組 https://www.bilibili.com/video/BV13G4y15767?t=432.4&p=48
2022年12月8日 星期四
PolyQuilt Smooth 工具錯誤解法
到C槽使用者
AppData\Roaming\Blender Foundation\Blender\3.4\scripts\addons\PolyQuilt\subtools\subtool_brush_relax.py
並將第 93 行
bpy.ops.view3d.select_circle( x = coord.x , y = coord.y , radius = radius , wait_for_input=False, mode='SET' )
更改為
bpy.ops.view3d.select_circle( x = int(coord.x), y = int(coord.y) , radius = int(radius) , wait_for_input=False, mode='SET' )
並重新啟動攪拌機。
胸大肌綁骨
介紹
我想解決一個我一直遇到的問題:抬起手臂時肩膀的運動看起來很糟糕。在一些幫助下,我找到了一種方法,可以讓我自己的角色獲得更好的肩膀和胸部運動,我想與大家分享。
可以在底部找到示例 .blend 文件。
首先我想展示一種之前(左)和之後(右)的例子。
新方法的小動畫:https ://twitter.com/lewdineer/status/1494435128394854403
2022年12月6日 星期二
2022年12月5日 星期一
2022年12月4日 星期日
2022年12月1日 星期四
2022年11月29日 星期二
2022年11月27日 星期日
2022年11月23日 星期三
2022年11月16日 星期三
2022年11月14日 星期一
【Windows】7-Zip 解壓遇到亂碼時的解法
有些路徑、檔名卻是亂碼,倒致遊戲沒辦法正常開啟。
用7-zip 解壓縮完變成這樣,出現的字沒有一個會念
殼蹺呇 ㄎㄜˊ ㄑ一ㄠ ㄑ一ˊ (by google翻譯)
並且因為資料夾變成奇怪的名字,底下路徑都跑掉
找不到檔案,導致遊戲無法開啟
查了一下原因,才發現製作者在壓縮檔案時,電腦的編碼設定跟我們解壓縮時的設定不同,也不是用Unicode,而造成語言不同出現亂碼的情形。
下載其他解壓縮工具 (如 bandizip) 可以解決問題,解壓縮檔案時可以選擇編碼。
但我不想再下載其他解壓縮工具(因為會讓右鍵的設定冒出更多選項)
用7-zip解決方式
首先搜尋 7-zip,開啟檔案位置
找到一個捷徑,
對 7-Zip File Manager 這個捷徑按右鍵 -> 內容
開啟檔案位置
就會來到 C:\Program Files\7-Zip 當初安裝7-zip的預設位置
把 7zG.exe 這個檔案 複製 到桌面,再把要解壓縮的檔案也拉到桌面
打開CMD 輸入
> cd Desktop
移動到桌面
> 7zG.exe x 催眠师.zip -mcp=932
參數
x 代表解壓縮
催眠師.zip 檔名
-mcp=936 指定編碼為日文
簡中 936
日文 932
(參照對照表)
就能成功解壓,這次就沒有亂碼了,可以開心玩小黃油!
2022年11月10日 星期四
2022年11月9日 星期三
2022年11月8日 星期二
2022年10月18日 星期二
2022年10月17日 星期一
Blender將粒子系統轉換為動畫網格(py腳本)
import bpy
# Set these to False if you don't want to key that property.
KEYFRAME_LOCATION = True
KEYFRAME_ROTATION = True
KEYFRAME_SCALE = True
KEYFRAME_VISIBILITY = False # Viewport and render visibility.
KEYFRAME_VISIBILITY_SCALE = True
def create_objects_for_particles(ps, obj):
# Duplicate the given object for every particle and return the duplicates.
# Use instances instead of full copies.
obj_list = []
mesh = obj.data
particles_coll = bpy.data.collections.new(name="particles")
bpy.context.scene.collection.children.link(particles_coll)
for i, _ in enumerate(ps.particles):
dupli = bpy.data.objects.new(
name="particle.{:03d}".format(i),
object_data=mesh)
particles_coll.objects.link(dupli)
obj_list.append(dupli)
return obj_list
def match_and_keyframe_objects(ps, obj_list, start_frame, end_frame):
# Match and keyframe the objects to the particles for every frame in the
# given range.
for frame in range(start_frame, end_frame + 1):
print("frame {} processed".format(frame))
bpy.context.scene.frame_set(frame)
for p, obj in zip(ps.particles, obj_list):
match_object_to_particle(p, obj)
keyframe_obj(obj)
def match_object_to_particle(p, obj):
# Match the location, rotation, scale and visibility of the object to
# the particle.
loc = p.location
rot = p.rotation
size = p.size
if p.alive_state == 'ALIVE':
vis = True
else:
vis = False
obj.location = loc
# Set rotation mode to quaternion to match particle rotation.
obj.rotation_mode = 'QUATERNION'
obj.rotation_quaternion = rot
if KEYFRAME_VISIBILITY_SCALE:
if vis:
obj.scale = (size, size, size)
if not vis:
obj.scale = (0.001, 0.001, 0.001)
obj.hide_viewport = not(vis) # <<<-- this was called "hide" in <= 2.79
obj.hide_render = not(vis)
def keyframe_obj(obj):
# Keyframe location, rotation, scale and visibility if specified.
if KEYFRAME_LOCATION:
obj.keyframe_insert("location")
if KEYFRAME_ROTATION:
obj.keyframe_insert("rotation_quaternion")
if KEYFRAME_SCALE:
obj.keyframe_insert("scale")
if KEYFRAME_VISIBILITY:
obj.keyframe_insert("hide_viewport") # <<<-- this was called "hide" in <= 2.79
obj.keyframe_insert("hide_render")
def main():
#in 2.8 you need to evaluate the Dependency graph in order to get data from animation, modifiers, etc
depsgraph = bpy.context.evaluated_depsgraph_get()
# Assume only 2 objects are selected.
# The active object should be the one with the particle system.
ps_obj = bpy.context.object
ps_obj_evaluated = depsgraph.objects[ ps_obj.name ]
obj = [obj for obj in bpy.context.selected_objects if obj != ps_obj][0]
for psy in ps_obj_evaluated.particle_systems:
ps = psy # Assume only 1 particle system is present.
start_frame = bpy.context.scene.frame_start
end_frame = bpy.context.scene.frame_end
obj_list = create_objects_for_particles(ps, obj)
match_and_keyframe_objects(ps, obj_list, start_frame, end_frame)
if __name__ == '__main__':
main()
https://www.youtube.com/watch?v=AhsZ5Ykm63c
記得先烘焙、然後選物體再選發射器再執行腳本
如需旋轉可以用約束 ,初始後
https://blender.stackexchange.com/questions/4956/convert-particle-system-to-animated-meshes?answertab=active#tab-top
2022年9月25日 星期日
2022年7月20日 星期三
Google Pixel Buds A-Series
我的上一顆耳機是在中國教動畫時順便買的小米,幾個月前給了我姊。
之後有事沒事就會逛下網拍,知道了這款。
無主動降躁但是質感不錯,價錢我購買是1520NTD
用起來滿方便的,也沒有小米那種調一階就太大聲,降一階又太小聲的問題。
訂閱:
文章 (Atom)